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

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

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

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

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

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

[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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Metodología para el diseño y desarrollo de interfaces de usuario

Metodología para el diseño y desarrollo de interfaces de usuario Metodología para el diseño y desarrollo de interfaces de usuario Versión Historia de Revisión Fecha Versión Descripción Responsable 20/06/2005 Creación. Alejandro Báez Cristian Castañeda Diego

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

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

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

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

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Unidad Académica Base de Datos SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Integrantes: Fidel Gil

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs enero 2009 FJRP, FMBR 2008/09 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

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

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

DPTO. DE CIENCIAS DE LA COMPUTACIÓN CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA

DPTO. DE CIENCIAS DE LA COMPUTACIÓN CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA DPTO. DE CIENCIAS DE LA COMPUTACIÓN CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA ANÁLISIS, DESARROLLO E IMPLANTACIÓN DE UN SISTEMA ORIENTADO A LA WEB PARA GESTIÓN ACADÉMICA. CASO PRÁCTICO: JOHN OSTEEN

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

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

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

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

Indizen Labs imade. Marco de Desarrollo Aplicaciones de Indizen

Indizen Labs imade. Marco de Desarrollo Aplicaciones de Indizen Indizen Labs imade Marco de Desarrollo Aplicaciones de Indizen Índice de contenidos Indizen Labs Introducción a imade Metodología imade Arquitectura imade Herramientas imade Indizen Labs Indizen Labs Son

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

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

UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de la Computación DESARROLLO DE SISTEMA DE ADMINISTRACIÓN DE PRECIOS PARA LA EMPRESA CENTRAL MADEIRENSE

UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de la Computación DESARROLLO DE SISTEMA DE ADMINISTRACIÓN DE PRECIOS PARA LA EMPRESA CENTRAL MADEIRENSE UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de la Computación DESARROLLO DE SISTEMA DE ADMINISTRACIÓN DE PRECIOS PARA LA EMPRESA CENTRAL MADEIRENSE Por Mariana Gamboa Sansón INFORME FINAL DE CURSOS EN COOPERACION

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

BASES DE DATOS. Ivon Tarazona Oriana Gomez

BASES DE DATOS. Ivon Tarazona Oriana Gomez BASES DE DATOS Ivon Tarazona Oriana Gomez Introducción Introducción Ventajas e (Unified Modeling Language) Es un lenguaje usado para especificar, visualizar y documentar los diferentes aspectos relativos

Más detalles

CAPÍTULO 1. MARCO TEÓRICO

CAPÍTULO 1. MARCO TEÓRICO CAPÍTULO 1. MARCO TEÓRICO Capítulo 1. Marco teórico 1.1 Ingeniería Web (IWeb) Con el desarrollo de Internet, la mayoría de los proyectos y sistemas están enfocados para las aplicaciones basadas en la Web

Más detalles

Facultad de Ingeniería Informática. Informe de las Prácticas Profesionales

Facultad de Ingeniería Informática. Informe de las Prácticas Profesionales Facultad de Ingeniería Informática CEIS Informe de las Prácticas Profesionales Título: Informatización de los Procesos de Negocio Solicitud de Trabajo Extra laboral en el CITI, a través de la BPMS BizAgi

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

Sistema de Control de Acceso Distribuido

Sistema de Control de Acceso Distribuido Sistema de Control de Acceso Distribuido Ing: Javier Jorge Lic. Eduardo Sanchez Febrero, 2010 Página 1 de 12 Alcance o dimensiones del problema Debido a que el control de acceso presenta grandes dimensiones

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

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación Trabajo Final de Graduación para optar por el título Bachiller en Ingeniería en Computación Migración del Módulo de Inventario del Sistema Business Advance Víctor Guzmán Alfaro Carrera Ingeniería en Computació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

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

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

El Framework de desarrollo del Consejo

El Framework de desarrollo del Consejo El Framework de desarrollo del Consejo Superior de Investigaciones Científicas Director de la OPCSIC Centro Técnico de Informática (CSIC) Directora Centro Técnico de Informática (CSIC) Palabras clave Framework,

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

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

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

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

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

PROCESOS DE SOFTWARE HE AHÍ EL DILEMA

PROCESOS DE SOFTWARE HE AHÍ EL DILEMA PROCESOS DE SOFTWARE HE AHÍ EL DILEMA JAIME GARCIA CEPEDA jgarcia@skitconsulting.com SKIT Consulting 2718884 BOGOTÁ 1 PREAMBULO Septiembre'2007 2 Algunos de nuestros Ingenieros Septiembre'2007 3 Ing. PASARELA

Más detalles

Capítulo 2 : Marco Teórico

Capítulo 2 : Marco Teórico Capítulo 2 : Marco Teórico En este capítulo se darán a conocer algunos conceptos básicos del contexto de este trabajo, con la finalidad de situar al problema dentro de un conjunto de conocimientos. Dentro

Más detalles

Instituto Tecnológico de Costa Rica Escuela de Ingeniería en Computación

Instituto Tecnológico de Costa Rica Escuela de Ingeniería en Computación Instituto Tecnológico de Costa Rica Escuela de Ingeniería en Computación Implementación del sistema para control de vacaciones de la empresa GBSYS Práctica de especialidad para optar por el título de Ingeniero

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

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

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG)

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG) Tema 2. El Ciclo de Vida del Software (ISG1-ITIG) Grupo de Ingeniería del Software Antonio José Sáenz Albanés (C.T.O) Reconocimiento No Comercial Compartir Igual - 3.0 - España 1 Objetivos del Tema Qué

Más detalles

Desarrollo de software

Desarrollo de software Agenda 1. Introducción 2. Aspectos Metodológicos del Desarrollo de Software 3. Aplicación Web (Modelo del Producto) 4. Modelo del proceso 5. Dos enfoques Metodológicos 6. Métodos Seleccionados 7. Evaluación

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

Programador Java Página 1 de 7 Escuela de Sistemas y Tecnologías BIOS

Programador Java Página 1 de 7 Escuela de Sistemas y Tecnologías BIOS Programador Java Página 1 de 7 Escuela de Sistemas y Tecnologías BIOS PROGRAMADOR JAVA INTRODUCCIÓN El programador Java es un especialista en construir soluciones empresariales utilizando tecnologías Java

Más detalles

Boletín de Asesoría Gerencial SOA: enfoque técnico orientado a procesos

Boletín de Asesoría Gerencial SOA: enfoque técnico orientado a procesos Espiñeira, Sheldon y Asociados No. 4-2010 Contenido Haga click en los enlaces para navegar a través del documento Haga click en los enlaces para llegar directamente a cada sección 4 Introducción 4 Qué

Más detalles

8.1 Arquitectura funcional

8.1 Arquitectura funcional 1 Colección de Tesis Digitales Universidad de las Américas Puebla Zuñiga, Víctor Alejandro 8.1 Arquitectura funcional La arquitectura de un sistema define sus componentes básicos y los conceptos importantes,

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

CAPÍTULO V. Propuesta

CAPÍTULO V. Propuesta CAPÍTULO V Propuesta 5.1 Propuesta Implantación de una aplicación WEB para optimizar el Enlace Laboral de la Cámara de Comercio e Industria de El Salvador, Filial San Miguel 5.2 Requerimientos de la Aplicación

Más detalles

Notas técnicas de JAVA Nro. 7 Tip Breve

Notas técnicas de JAVA Nro. 7 Tip Breve Notas técnicas de JAVA Nro. 7 Tip Breve (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado) Tema: JAVA Basics: Diferencias conceptuales entre JavaBeans y Enterprise JavaBeans (EJB)

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

UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS

UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS METODOLOGIAS AGILES PROCESO UNIFICADO AGIL (AUP) MATERIA : INGENIERIA SOFTWARE DOCENTE : LIC. ERVIN FLORES ESTUDIANTE : JORGE LUIS CORDERO

Más detalles

UML 2 Iniciación, ejemplos y ejercicios corregidos

UML 2 Iniciación, ejemplos y ejercicios corregidos Ediciones ENI UML 2 Iniciación, ejemplos y ejercicios corregidos (3ª edición) Colección Recursos Informáticos Contenido Contenido 1 Capítulo 1 Introducción 1. Motivaciones de la obra.....................................

Más detalles

PROGRAMA INSTRUCCIONAL

PROGRAMA INSTRUCCIONAL Universidad Centroccidental "Lisandro Alvarado" Decanato de Ciencias y Tecnología Departamento de Sistemas PROGRAMA INSTRUCCIONAL PROGRAMA: INGENIERÍA EN INFORMATICA DEPARTAMENTO: SISTEMAS ASIGNATURA:

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

LAS METODOLOGÍAS AGILES

LAS METODOLOGÍAS AGILES LAS METODOLOGÍAS AGILES Varias metodologías encajan bajo el estandarte de ágil. Mientras todas ellas comparten muchas características, también hay algunas diferencias significativas. No puedo resaltar

Más detalles

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS Rubby Casallas, Andrés Yie Departamento de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes Agenda Contexto Ciclos de vida: Modelo

Más detalles

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios Diplomado Java Descripción El lenguaje de programación Java es uno de los más utilizados hoy en día. Su potencia, simplicidad, funcionalidad y capacidad hacen que este lenguaje sea una de las herramientas

Más detalles

CAPÍTULO 1. A fin de cumplir con los requisitos previos a la obtención del título de. Ingeniero en Sistemas Computacionales, se elabora este proyecto.

CAPÍTULO 1. A fin de cumplir con los requisitos previos a la obtención del título de. Ingeniero en Sistemas Computacionales, se elabora este proyecto. CAPÍTULO 1 1. INTRODUCCION 1.1. Antecedentes A fin de cumplir con los requisitos previos a la obtención del título de Ingeniero en Sistemas Computacionales, se elabora este proyecto. Este capitulo proporciona

Más detalles

PATRONES DE DISEÑO. FAVA - Formación en Ambientes Virtuales de Aprendizaje. SENA - Servicio Nacional de Aprendizaje

PATRONES DE DISEÑO. FAVA - Formación en Ambientes Virtuales de Aprendizaje. SENA - Servicio Nacional de Aprendizaje PATRONES DE DISEÑO 1. Generalidades 2. Patrones Gof 2.1. Patrones Creacionales 2.1.1.Fábrica Abstracta 2.1.2.Constructor 2.1.3.Método de Factoría 2.1.4.Prototipo 2.1.5.Singleton 2.2. Patrones Estructurales

Más detalles

Formatos para prácticas de laboratorio

Formatos para prácticas de laboratorio Fecha de efectividad: CARRERA Ing. En Comp. y L.S.C. PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA 2003-1 5038 Programación Orientada a Objetos II PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA

Más detalles

Certificaciones: Diploma de Aprobación en Desarrollo Web con Java.

Certificaciones: Diploma de Aprobación en Desarrollo Web con Java. DIPLOMATURA EN DESAR ROLLO DE APLICACIONE S WEB CON JAVA PARTE I: OBJETIVOS ESPECÍFICOS La Diplomatura en Desarrollo de Aplicaciones Web con Java tiene los siguientes objetivos específicos: Adquirir habilidad

Más detalles

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar Gobierno Municipal del Cantón Bolívar Versión: Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Plan de Desarrollo de Software Universidad

Más detalles

5.6.3 Session Facade

5.6.3 Session Facade 5.6.3 Session Facade Session Facade (1) Intención Proporcionar una interfaz sencilla que soporta un conjunto de casos de uso relacionados Motivación La explicada en el tema 2: proporcionar una interfaz

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

SERVICIOS: EXPLORACIONES EN SOA y WEB.

SERVICIOS: EXPLORACIONES EN SOA y WEB. SERVICIOS: EXPLORACIONES EN SOA y WEB. López, G. 1 ; Jeder, I 1.; Echeverría, A 1.; Grossi, M.D. 2 ; Servetto, A 2.; Fierro, P. (PhD.) 3 1. Laboratorio de Informática de Gestión - Facultad de Ingeniería.

Más detalles

ANÁLISIS Y DISEÑO DE UN PORTAL DE VENTA DE LIBROS EDUCATIVOS

ANÁLISIS Y DISEÑO DE UN PORTAL DE VENTA DE LIBROS EDUCATIVOS INGENIERIA DE SOFTWARE Trabajo Final de Carrera ANÁLISIS Y DISEÑO DE UN PORTAL DE VENTA DE LIBROS EDUCATIVOS Jordi Cid Rodríguez - ETIG - Consultor: José Antonio Raya Martos Septiembre 2011 Objetivo El

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

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

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

El Proceso Unificado Rational para el Desarrollo de Software.

El Proceso Unificado Rational para el Desarrollo de Software. Instituto de Electrónica y Computación El Proceso Unificado Rational para el Desarrollo de Software. Carlos Alberto Fernández y Fernández Huajuapan de León, Oaxaca 26 de octubre de 2000 Objetivo Proporcionar

Más detalles

Patrones. (Conceptos Generales)

Patrones. (Conceptos Generales) Patrones (Conceptos Generales) Agenda Motivación para los patrones Definiciones de patrones Tipos de patrones (Catálogos) De diseño (GoF) De arquitectura (POSA) De plataforma (J2EE) Ejemplo (Patrón DAO)

Más detalles

implantación Fig. 1. Ciclo de vida tradicional

implantación Fig. 1. Ciclo de vida tradicional 1. Ciclo de vida tradicional de los sistemas de software En ingeniería de software, la descripción tradicional del ciclo de vida del software está basada en un modelo conocido como el modelo de cascada

Más detalles

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Arquitectura Java para el Cuarto Ejercicio José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Sumario Introducción Arquitectura en n-capas Arquitectura y el Cuarto Examen Java y su modelo

Más detalles

Administración de Variabilidad en una línea de producto basada en modelos

Administración de Variabilidad en una línea de producto basada en modelos Administración de Variabilidad en una línea de producto basada en modelos Kelly Garcés Carlos Parra Hugo Arboleda Andres Yie Rubby Casallas Universidad de los Andes, Bogotá k-garces @uniandes.edu.co Universidad

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