DESARROLLO ADAPTABLE DE SOFTWARE, UNA SOLUCIÓN ÁGIL PARA APLICACIONES E-COMMERCE DIEGO ANDRÉS GONZÁLEZ MORENO

Tamaño: px
Comenzar la demostración a partir de la página:

Download "DESARROLLO ADAPTABLE DE SOFTWARE, UNA SOLUCIÓN ÁGIL PARA APLICACIONES E-COMMERCE DIEGO ANDRÉS GONZÁLEZ MORENO"

Transcripción

1 DESARROLLO ADAPTABLE DE SOFTWARE, UNA SOLUCIÓN ÁGIL PARA APLICACIONES E-COMMERCE DIEGO ANDRÉS GONZÁLEZ MORENO JOSÉ LUIS PEREA ÁLVAREZ PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA DE SISTEMAS BOGOTA D.C. 2005

2 DESARROLLO ADAPTABLE DE SOFTWARE, UNA SOLUCIÓN ÁGIL PARA APLICACIONES E-COMMERCE DIEGO ANDRÉS GONZÁLEZ MORENO JOSÉ LUIS PEREA ÁLVAREZ Proyecto de grado presentado para optar el título de Ingeniero de Sistemas Director MIGUEL EDUARDO TORRES MORENO Ingeniero de Sistemas. PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA DE SISTEMAS BOGOTA D.C. 2005

3 PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA DE SISTEMAS Rector magnífico: R.P. Gerardo Remolina Vargas, S.J. Decano académico: Ing. Francisco Javier Rebolledo Muñoz Decano del Medio Universitario: R.P. Antonio José Sarmiento Nova, S.J. Director de Carrera: Ing. Hilda Cristina Chaparro López Director Departamento: Ing. Germán Alberto Chavarro Flórez

4 Nota de aceptación Director del proyecto Jurado Jurado BOGOTA, D.C JUNIO DE 2005

5 Artículo 23 de la Resolución No. 1 de Junio de 1946 La universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus proyectos de grado. Sólo velará porque no se publique nada contrario al dogma y la moral católica y porque no contengan ataques o polémicas puramente personales. Antes bien, que se vean en ellos el anhelo de buscar la verdad y la Justicia.

6 A nuestras madres quienes son la mayor inspiración en nuestras vidas

7 AGRADECIMIENTOS Los autores expresan sus agradecimientos a: Nuestras Familias por toda su colaboración. Nuestros compañeros por aguantarnos toda la carrera y por su continua ayuda y apoyo (ellos saben quienes son). Miguel Eduardo Torres, Ingeniero de Sistemas y Director de este proyecto, por su motivación y determinación en este trabajo. Profesores, docentes y colaboradores quienes hicieron posible nuestro desarrollo profesional.

8 TABLA DE CONTENIDO Pág. 0. INTRODUCCIÓN MARCO TEORICO EL DESARROLLO DE SOFTWARE EXTREME PROJECTS DESARROLLO ÁGIL Modelamiento ágil (AM) Scrum Metodologías Cristal Feature Driven Development Method (FDD) ADAPTIVE SOFTWARE DEVELOPMENT (DAS) Ciclo de vida del Desarrollo Adaptable de Software FRAMEWORK Patrones utilizados en el desarrollo de un Framework según Craig Larman Patrones utilizados en el proceso de desarrollo de un Framework según Brent Carlson y James Carey E-COMMERCE DESCRIPCION DEL PROYECTO DESARROLLO ADAPTABLE DE SOFTWARE DESARROLLO DEL FRAMEWORK PLAN DE CICLOS DE DESARROLLO ADAPTABLE ANALISIS DISEÑO IMPLEMENTACION I IMPLEMENTACION II PRUEBAS Y DOCUMENTACION Pruebas Documentación DESARROLLO DE LA APLICACIÓN PARA LA VENTA DE DVD PLAN DE CICLOS DE DESARROLLO ADAPTABLE ANALISIS DISEÑO IMPLEMENTACION I IMPLEMENTACION II PRUEBAS Y DOCUMENTACION Pruebas Documentación CONCLUSIONES Y RECOMENDACIONES TRABAJO A FUTURO BIBLIOGRAFIA... 73

9 LISTA DE FIGURAS Ilustración 1. Ciclo de Vida del Desarrollo Adaptable Ilustración 2. Diagrama de Casos de Uso del Framework Ilustración 3. Modelo de Datos del Framework Ilustración 4. Diagrama de Arquitectura del Framework Ilustración 5. Clases Producto, BackupAdmin, Cliente y Administrador Ilustración 6. Clases TipoTarjeta, OrdenCompra, Tarjeta Credito y Producto Fisisco Ilustración 7. Clases Service Locator y Factory Ilustración 8. ClienteMgr Session EJB Ilustración 9. AdministradorMgr Session EJB Ilustración 10. TiendaMgr Session EJB Ilustración 11. EntidadFinancieraMgr y KartMgr SessionsEJB Ilustración 12. Clases DAO's Ilustración 13. EJB EntitiesEJB CMP'S Ilustración 14. EJB EntitiesEJB CMP Ilustración 15. Clase Bussines Delegate Ilustración 16. Diagrama Casos de Uso Aplicación DVD Ilustración 17. Modelo de Datos Aplicación DVD Ilustración 18. Diagrama de Arquitectura Aplicación DVD Ilustración 19. Clase DVD y ProductoCreator Ilustración 20. Clase DAOProductos Aplicación DVD Ilustración 21. BMPDVDProducto Aplicación DVD Ilustración 22. Clase BusinessDelegate Aplicación DVD Ilustración 23. Clase Servlet Aplicación DVD... 65

10 GLOSARIO DAS: Desarrollo Ágil de Software, metodología de desarrollo ágil la cual provee un marco de trabajo para sistemas de desarrollo iterativos largos y complejos. Framework: Un Framework es un conjunto de componentes reutilizables, los cuales intentan resolver determinado número de problemas en uno o más dominios. E-commerce: Es el tipo de transacción económica -compra y venta- que se realiza a través de sistemas electrónicos. Una empresa, comúnmente presente en la red, vende productos o servicios a través de Internet. Base de Datos: Una base de datos es un conjunto de información estructurada, como por ejemplo las cifras de ventas de un año. Las bases de datos tradicionales están diseñadas para gestionar datos tales como importes, cantidades, fechas y, limitadamente, texto. DAO: Data Access Object, este es un patrón el cual tiene como fin abstraer y encapsular todos los accesos a la fuente de datos, logrando así desacoplar la lógica de negocios de la lógica de acceso a datos. El DAO maneja la conexión con la fuente de datos para obtener y almacenar datos. Enterprise Java Beans EJB: Los EJBs proporcionan un modelo de componentes distribuido estándar para el lado del servidor. El objetivo de los Enterprise Beans es dotar al programador de un modelo que le permita abstraerse de los problemas generales de una aplicación empresarial (concurrencia, transacciones, persistencia, seguridad, etc.) para centrarse en el desarrollo de la lógica de negocio en sí. El hecho de estar basado en componentes nos permite que éstos sean flexibles y sobre todo reutilizables. EJBs de Entidad (Entity EJBs): Su objetivo es encapsular los objetos de lado de servidor que almacenan los datos. Los EJBs de entidad presentan la característica fundamental de la persistencia: Persistencia gestionada por el contenedor (CMP): El contenedor se encarga de almacenar y recuperar los datos del objeto de entidad mediante un mapeado en una tabla de una base de datos. Persistencia gestionada por el bean (BMP): El propio objeto entidad se encarga, mediante una base de datos u otro mecanismo, de almacenar y recuperar los datos a los que se refiere. 10

11 EJBs de Sesión (Session EJBs): Gestionan el flujo de la información en el servidor. Generalmente sirven a los clientes como una fachada de los servicios proporcionados por otros componentes disponibles en el servidor. Puede haber dos tipos: con estado (StateFul). Los Beans de sesión con estado son objetos distribuidos que poseen un estado. El estado no es persistente, pero el acceso al bean se limita a un solo cliente. sin estado (Stateless). Los Beans de sesión sin estado son objetos distribuidos que carecen de estado asociado permitiendo por tanto que se los acceda concurrentemente. No se garantiza que los contenidos de las variables de instancia se conserven entre llamadas al método. Business Delegate: Patrón que se utiliza para reducir el acoplamiento entre los clientes de la capa de presentación y los servicios de negocio. El Business Delegate oculta los detalles de la implementación del servicio de negocio, como los detalles de búsqueda y acceso de la arquitectura EJB. Java: Es una plataforma de software desarrollada por Sun Microsystems. Esta plataforma ha sido desarrollada de tal manera que los programas desarrollados para ella puedan ejecutarse de la misma forma en diferentes tipos de arquitecturas y dispositivos computacionales. J2EE: Se refiere a la plataforma Java 2 Edición Empresarial que define un estándar para desarrollar aplicaciones empresariales en lenguaje de programación Java. Oracle: Es un sistema de administración de base de datos (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), fabricado por Oracle Corporation. SQL: El Lenguaje de Consulta Estructurado (Structured Query Language) es un lenguaje declarativo de acceso a Bases de Datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas, aún a características del Álgebra y el Cálculo relacional permitiendo lanzar consultas con el fin de recuperar información de interés de una base de batos, de una forma sencilla. Carro de Compras: Entidad encargada de guardar en memoria los productos que el cliente desea comprar. JNDI: Una extensión de la plataforma Java que provee una interfaz estándar para nombres heterogéneos y directorio de servicios. Data Source: Un sitio de datos específico, donde la información es almacenada y puede ser obtenida. 11

12 0. INTRODUCCIÓN Cuando se desarrolla software es importante saber manejar los problemas comunes que pueden presentarse, por ejemplo el cambio en los requerimientos, mientras se desarrolla una aplicación, lo cual es una situación muy normal, debido a lo volátil que son las organizaciones hoy en día, y a la fuerte competencia que hay entre éstas. También el cambio de ámbito de las aplicaciones y la introducción de nuevas tecnologías pueden derivar en serios problemas de desarrollo, como estos hay muchos factores que hacen que el desarrollo de software sea una tarea compleja; estas situaciones son totalmente ajenas al equipo de trabajo. Lo que el desarrollo ágil de software busca es una fácil solución a estos problemas, mejorando el manejo de los cambios inevitables del proyecto y reduciendo los costos que nacen gracias a éstos, ya que facilitar el cambio es más efectivo que tratar de prevenirlo. El desarrollo ágil de software se enfoca más en los individuos y sus respectivas interacciones, que en los procesos y herramientas y le da mayor importancia al trabajo de software que las documentaciones. Es por eso, que la mayor prioridad del desarrollo ágil de software es la satisfacción del cliente, pero para llegar a ese punto es necesario la colaboración de todas las partes, ya sean patrocinadores, clientes, usuarios y por supuesto los desarrolladores. En el mundo de los procesos, se cree en la eficiencia de controlarlos y llevar un seguimiento para poder optimizarlos, pero la época en la que estamos viviendo no se rige por estas leyes o fundamentos, ya que el desarrollo de aplicaciones se ha vuelto en cierta forma impredecible, ya que es imposible controlar el cambio constante de las variables del entorno. El desarrollo adaptable de software, a diferencia de muchas otras metodologías, entiende que el mundo del dominio esta cambiando, por lo cual el desarrollo de software no puede verse desde una perspectiva lineal en ningún caso. Por lo que cada proyecto tiene un contexto y forma de resolución diferente. En Colombia, el desarrollo de software para e-commerce en las empresas es cada vez más fuerte y tiene más acogida 1, por lo que cada vez mas grupos de desarrollo de software optan por diferentes metodologías para agilizar los procesos en su entorno. El desarrollo de aplicaciones reutilizables, se ha vuelto una costumbre, tanto para las empresas, como para los desarrolladores independientes. Es por eso que el diseño e implementación de Frameworks, ha ido creciendo de una forma acelerada ya que al ser reutilizables, reducen drásticamente los costos y la complejidad de los proyectos de 1 ACIS Asociación Colombiana de Ingenieros de Sistemas, 12

13 software. Un Framework es un conjunto de clases reutilizables para el diseño e implementación de un clase de software específico. Extendiendo un poco esta definición se puede decir que un Framework es un conjunto de componentes que pueden solucionar problemas en uno o más dominios de aplicación 2. Es el encargado de manejar el núcleo de la aplicación. El objetivo de este proyecto es el desarrollo de un Framework para aplicaciones e-commerce utilizando el desarrollo adaptable de software. Para verificar la funcionalidad del Framework y ver su fácil adaptación y utilización, se desarrolló una aplicación específica de e-commerce, en este caso la venta de DVDs 3 por Internet. Por medio del uso del desarrollo adaptable de software en este proyecto de investigación, se pretende mostrar la aplicación de una metodología diferente en el desarrollo de software, a las comúnmente usadas, para que esta pueda ser utilizada por personas interesadas en conocer el desarrollo de aplicaciones por medio de una metodología ágil. También se quiere mostrar, la importancia del análisis y el diseño a la hora de desarrollar aplicaciones reutilizables como el Framework, ya que estas etapas y sus respectivos entregables hacen parte de dicha reutilización. Esperamos que este Proyecto colme las expectativas del lector y deje un aporte en cada uno de ellos. 2 Carey, James y Carlson, Brent. Framework Process Patterns Pág. 1 3 Digital Video Disc 13

14 1. MARCO TEORICO Muchos autores a través de los años han comparado el desarrollo de software, con el alpinismo 4, en esta disciplina, el objetivo es escalar la montaña, para conseguir esto el escalador debe tener ciertas habilidades dependiendo de las características de la montaña, es decir la altura, la inclinación, temperatura, clima y demás factores externos y además determinadas herramientas como botas, arnés, poleas, cuerdas, guantes y otras herramientas necesarias, las cuales aumentan o disminuyen la dificultad y el tiempo del ascenso (sin ellas puede llegar a ser imposible la escalada). En el desarrollo de software debemos tener ciertas habilidades y herramientas de acuerdo al tipo de proyecto (montaña) y su entorno (altura, clima etc.), ya que como en el alpinismo éstas nos ayudan o dificultan el logro de los objetivos planteados en el mismo. Este trabajo se enfoca en una forma particular de escalar montañas y de desarrollar software, de alta velocidad y rápido cambio. 1.1.EL DESARROLLO DE SOFTWARE A finales de los 70`s el desarrollo de software no era tarea compleja, eran comunes los mainframe 5, y los requerimientos a cumplir eran pocos. COBOL era el lenguaje del momento y la ingeniería de la información era el camino, los modelos se caracterizaban por diagramas de flujo de datos y diagramas entidad relación. A esta época de desarrollo de software, Ken Orr la llama Monumental Software Development (Desarrollo de software monumental) 6. Esta época se caracterizaba por un desarrollo top-down y long-term empezando en lo alto de las organizaciones, trasladando las necesidades del negocio en modelos de datos, e implementándolos en bases de datos para después construir aplicaciones. Todo esto tomaba varios años por lo que lo ideal era producir el software correcto en el primer intento. El punto más alto de esta época fueron las metodologías definidas en 14 volúmenes, en los cuales se detalla cada tarea, documento o forma, que debe tenerse en cuenta en el desarrollo de software, de estas prácticas se derivó lo que ahora conocemos como herramientas CASE (Computer-Aided Software Engineering). Hasta finales de los años 90 muchos productos de software fueron construidos utilizando estas técnicas de desarrollo, los cuales sufrieron varios tipos de inconvenientes, tales como: 4 James Highsmith, Adaptive Software Development, 2000 Capítulo 1, 5 Computador Central 6 HIGHSMITH, James. Agile Software Development: The People Factor. En Institute of Electrical and Electronics Engineers (IEEE) magazine, Noviembre de

15 Los clientes no estaban satisfechos, ya que después de ciclos tan largos de desarrollo, muchas aplicaciones no cubrían sus necesidades, ya que los requerimientos habían cambiado durante el desarrollo. El tiempo que se tomaba el proceso era muy largo, y el negocio era muy variable, su cambio era muy rápido para ese tipo de ciclo de vida de desarrollo. En general los métodos del desarrollo monumental de software no se adaptan bien al rápido y constante cambio de las condiciones y el entorno de algunos negocios. A principios de los años 90 esta perspectiva cambió debido a la aparición de los computadores personales, de C++, Java, Delphi, Visual Basic, etc., surgiendo una nueva forma de desarrollo que Ken Orr llama Accidental Software Development (Desarrollo accidental de software) 7. Esta época al contrario de la Monumental, se caracteriza por la no existencia de métodos o metodologías, ya que se creía que el proceso solo demoraría el desarrollo, utiliza una metodología bottom-up y short-term, la cual empieza con el desarrollo inmediato de aplicaciones que cubren las necesidades de los clientes, dándole poca importancia a la integración con las demás aplicaciones, el código debía ser rápido sin prestarle mucha atención al diseño. El desarrollo de estas aplicaciones oscilaba entre los 2 a 6 meses, ya que se consideraba que si un proyecto duraba más tiempo sería un producto obsoleto al finalizar el proceso. El desarrollo accidental de software, también tenía varios inconvenientes: La poca integración del software con las demás aplicaciones Fragmentación de datos y redundancia múltiple, ya que el tener los datos sincronizados era un reto permanente, esto debido a la poca si no nula integración del software. El software final requería mantenimiento constante, ya que las aplicaciones tenían datos redundantes, y diferentes modelos de datos. En conclusión este tipo de desarrollo termina siendo largo y costoso debido a la cantidad de correcciones y mantenimiento general que deben ser realizadas después de implantar el software. 1.2.EXTREME PROJECTS Las organizaciones hoy en día, suelen tener problemas con los proyectos de alta velocidad y rápido cambio, que son comunes de e-business y e-commerce 8. Estos proyectos son desarrollados como proyectos comunes de software, por lo cual terminan siendo difíciles, problemáticos y comúnmente fallidos, ya que su entorno cambia constantemente, y su margen de error debe ser mínimo. Algunos de este tipo de proyectos se conocen como Extreme Projects, y difieren mucho de los proyectos comunes de software en que requieren menos velocidad y menos cambio. 7 HIGHSMITH, James. Agile Software Development: The People Factor. En Institute of Electrical and Electronics Engineers (IEEE) magazine, Noviembre de James Highsmith Adaptive Software Development, 2000 Capitulo 1 15

16 Para desarrollar esta clase de proyectos se requiere mas que una nueva herramienta o técnica, una nueva manera de pensar a la hora de desarrollar software DESARROLLO ÁGIL En el desarrollo de software es importante saber enfrentarse a problemas comunes, por ejemplo el cambio en los requerimientos, lo cual es una situación muy normal, debido a la competencia y los cambios que se viven en las organizaciones día a día. También el cambio de ámbito de las aplicaciones y la introducción de nuevas tecnologías, hacen que el desarrollo de software sea una tarea compleja; estas situaciones son totalmente ajenas al equipo de trabajo y usualmente ocurren a lo largo del ciclo de vida del proyecto, generando de este modo que el costo del proyecto cambie. Lo que el desarrollo ágil de software busca, es mejorar el manejo de los cambios inevitables, reduciendo costos que nacen a través del proyecto, ya que facilitar el cambio es más efectivo que tratar de prevenirlo. 10 El desarrollo ágil de software se enfoca más en los individuos y sus respectivas interacciones, que en los procesos y herramientas. Así como es más importante el trabajo de software que las documentaciones, y se preocupa por la colaboración con el cliente que en el contrato de negociación. 11 Es por eso, que la mayor prioridad del desarrollo ágil de software es la satisfacción del cliente, pero para llegar a ese punto es necesaria la colaboración, ya sea de patrocinadores, clientes, usuarios y por supuesto los desarrolladores. El desarrollo ágil de software se ha vuelto más popular en los últimos años, por lo que diversos métodos de desarrollo ágil han sido implementados, con el ánimo de poder entregar al usuario un software mucho más rápido. Los métodos de desarrollo ágil de software son basados en satisfacer al máximo al cliente, adaptarse al cambio fácilmente, hacer entregables frecuentemente y que exista una estrecha colaboración hacia el equipo de trabajo, por parte del personal del negocio. En comparación con los procesos de software tradicionales, los métodos de desarrollo ágil de software son orientados mucho más al código y a las entregas, por lo que la documentación no es el centro del proceso de desarrollo, donde al usuario le importa más la entrega realizada después de cada ciclo del desarrollo que el propio documento. 12 Los métodos de desarrollo ágil de software se preocupan más por la adaptabilidad que por la predicción, por lo que fueron desarrollados para adaptase y prosperar rápidamente a los cambios frecuentes. 9 HIGHSMITH, James. Agile Software Development: The Business of Innovation. En Institute of Electrical and Electronics Engineers (IEEE) magazine, Septiembre de HIGHSMITH, James. Agile Software Development: The Business of Innovation. En Institute of Electrical and Electronics Engineers (IEEE) magazine, Septiembre de HIGHSMITH, James. Requirements Engineering and Agile Software development HIGHSMITH, James. Requirements Engineering and Agile Software development

17 Entre los métodos más comunes de desarrollo de Software están XP (Extreme Programming), Modelamiento Ágil (AM), Scrum, metodologías Cristal, FDD (Feature Driven Development), DSMD (Dynamic Systems Development Methods) y en la que se enfoca este trabajo DAS (Adaptive Software Development). 13 A continuación se hará una breve reseña de las más importantes metodologías de desarrollo ágil de software Extreme Programming (XP) Esta basado en simplicidad, retroalimentación y comunicación, donde los ciclos recomendados o iteraciones deben ser de 2 a 6 semanas, esto con el fin de producir entregas rápidas y una retroalimentación más continua, inventando soluciones simples, para que los cambios sean menores y corregirlos tome menos tiempo. Desarrollado para sistemas en constante cambio y basado en desarrollo en parejas Modelamiento ágil (AM) Da a los desarrolladores una base de cómo construir modelos, que resuelven problemas de diseño, para no construirlos nuevamente. No es un proceso de desarrollo completo, únicamente para el diseño Scrum Es un método para la gestión del proceso de desarrollo del sistema, aplicando ideas de flexibilidad, adaptabilidad y productividad para aplicaciones de proceso industrial. Scrum se basa en dar a conocer como un equipo de trabajo debe trabajar unido para producir una excelente calidad de trabajo en un ambiente en constante cambio Metodologías Cristal Son una familia de diferentes metodologías, las cuales pueden ser escogidas, dependiendo del tipo de proyecto, dentro de los tipos se encuentran Clear, Yellow, Orange, Red, Magenta, Blue, Violet. Entre más oscuro el color, más personas deben estar involucradas en el desarrollo, debido a la complejidad Feature Driven Development Method (FDD) Es una metodología que provee un marco de trabajo adecuado para el desarrollo de aplicaciones rápidas. Existen dos pasos en esta metodología, el primero es el estudio de factibilidad y el segundo es el estudio del negocio. A su vez la parte de pruebas, es integrada a la parte de desarrollo, es decir se van haciendo pruebas a medida que avanza el desarrollo. 13 HIGHSMITH, James. Agile Software Development: The Business of Innovation. En Institute of Electrical and Electronics Engineers (IEEE) magazine

18 1.4.ADAPTIVE SOFTWARE DEVELOPMENT (DAS) Provee un marco de trabajo para sistemas de desarrollo iterativos largos y complejos. Se basa en un desarrollo iterativo e incremental con constantes entregas de prototipos. Debido a que los sistemas tienen múltiples cambios, DAS se basa en métodos tolerantes al cambio, donde los primeros ciclos deben ser cortos, y asegurarse de que el cliente esté totalmente envuelto en el proyecto y que el proyecto a su vez sea viable. Cada ciclo finaliza con las revisiones pertinentes por parte de el/los cliente/s y estas reuniones son documentadas para dejar por escrito los cambios y correcciones. 14 Las principales características del ciclo de vida adaptable son las siguientes Enfocado a una Misión Basado en Componentes Iterativo Tiempos de entregas Mitigación de Riesgos Tolerancia a cambios La cultura de optimización, cree en el rigor de los procesos, pero la era del Internet ha alterado estos fundamentos, ya que estas aplicaciones trabajadas vía Web son comúnmente impredecibles, porque tienen variables que están cambiando constantemente, como por ejemplo los requerimientos, los productos, la tecnología, etc. Es ahí donde el desarrollo adaptable de software entiende que para tener éxito en este tipo de aplicaciones, se debe aprender que el desarrollo de software no es un procedimiento mecánico sino uno orgánico, no lineal y no determinístico. Por lo que cada proyecto tiene un contexto y forma de resolución diferente. 14 HIGHSMITH, James. Requirements Engineering and Agile Software development

19 Ciclo de vida del Desarrollo Adaptable de Software Ilustración 1. Ciclo de Vida del Desarrollo Adaptable El ciclo de vida Especular-Colaborar-Aprender, es un ciclo orientado al cambio, ya que esta dedicado al continuo aprendizaje, y a una alta colaboración entre los desarrolladores y sus clientes. A diferencia de la mayoría de metodologías de desarrollo de software las cuales utilizan un ciclo de vida estático: Planear-Diseñar-Construir, DAS ofrece un ciclo de vida iterativo no lineal, donde cada ciclo puede iterar y ser modificado al tiempo que otro lo hace. El desarrollo adaptable de software utiliza un ciclo de desarrollo dinámico e iterativo conocido como Especular-Colaborar-Aprender, este ciclo esta dedicado a un constante aprendizaje y a una intensa colaboración entre desarrolladores y clientes, esto debido al constante cambio en el ambiente de los negocios. Especulación: Ofrece más espacio para explorar, para darse cuenta que no todo es seguro, permitiendo desviarse del plan sin ningún temor. Muchas veces desviarse del plan original puede considerarse un error, mas que una oportunidad de aprendizaje, es ahí donde la especulación incita a explorar y a experimentar. Si se admite que no se conoce todo, se está más dispuesto a aprender. Colaboración: Las aplicaciones complejas requieren, la recolección y el análisis de un gran volumen de información, lo cual no puede ser controlado por una sola persona. A su vez aplicaciones con ambientes cambiantes como las de e-commerce producen un gran flujo de datos, los cuales no pueden ser manejados por una persona, o un grupo pequeño, ya que estos no pueden saberlo todo. Aprendizaje: Se debe evaluar el conocimiento constantemente, realizando retroalimentaciones y reuniones de grupo, al final de cada ciclo iterativo, en lugar 19

20 de al final del proyecto, ya que esto ayuda a soportar y solucionar de una mejor manera el constante cambio que puede tener el proyecto, su adaptación. 1.5.FRAMEWORK Para aquella persona que está familiarizada con el desarrollo orientado a objetos (objectoriented development), estará a su vez familiarizado con el desarrollo de un Framework, ya que éste se basa en el diseño orientado a objetos, y a su vez es muy importante la entrega de componentes y la entrega limitada de documentación hecha anteriormente. Tal vez esto último suene conocido, ya que se basa en aspectos donde el Desarrollo Adaptable de Software también lo hace. Craig Larman define un Framework como un conjunto extensible de objetos para funciones relacionadas, como ejemplo podemos ver Frameworks de interfaz grafica de usuario, como AWT y SWING de Java 15. Por otro lado se puede ver la definición de James Carey y Brent Carlson donde afirman que un Framework es una serie de componentes trabajando de forma unida, que direccionan el número de problemas en uno o más dominios 16. Un Framework proporciona muchas clases e interfaces para las funciones principales que manejan los datos, interfaces, persistencia, etc. Gracias a esto los desarrolladores pueden crear subclases o redefinir ciertos métodos, dependiendo de las necesidades de su aplicación. Además pueden conectar diversos comportamientos de respuesta a los eventos en las clases de los elementos predefinidos. En general un Framework se caracteriza por: 17 Ser un conjunto cohesivo de clases e interfaces que colaboran para proporcionar los servicios de la parte central e invariable de un sistema lógico. Contiene clases concretas y abstractas que definen, las interfaces a las que deben ajustarse, interacciones de objetos en las que participar, y otras variantes. Normalmente requiere que el usuario del Framework, defina subclases que extiendan o implementen las clases del Framework, con el fin de adaptar y extender los servicios de este. Tener clases abstractas que podrían contener tanto métodos abstractos como concretos. Confía en el Principio Hollywood, No nos llame, nosotros le llamaremos. Esto significa que las clases definidas por el usuario recibirán mensajes desde las clases predefinidas del Framework. 15 Larman, Craig. Applying UML and patterns: An introduction to object-oriented analysis and design Carey, James and Carlson, Brent. Framework Process Patterns Carey, James and Carlson, Brent. Framework Process Patterns

21 Ofrecer un alto grado de reutilización. Hay que tener en cuenta que un Framework no es una clase librería, ya que un Framework no provee clases y funciones al punto de ser únicas, sino que provee la reutilización al siguiente nivel de clases y funciones. Esto sin dejar atrás que un Framework puede ser construido mediante el uso de una librería. El desarrollo de un Framework no es solo un grupo de patrones, sino que a su vez es la combinación de diseños e implementaciones, enfocados a encontrar una serie de necesidades en general y una construcción acorde a las necesidades de las cuales se pueda extender y personalizar para que se ajuste a las necesidades anteriormente descritas. Existen 6 disciplinas las cuales se debe tener en cuenta para un desarrollo de un Framework de forma adecuada, como lo son la comunicación, consistencia, iteración, incompletitud, flexibilidad y desconfianza. o Comunicación: Debido a que la información debe ser comunicada a tiempo y de una manera precisa o Consistencia: Las cosas iguales deben ser hechas de igual manera. o Iteración: Debido a que debe estar en constante refinamiento. o Incompletitud: Esto con el fin de que los usuarios tengan la habilidad de completarlo para sus necesidades particulares. o Flexibilidad: Se debe determinar hasta donde debe llegar el grado de extensión del Framework, con el fin de que el usuario pueda implementar ciertas cosas a su gusto. o Desconfianza: Las cosas que son obvias, a su vez pueden generar problemas sino se tiene cuidado. Con el fin de desarrollar un Framework de buena calidad se deben o pueden utilizar distintos patrones de software, que permitan realizar un buen diseño e implementación de éste, esto depende en general de los siguientes factores: Correspondencia: Se debe establecer alguna correspondencia (mapping), entre una clase y su almacenamiento persistente, y entre los atributos de los objetos y los campos en un registro. Identidad de Objeto: Existe un único identificador de registros y objetos, con el fin de asegurar que no haya duplicados. Conversor de base de datos: Un Mapper encargado de la materialización y desmaterialización de la base de datos. Materialización y Desmaterialización: Transformar una representación de datos no orientada a objetos de un almacenamiento persistente a objetos y viceversa. Caché: Los servicios persistentes almacenan en un caché los objetos materializados por razones de rendimiento. Estado de Transacción de Objeto: Es útil conocer el estado de los objetos en función de sus relaciones con la transacción actual. 21

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

Curso de Spring Framework

Curso de Spring Framework Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Spring es un proyecto de código abierto (open source), originalmente creado por Rod Johnson y descrito en su

Más detalles

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Tema 2. Ingeniería del Software I feliu.trias@urjc.es

Tema 2. Ingeniería del Software I feliu.trias@urjc.es Tema 2 Ciclo de vida del software Ingeniería del Software I feliu.trias@urjc.es Índice Qué es el ciclo de vida del Software? El Estándar 12207 Modelos de proceso Qué es el Ciclo de Vida del SW? Definición

Más detalles

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL DNI Apellidos y nombre 1. Cuál de las siguientes afirmaciones no es una causa de los problemas del software?

Más detalles

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR En este capítulo se describe el análisis y diseño de un sistema, denominado e-commerce Constructor, el cual cumple con los siguientes objetivos: Fungir

Más detalles

En el siguiente apartado se detallan ciertos conceptos que ayudan a comprender en mayor medida el Proyecto.

En el siguiente apartado se detallan ciertos conceptos que ayudan a comprender en mayor medida el Proyecto. APÉNDICES En el siguiente apartado se detallan ciertos conceptos que ayudan a comprender en mayor medida el Proyecto. APÉNDICE 1. Herramientas Las herramientas que se usaron en el análisis, desarrollo

Más detalles

Evolución histórica 60 -. Metodologías

Evolución histórica 60 -. Metodologías TEMA 1 INTRODUCCIÓN Historia Evolución de las técnicas de programación Qué es orientado a objetos? Factores cruciales que miden la calidad del software Externos Internos La familia Orientada a objetos

Más detalles

Ingeniería de Software I

Ingeniería de Software I Ingeniería de Software I Agenda Objetivo. Unidades de aprendizaje. Formas de evaluación. Bibliografía. 2 Datos del profesor Correo electrónico: egonzalez@upemor.edu.mx Asesorías Jueves de 11:00 a 13:00

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6

Más detalles

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar.

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar. TIPOS DE PATRONES Hoy, podemos encontrar literalmente miles de patrones definidos. Resulta imposible para un programador conocerlos todos, ni mucho menos probarlos o valorarlos. Así que necesitamos una

Más detalles

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R índice Módulo A Unidad didáctica 1: Introducción a las Bases de Datos Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos 3 19 Módulo B Unidad didáctica 1: Fase de análisis de requisitos Modelo

Más detalles

Ciclo de vida del Software

Ciclo de vida del Software Tema 2: Ciclo de vida del Software Marcos López Sanz Índice Qué es el ciclo de vida del Software? La norma 12207-2008 Modelos de desarrollo Qué es el Ciclo de Vida del SW? Es una sucesión de etapas por

Más detalles

Herramientas de Software que posibilitan el BPM

Herramientas de Software que posibilitan el BPM Qué es BPM? BPM (Business Process Management) no es solamente una tecnología, sino en términos generales, una disciplina gerencial que trata a los procesos como bienes tangibles que contribuyen al desempeño

Más detalles

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga Actividad 2 Unidad 1 Ciclo de vida del software y Diseño Orientado a Objetos Ciclo de Vida del Software Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto

Más detalles

Enterprise JavaBeans

Enterprise JavaBeans Enterprise Java Beans y JBoss Enterprise JavaBeans Es una de las API que forman parte del estándar de construcción de aplicaciones empresariales J2EE (ahora JEE 5.0) de Oracle Corporation (inicialmente

Más detalles

[CASI v.0109] Pág. 1

[CASI v.0109] Pág. 1 I. DATOS INFORMATIVOS Carrera Especialidad Curso Código Ciclo : Quinto Requisitos Duración Horas Semana : 08 horas Versión : v.0109 II. SUMILLA : COMPUTACIÓN E INFORMATICA : Ingeniería de Software : Lenguaje

Más detalles

UNIVERSIDAD ALBERT EINSTEIN FACULTAD DE INGENIERIA

UNIVERSIDAD ALBERT EINSTEIN FACULTAD DE INGENIERIA UNIVERSIDAD ALBERT EINSTEIN FACULTAD DE INGENIERIA Estudio de las herramientas TOAD y DBArtisan para la administración e integración de bases de datos relacionales. PREVIA OPCION AL TÍTULO DE: INGENIERO

Más detalles

cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.

cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred. cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.com CICLO DE VIDA DEL SOFTWARE Para apreciar un poco más el problema

Más detalles

PATRONES. Experto. Solución:

PATRONES. Experto. Solución: PATRONES. Experto. Asignar una responsabilidad a la clase que tiene la información necesaria para cumplirla. Cuál es el principio fundamental en virtud del cual asignaremos las responsabilidades a los

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

1 Índice... 1. 2 Introducción... 2. 2.1 Propósito... 2. 2.2 Alcance... 2. 3 Modelo Arquitectónico Inicial... 3

1 Índice... 1. 2 Introducción... 2. 2.1 Propósito... 2. 2.2 Alcance... 2. 3 Modelo Arquitectónico Inicial... 3 1 Índice 1 Índice... 1 2 Introducción... 2 2.1 Propósito... 2 2.2 Alcance... 2 3 Modelo Arquitectónico Inicial... 3 3.1 Diagrama de alto nivel de la arquitectura... 3 3.2 Vista de Casos de Uso... 5 3.2.1

Más detalles

Objetivo del Curso Aspectos Claves O-O. Técnicas para trabajo en equipo Asignación 1

Objetivo del Curso Aspectos Claves O-O. Técnicas para trabajo en equipo Asignación 1 Dpto. de Computación y T.I. Taller de Ingeniería de Software http://ldc.usb.ve/~jtcadenas/ci3715/ Sección 1 : Prof. Alfonso Reinoza jareinozacg@gmail.com Sección 2: José Tomás Cadenas jtcadenas@ldc.usb.ve

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: http://www.dsic.upv.es/~uml http://inst.eecs.berkeley.edu/~cs169/ entre otras fuentes. Definiciones

Más detalles

<TITULO DEL PROYECTO DE DESARROLLO DE SW > Diana Milena Pérez Riveros 1 Diana Milena Pérez Riveros Pagina de

Más detalles

Rational Unified Process (RUP)

Rational Unified Process (RUP) Rational Unified Process (RUP) Este documento presenta un resumen de Rational Unified Process (RUP). Se describe la historia de la metodología, características principales y estructura del proceso. RUP

Más detalles

UNIVERSIDAD DE PIURA

UNIVERSIDAD DE PIURA ESPECIALIZACIÓN EN DESARROLLO DE APLICACIONES EMPRESARIALES CON JAVA EE Ofrecer al alumno los conocimientos necesarios para la construcción de sistemas informáticos bajo una arquitectura cliente servidor

Más detalles

Workflow, BPM y Java Resumen de la presentación de Tom Baeyens

Workflow, BPM y Java Resumen de la presentación de Tom Baeyens Workflow, BPM y Java Resumen de la presentación de Tom Baeyens Workflow, BPM y Java Página 1 de 11 1. Introducción Tom Baeyens es el fundador y arquitecto del proyecto de JBoss jbpm, la máquina de workflow

Más detalles

METODOLOGÍA TRADICIONAL.

METODOLOGÍA TRADICIONAL. COMPARACIÓN DE METODOLOGÍAS METODOLOGÍA TRADICIONAL. Teniendo en cuenta la filosofía de desarrollo de las metodologías, aquellas con mayor énfasis en la planificación y control del proyecto, en especificación

Más detalles

La importancia del desarrollo para el buen diseño del software

La importancia del desarrollo para el buen diseño del software La importancia del desarrollo para el buen diseño del software RESUMEN N L González Morales. 1 En este ensayo se examinan los temas vistos en clase que son Desarrollo de Orientado a Objetos y Arquitectura

Más detalles

Programación en Capas.

Programación en Capas. Programación en Capas. Ricardo J. Vargas Del Valle Universidad de Costa Rica, Ciencias de Computación e Informática, San José, Costa Rica, 506 ricvargas@gmail.com Juan P. Maltés Granados Universidad de

Más detalles

CAPÍTULO V PROPUESTA DE LA SOLUCIÓN

CAPÍTULO V PROPUESTA DE LA SOLUCIÓN CAPÍTULO V PROPUESTA DE LA SOLUCIÓN 5.1 Introducción En los últimos tres años la entidad financiera ha venido sufriendo cambios que le han permitido crecer y pasar de ser una Sociedad Financiera a un Banco

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

Aproximación al CONCEPTO

Aproximación al CONCEPTO 18 Aproximación al CONCEPTO LA NECESIDAD DE INTERCAMBIAR INFORMACIÓN ENTRE DEPARTAMENTOS Y ÁREAS DE NEGOCIO SE HA VUELTO CRUCIAL Y HA HECHO QUE LAS EMPRESAS VEAN LA INTEGRACIÓN COMO UN ELEMENTO CLAVE PARA

Más detalles

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Primer avance de proyecto de software para la gestión de inscripciones en cursos Primer avance de proyecto de software para la gestión de inscripciones en cursos 1. Introducción Andrés Felipe Bustamante García, Carolina Sarmiento González En este documento se presentan los resultados

Más detalles

El desarrollo de aplicaciones

El desarrollo de aplicaciones e d i t o r i a l Entendiendo el desarrollo de los sistemas SOA María Consuelo Franky R. El desarrollo de aplicaciones orientadas y basadas en servicios, como estilo de arquitectura, emergió sobre la arena

Más detalles

Mercadotecnia en internet oportunidad para las pequeñas empresas

Mercadotecnia en internet oportunidad para las pequeñas empresas Mercadotecnia en internet oportunidad para las pequeñas empresas Por Jack Fleitman Internet ha generado una sociedad mundial con acceso ilimitado a la Información, en el que los comportamientos y las relaciones

Más detalles

ERP Crecimiento Planificado de Sistemas de Información

ERP Crecimiento Planificado de Sistemas de Información ERP Crecimiento Planificado de Sistemas de Información INTRODUCCIÓN En el marco de competencia actual y con los retos que implican una economía global, es necesario que las empresas vean en los sistemas

Más detalles

Pontificia Universidad Javeriana. TBA (Tool guide for BPM Agility) Visión y Especificación de Requerimientos. Version 1.0

Pontificia Universidad Javeriana. TBA (Tool guide for BPM Agility) Visión y Especificación de Requerimientos. Version 1.0 Pontificia Universidad Javeriana TBA (Tool guide for BPM Agility) Visión y Especificación de Requerimientos Version 1.0 Historial de Revisión del Documento Date Version Description Author 27/Ene/12 1.0

Más detalles

Facultad de Sistemas e Informática

Facultad de Sistemas e Informática Escuela Politécnica del Ejército Sede Latacunga Facultad de Sistemas e Informática Galarza Maira Tapia Cevallos Paulina DESARROLLO DE APLICACIONES DISTRIBUIDAS UTILIZANDO PATRONES DE DISEÑO MODELO/VISTA

Más detalles

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición.

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición. Glosario Aclaraciones Los conceptos del glosario están ordenados alfabéticamente. Un concepto puede ser un único término como meta o una frase como ambiente de ingeniería de software centrado en procesos.

Más detalles

INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN El desarrollo de software basado en componentes permite reutilizar piezas de código pre-elaborado que permiten realizar diversas tareas, conllevando

Más detalles

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes. SISTEMAS DISTRIBUIDOS DE REDES 2.- MODELOS ORIENTADOS A OBJETOS DISTRIBUIDOS 2.1. Tecnologías de sistemas distribuidos Para la implementación de sistemas distribuidos se requiere de tener bien identificados

Más detalles

Microsoft Business Solutions Navision le ofrece una forma eficaz de optimizar su negocio y aumentar la productividad.

Microsoft Business Solutions Navision le ofrece una forma eficaz de optimizar su negocio y aumentar la productividad. MICROSOFT BUSINESS SOLUTIONS NAVISION MICROSOFT BUSINESS SOLUTIONS NAVISION Le ofrece la libertad para centrarse en su negocio. Beneficios principales: Aumente su productividad Marque su ventaja sobre

Más detalles

Análisis del Sistema de Información

Análisis del Sistema de Información Análisis del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD ASI 1: DEFINICIÓN DEL SISTEMA... 6 Tarea ASI 1.1: Determinación del Alcance del Sistema... 6 Tarea ASI 1.2: Identificación

Más detalles

Bienvenidos a la presentación: Introducción a conceptos básicos de programación.

Bienvenidos a la presentación: Introducción a conceptos básicos de programación. Bienvenidos a la presentación: Introducción a conceptos básicos de programación. 1 Los programas de computadora son una serie de instrucciones que le dicen a una computadora qué hacer exactamente. Los

Más detalles

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Página 1 de 23 Índice del Documento 1.- Introducción... Página 4 2.- Propuesta

Más detalles

Tema 4. Diseño arquitectónico.

Tema 4. Diseño arquitectónico. Tema 4. Diseño arquitectónico. Introducción, Objetivos del Diseño. Ingeniería del Software II 2011 Para la transformación del modelo de análisis en un modelo de diseño del sistema, se definen los objetivos

Más detalles

3. Horario laboral referencial: Lunes Viernes 8:00 a.m. a 6:00 p.m.

3. Horario laboral referencial: Lunes Viernes 8:00 a.m. a 6:00 p.m. Arquitecto de Datos 1. Línea de Negocios: Soluciones de Negocios 2. Funciones Específicas: Participar en la realización de las actividades técnicas de actualización y migraciones a versiones mejoradas

Más detalles

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified

Más detalles

CICLO DE VIDA DEL SOFTWARE

CICLO DE VIDA DEL SOFTWARE CICLO DE VIDA DEL SOFTWARE 1. Concepto de Ciclo de Vida 2. Procesos del Ciclo de Vida del Software 3. Modelo en cascada 4. Modelo incremental 5. Modelo en espiral 6. Prototipado 7. La reutilización en

Más detalles

DIPLOMADO EN TECNOLOGÍAS DE LA INFORMACIÓN

DIPLOMADO EN TECNOLOGÍAS DE LA INFORMACIÓN DIPLOMADO EN TECNOLOGÍAS DE LA INFORMACIÓN MODULO I: Análisis y Diseño de Sistemas El alumno se familiarizará y describirá los conceptos y aspectos fundamentales del Análisis y Diseño Orientado a Objetos

Más detalles

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES El modelo relacional se basa en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de predicados de primer orden. El hecho de que

Más detalles

Herramienta para la Administración y Estimación Ágil de Desarrollo de Software

Herramienta para la Administración y Estimación Ágil de Desarrollo de Software Herramienta para la Administración y Estimación Ágil de Desarrollo de Software Mario R. MORENO SABIDO Depto. de Sistemas y Computación, Instituto Tecnológico de Mérida Mérida, Yucatán 97118, México y Jorge

Más detalles

Definir el problema/oportunidad. Desarrollar soluciones alternativas. Seleccionar la solución. Desarrollar / Seleccionar-Adquirirconfigurar

Definir el problema/oportunidad. Desarrollar soluciones alternativas. Seleccionar la solución. Desarrollar / Seleccionar-Adquirirconfigurar 1 Definir el problema/oportunidad Definir problema de negocio o la oportunidad de mejora utilizando el pensamiento sistémico. Mapa Conceptual Desarrollar soluciones alternativas Seleccionar la solución

Más detalles

Analista Programador Java: Business Apps Expert

Analista Programador Java: Business Apps Expert Analista Programador Java: Business Apps Expert TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Analista Programador Java: Business Apps Expert Duración:

Más detalles

Portales Oracle WebCenter

Portales Oracle WebCenter Portales Oracle WebCenter El perfil del cliente y el marco en el que las empresas desarrollan sus actividades están cambiando rápidamente. Hoy la mayoría de las compañías se mueve en mercados altamente

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Página 1 de 21 CUALIFICACIÓN DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC154_3 Versión 5 Situación RD 1087/2005 Actualización

Más detalles

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS CURSO: JAVA BASICO PROFESOR: EMERSON CASTAÑEDA SANABRIA TEMA: Programación Orientada a Objetos OBJETIVOS: Familiarizarse con la Programación

Más detalles

4) Asegurar la cadena de abastecimiento, provisión just in time Usando soluciones de SCM basadas en e-business, las empresas pueden lograr:

4) Asegurar la cadena de abastecimiento, provisión just in time Usando soluciones de SCM basadas en e-business, las empresas pueden lograr: Pasos para crear una empresa. com 1) Definir el target de mercado hacia el cual habrá de apuntar la estrategia de venta, tipo de clientes a que quiere llegar y con qué productos. Investigación de mercado.

Más detalles

SOFTWARE PROJECT MANAGEMENT PLAN

SOFTWARE PROJECT MANAGEMENT PLAN SOFTWARE PROJECT MANAGEMENT PLAN HERRAMIENTA PARA LA ADMINISTRACIÓN DE REQUERIMIENTOS DE LOS PROYECTOS DE LAS ASIGNATURAS DE INGENIERÍA Y ARQUITECTURA DE SOFTWARE DE LA PONTIFICIA UNIVERSIDAD JAVERIANA.

Más detalles

Gestión y Desarrollo de Requisitos en Proyectos Software

Gestión y Desarrollo de Requisitos en Proyectos Software Gestión y Desarrollo de Requisitos en Proyectos Software Ponente: María Jesús Anciano Martín Objetivo Objetivo Definir un conjunto articulado y bien balanceado de métodos para el flujo de trabajo de Ingeniería

Más detalles

Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software

Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software Introducción Este documento recopila las preguntas, opiniones y respuestas que se produjeron en un pequeño curso sobre las

Más detalles

Kra 2E # 5-55 B/ Los Lagos Pitalito Huila (Colombia)

Kra 2E # 5-55 B/ Los Lagos Pitalito Huila (Colombia) KoffeeSoft, es una empresa Laboyana, creada el 28 de Marzo de 2012 con 2 años de acreditación, seria, moderna, con excelente recurso humano capacitado por reconocidas instituciones a nivel nacional. KoffeeSoft

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

Planeación de Help Desk

Planeación de Help Desk Planeación de Help Desk Antes de empezar formalmente a ayudar a otros con problemas de computadores, debe tomar ciertas decisiones previas. Es necesario que entienda la importancia de trabajar con los

Más detalles

WebRatio. Otro camino para el BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. Otro camino para el BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio Otro camino para el BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 El BPM El BPM (Business Process Management) no es solo una tecnología, además a grandes rasgos es una disciplina

Más detalles

Guía Rápida Proceso de Desarrollo OPENUP/OAS Universidad Distrital Francisco José de Caldas Oficina Asesora de Sistemas

Guía Rápida Proceso de Desarrollo OPENUP/OAS Universidad Distrital Francisco José de Caldas Oficina Asesora de Sistemas Guía Rápida Proceso de Desarrollo OPENUP/OAS Universidad Distrital Francisco José de Caldas Oficina Asesora de Sistemas Información General del Documento Versión Actual del Documento 0.0.0.7 Descripción

Más detalles

El Proceso Unificado de Desarrollo de Software

El Proceso Unificado de Desarrollo de Software El Proceso de Desarrollo de Software Ciclos de vida Métodos de desarrollo de software El Proceso Unificado de Desarrollo de Software 1 Fases principales del desarrollo de software Captura de requisitos:

Más detalles

Modelos de desarrollo de software. septiembre de 2007 1

Modelos de desarrollo de software. septiembre de 2007 1 Modelos de desarrollo de software septiembre de 2007 1 Referencias básicas Ingeniería de software. Un enfoque práctico. Pressman, R. Quinta edición. Mc. Graw Hill 2002 Ingeniería de software. Sommerville,

Más detalles

PROGRAMACION ORIENTADA A OBJETOS CON PHP

PROGRAMACION ORIENTADA A OBJETOS CON PHP PROGRAMACION ORIENTADA A OBJETOS CON PHP COMO SE DEFINE EN PHP La programación orientada a objetos es una metodología de programación avanzada y bastante extendida, en la que los sistemas se modelan creando

Más detalles

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS ESCUELA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS ESCUELA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS ESCUELA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES TEMA: La Programación Extrema aplicada al desarrollo del Sistema Informático

Más detalles

SalesForce y FileMaker: Plataformas CRM para beneficiar a empresas de la Zona Norte

SalesForce y FileMaker: Plataformas CRM para beneficiar a empresas de la Zona Norte Instituto Tecnológico de Costa Rica Escuela de Ingeniería en Computación SalesForce y FileMaker: Plataformas CRM para beneficiar a empresas de la Zona Norte Tercer Informe de Práctica de Especialidad Dílmer

Más detalles

DE UNA IDEA A UN PROTOTIPO

DE UNA IDEA A UN PROTOTIPO DE UNA IDEA A UN PROTOTIPO Gabriela Robiolo 1 Facultad de Ingeniería, Universidad Austral Ejercicio 1. Selección de una idea innovadora Competencias Identificar oportunidades: estimular la necesidad de

Más detalles

IMPLEMENTACION DE SISTEMAS DE INFORMACION CONTABLE

IMPLEMENTACION DE SISTEMAS DE INFORMACION CONTABLE IMPLEMENTACION DE SISTEMAS DE INFORMACION CONTABLE OBJETIVO: Obtener los conocimientos necesarios para realizar implementación de sistemas contables CICLO DE VIDA DE UN SISTEMA DE INFORMACION MANTENIMIENTO

Más detalles

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

Más detalles

Proyecto Tutelkán Tutelkan Reference Process (TRP) Versión 2.0

Proyecto Tutelkán Tutelkan Reference Process (TRP) Versión 2.0 Proyecto Tutelkán Tutelkan Reference Process (TRP) Versión 2.0 Parte 3: TRP Avanzado MAYO 2009 Tabla de Contenidos PREFACIO...5 DESARROLLO Y MANTENCIÓN DE SOFTWARE...6 DESARROLLO DE REQUERIMIENTOS...7

Más detalles

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1 Introducción al Proceso Unificado de Desarrollo de Software Autor: Ing. Silverio Bonilla 1 James Rumbaugh et al. Concepto de Método Una metodología de ingeniería del software es un proceso para producir

Más detalles

Requisitos Tecnológicos en el Ámbito del Comercio Electrónico

Requisitos Tecnológicos en el Ámbito del Comercio Electrónico Requisitos Tecnológicos en el Ámbito del Comercio Electrónico Índice de contenidos Requisitos de una tienda on line Plataformas tecnológicas de e-commerce CMS y Herramientas de desarrollo de tiendas on

Más detalles

Introducción a BPM. Programa BPM Business Process Management. Al finalizar el capítulo, el alumno podrá:

Introducción a BPM. Programa BPM Business Process Management. Al finalizar el capítulo, el alumno podrá: Introducción a BPM Al finalizar el capítulo, el alumno podrá: Comprender la importancia de la Gestión de Procesos y la mejora continua de los mismos. Identificar los diferentes procesos existentes en una

Más detalles

LA OFICINA SIN PAPEL Y EL CORREO ELECTRÓNICO OFICIAL EN EL MINISTERIO DE DEFENSA

LA OFICINA SIN PAPEL Y EL CORREO ELECTRÓNICO OFICIAL EN EL MINISTERIO DE DEFENSA LA OFICINA SIN PAPEL Y EL CORREO ELECTRÓNICO OFICIAL EN EL MINISTERIO DE DEFENSA Área de Sistemas de Información Inspección General CIS Secretaría de Estado de Defensa Ministerio de Defensa Palabras clave

Más detalles

Capítulo III. Análisis y diseño.

Capítulo III. Análisis y diseño. Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema,

Más detalles

Seminario en CD Bases para Java

Seminario en CD Bases para Java G: Suplementos Hay varios suplementos para este libro, incluyendo el seminario grabado en el CD que se encuentra en la parte trasera del libro y otros artículos, seminarios y servicios disponibles a través

Más detalles

Escuela Politécnica Superior. Proyectos de Desarrollo Software. Capítulo 5. daniel.tapias@uam.es. Dr. Daniel Tapias Curso 2014/ 15 PROYECTOS

Escuela Politécnica Superior. Proyectos de Desarrollo Software. Capítulo 5. daniel.tapias@uam.es. Dr. Daniel Tapias Curso 2014/ 15 PROYECTOS Escuela Politécnica Superior Proyectos de Desarrollo Software Capítulo 5 Dr. Daniel Tapias Curso 2014/ 15 daniel.tapias@uam.es PROYECTOS PROGRAMA DE LA ASIGNATURA Capítulo 1: Introducción. Capítulo 2:

Más detalles

República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción

República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción Dato: Hecho o valor a partir del cual se puede inferir una conclusión.

Más detalles

Desarrollo Ágil. Software Engineering: A Practitioner s Approach Roger S. Pressman, Ph.D. Tomás Balderas Contreras Ingeniería de Software I

Desarrollo Ágil. Software Engineering: A Practitioner s Approach Roger S. Pressman, Ph.D. Tomás Balderas Contreras Ingeniería de Software I Desarrollo Ágil Software Engineering: A Practitioner s Approach Roger S. Pressman, Ph.D. Tomás Balderas Contreras Ingeniería de Software I Coordinación de Ciencias Computacionales INAOE 2011 Preguntas

Más detalles

Modelos de Proceso Tradicionales

Modelos de Proceso Tradicionales Modelos de Proceso Tradicionales Capitulo 2,QJHQLHUtDGHO6RIWZDUH (VSHFLDOL]DFLyQHQ*HUHQFLDGH6LVWHPDVGH,QIRUPDFLyQ 8QLYHUVLGDG6DQWLDJRGH&DOL Profesor: MSc. MIGUEL ANGEL NIÑO ZAMBRANO Programación: Tiempo

Más detalles

Gestionando Agile/Scrum con Sciforma

Gestionando Agile/Scrum con Sciforma agile Gestionando Agile/Scrum con Sciforma El desarrollo ágil de software son métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requerimientos y soluciones

Más detalles

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java C/Comandante Zorita 4 28020 Madrid/ info@ceticsa.es 902 425 524 / 91 700 01 17 Plataforma desarrollo Java Formación elearning tutorizada en castellano JAVA00d Ciclo de formación en plataforma Java Curso

Más detalles

BASES DE DATOS MIS 308

BASES DE DATOS MIS 308 2. MODELOS DE DATOS Introducción 2.1 Entidad relación 2.2 Jerárquico 2.3 De red 2.4 Relacional Introducción Hoy en día las empresas manejan una gran cantidad de datos. Cualquier empresa que se precie debe

Más detalles

GLOSARIO DE TERMINOS

GLOSARIO DE TERMINOS GLOSARIO DE TERMINOS A Aplicaciones Legacy.- Conjunto de aplicaciones desarrolladas o implementadas en plataformas de sistemas anteriores o antiguos. B Bases de Datos.- Organización y conservación de datos

Más detalles

Introducción. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art143.asp - Gráfica tomada del Artículo de José David Parra

Introducción. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art143.asp - Gráfica tomada del Artículo de José David Parra Si en otros tiempos el factor decisivo de la producción era la tierra y luego lo fue el capital... hoy día el factor decisivo es cada vez más el hombre mismo, es decir, su conocimiento... Juan Pablo II

Más detalles

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web Arquitectura 1.- Aplicaciones Web Definición Contenidos 1.- Aplicaciones Web 2.- Arquitectura de aplicaciones Web Lo que distingue una aplicación Web de una mero sitio Web reside en la posibilidad que

Más detalles

cómo migrar desde la administración de servicios a SaaS

cómo migrar desde la administración de servicios a SaaS WHITE PAPER Septiembre de 2012 cómo migrar desde la administración de servicios a SaaS Principales desafíos, y cómo CA Nimsoft Service Desk ayuda a resolverlos agility made possible Índice resumen ejecutivo

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

Estructura de Bases de datos. Leonardo Víquez Acuña

Estructura de Bases de datos. Leonardo Víquez Acuña Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos

Más detalles