Ingeniería del Software II Curso 2010– 2011 Departamento: Informática e Ingeniería de Sistemas Area: Lenguajes y Sistemas Informáticos 7,5 cr. ⇒ 5 h. semana: 4,5 cr. Teoría ⇒ 3 h. semana 3 cr. Prácticos ⇒ 1 h. semana problemas 1 h. semana laboratorio Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 1 Profesores Teoría José Merseguer Despacho 0.08 Horas de tutoría: Jueves de 10 a 13 y Miércoles de 15 a 18. Sergio Ilarri Despacho 0.17 Horas de tutoría: Miércoles de 19:00 a 21:00 y Viernes de 8:00 a 12:00 Raquel Trillo Despacho 0.16 Horas de tutoría: Miércoles de 19:00-21:00, jueves 15:00-17:00 y viernes de 8:00-10:00 Prácticas Francisco Berlanga Despacho 3.01 Horas de tutoría: Lunes de 15:00 a 21:00 horas Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 2 Horario Teoría (Aula A.2) Grupo A: L: 13:10 a 14:00; M: 12:10 a 13:00 X: 11:10 a 12:00; J: 13:10 a 14:00 Grupo B: L: 19:10 a 20:00; M: 17:10 a 18:00; X: 18:10 a 19:00; J: 19:10 a 20:00 Prácticas (Lab. 0.04) No obligatorias Apuntarse en alguno de los grupos Individuales o grupo de dos alumnos Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 3 Ingeniería del software Ingeniería de software Aplicación de una aproximación sistemática, disciplinada y cuantificable al desarrollo, funcionamiento y mantenimiento del software. Requisitos del software Definición de los requisitos: funcionales y no funcionales. Proceso y técnicas de captura de requisitos; proceso de análisis y especificación; validación de requisitos. Diseño software Definir la arquitectura, componentes, interfaces y otras características de un sistema o componente. Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 4 Ingeniería del software … Construcción del software Codificación, verificación, pruebas unitarias, pruebas de integración, depuración del código. Pruebas del software Mantenimiento del software Comprobar el comportamiento real del software frente al especificado. Detectar anomalías y cambios en el entorno de ejecución, nuevos requisitos. Estimar y medir los costes de mantenimiento. Gestión de configuraciones Gestionar sistemáticamente los cambios que se producen en el software a lo largo del tiempo. Mantener la integridad y seguimiento de la configuración durante el ciclo de vida. Herramientas y técnicas para gestionar las versiones del software. Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 5 Ingeniería del software … Gestión del proyecto software Gestionar y medir el proyecto software. Planificar el proceso, estimar costes, asignar recursos, gestionar riesgos, evaluar prestaciones, etc. Proceso de ingeniería de software Definición, implementación, asesoramiento, medida y mejora de los procesos de la ingeniería del software. Modelos de ciclo de vida, notaciones de los modelos. Métodos y herramientas Tipos de métodos: no formales, formales, prototipado. Herramientas para todas las áreas. Integración de herramientas. Calidad del software Modelos de calidad. Verificación y Validación. Mejorar y asegurar la calidad. Revisiones y auditorías Requisitos de calidad. Caracterización de la calidad. Técnicas de gestión de calidad. Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 6 Fuentes Ingeniería del software Cuerpo de conocimiento Currículum de Ingeniería del software IEEE Software, November/December 2006, pp. 19-25 http://sites.computer.org/ccse Asociaciones: SWEBOK (Software Engineering Body of Knowledge). www.swebok.org ACM (ACM-Sigsoft), IEEE Computer Society, OMG Revistas, conferencias: IEEE Software IEEE Transactions on Software Engineering International Conference on Software Engineering (ICSE) ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS) Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 7 Troncalidad Ing. del software CPS Ingeniería del software I Análisis y diseño estructurado Ingeniería del software II Proyectos Gestión del proyecto software, gestión de configuraciones, calidad del software, dirección del proyecto software Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 8 Objetivos IS-2 Aprender los conceptos del paradigma de la Orientación a Objetos. Conseguir que el alumno adquiera las capacidades para abordar satisfactoriamente un diseño orientado a objetos y su posterior implantación. Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 9 Conocimientos Previos Ingeniería del Software I Análisis y Diseño Estructurado Lenguajes de Programación Paradigma de Programación Orientado a Objetos Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 10 Teoría (Contenidos) Bloque 0: Programación java Bloque I: Análisis y Diseño Orientado a Objetos con OMT Bloque II: UML-Lenguaje de Modelado Unificado Bloque III: Patrones de Diseño Bloque IV: Objetos Distribuidos Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 11 Teoría (Contenidos) Bloque 0: Tema: Programación java Profesor: Sergio Ilarri Duración: 6 horas Objetivos: Adquirir conocimientos de java para la realización de las prácticas de la asignatura. Afianzar los conceptos de POO aprendidos en la asignatura Lenguajes de Programación. Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 12 Teoría (Contenidos) Bloque I: Tema: Análisis y Diseño Orientado a Objetos con O.M.T. Profesor: José Merseguer Duración: 35 horas Temario: Unidad 1. Introducción a la Orientación a Objetos. Unidad 2. Introducción al Desarrollo de Software Orientado a Objetos. Unidad 3. El modelo de objetos. Unidad 4. El modelo dinámico y el funcional. Unidad 5. Proceso de Análisis. Unidad 6. Diseño del Sistema y de Objetos. Unidad 7. Implementación. Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 13 Teoría (Contenidos) Bloque II: Tema: Lenguaje de Modelado Unificado Profesor: José Merseguer Duración: 4 horas Objetivo: Complementar la notación de OMT Temario: Diagrama de Casos de Uso, Diagrama de Actividades, Diagramas de Componentes y Distribución Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 14 Teoría (Contenidos) Bloque III: Profesor: Raquel Trillo Duración: 7 horas Tema: Patrones de Diseño Objetivo: Complementar el Diseño de OMT Bloque IV: Profesor: Sergio Ilarri Duración: 6 horas Tema: Objetos en sistemas distribuidos Objetivo: Ampliar la visión del paradigma orientado a objetos Temario: RMI, CORBA, Agentes móviles Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 15 Prácticas (Contenidos) Práctica 1: Introducción a la POO con java Práctica 2: Acceso a BD con java Práctica 3: Modelado de un problema con la herramienta CASE ArgoUML Práctica 4: Interfaces de usuario en java Práctica 5: Objetos distribuidos en java Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 16 Bibliografía Teoría OMT J. Rumbaugh et Al., “Modelado y Diseño Orientado a Objetos”, Prentice Hall 1999. ISBN: 0-13-240698-5 UML Booch, G.; Rumbaugh, J.; Jacobson, I.: “El Lenguaje Unificado de Modelado” Addison Wesley. 2006. ISBN: 84-7829-076-1 http://www.omg.org Patrones E. Gamma, “Design Patterns: Elements of Reusable Object Oriented Software”, Addison-Wesley, 1998. ISBN: 0-201-63361-2 Objetos Distribuidos R. Orfali, “The Essential Distributed Objects Survival Guide”, Wiley 1996. ISBN: 0-471-12993-3 Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 17 Bibliografía Prácticas http://www.sun.com/java/ http://argouml.tigris.org/ Evaluación • Prácticas: 20% (no obligatorias) • Examen de teoría y problemas: 80% (no compensa con prácticas) Ingeniería del Software II Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) José J. Merseguer 18