© ETSII –UAH Ingeniería en Informática Curso 2007-08 Profesor coordinador de la asignatura: Miguel Ángel Sicilia Urbán msicilia@uah.es Profesores de la asignatura: Elena García Barriocanal elena.garciab@uah.es Miguel Garre Rubio miguel.garre@uah.es Código 78328 / 6 créditos – 3er curso, segundo cuatrimestre MSW 1 de 7 PLAN DE TRABAJO Última actualización: 20 de enero de 2008 Mantenimiento del Software (MSW) © ETSII –UAH Miguel Garre Rubio Ingeniero en Informática por la Universidad de Murcia y doctor por la Universidad de Alcalá. Profesor asociado del Dpto. de CC. De la Computación, de la Universidad de Alcalá desde 1998, área Lenguajes y Sistemas Informáticos. Profesor tutor en el Centro Asociado de la UNED en Guadalajara. Miembro del grupo de investigación Information Engineering en la Universidad de Alcalá. Trabaja en líneas de investigación relacionadas con la aplicación de técnicas de inteligencia artificial, y estadística, a la extracción de información en base a las variables que intervienen en el desarrollo de software. Ingeniería en Informática Miguel-Angel Sicilia Ingeniero en Informática por la Universidad Pontificia de Salamanca y doctor ingeniero en Informática por la Universidad Carlos III de Madrid. Profesor del Dpto. de CC. de la Computación – UAH Consultor de la Universidad Oberta de Catalunya en los estudios de Informática y en Máster oficial. Profesor en el Máster de tecnologías de comercio electrónico de la Univ. de Salamanca. Coordinador del grupo de investigación Information Engineering en la Universidad de Alcalá. Actualmente dirige el proyecto LUISA sobre la aplicación de Servicios Web Semánticos al e-learning, el proyecto Organic.Edunet sobre la difusión tecnológica de medios de agricultura orgánica (ambos financiados por la EU) y coordina el subproyecto en UAH del proyecto PERSONAL financiado por el MEC, sobre personalización en tecnología educativa. Es editor en jefe de la revista IJMSO y participa en el comité científico de otras revistas internacionales, y ha publicado más de quince artículos en revistas científicas de impacto. MSW Elena García Barriocanal Ingeniero en Informática por la Universidad Pontificia de Salamanca y doctora por la Universidad de Alcalá. Miembro del grupo de investigación Information Engineering de la Universidad de Alcalá, es profesora desde 2000 del departamento de Ciencias de la Computación de la misma universidad. También es consultora en entornos virtuales de enseñanza aprendizaje desde 2001. Trabaja en líneas de investigación relacionadas con la Web Semántica y el eLearning, interesándose especialmente por aspectos relacionados con la interacción y diseño de interfaces, líneas en las que tiene numerosas publicaciones. Forma parte del comité editoral de la revista IJHFMS (internacional Journal of Human Factors Modelling and Simulation ) publicada por Inderscience, y forma parte del comité de programa de conferencias sobre sus líneas de investigación. 2 de 7 © ETSII –UAH Ingeniería en Informática Tabla de contenidos DESCRIPCIÓN DE LA ASIGNATURA 4 PRERREQUISITOS 4 OBJETIVOS DE LA ASIGNATURA 4 CONTENIDOS 5 EVALUACIÓN 6 EVALUACIÓN CONTINUADA 6 EVALUACIÓN FINAL 6 CALENDARIO PROPUESTO 6 MSW 3 de 7 © ETSII –UAH Ingeniería en Informática Descripción de la asignatura El mantenimiento del software ha sido definido como la modificación de un producto software después de la entrega para corregir fallos, para mejorar el rendimiento u otros atributos, o para adaptar el producto a un entorno modificado. En un sentido más amplio, el mantenimiento del software es la totalidad de las actividades necesarias para hacer efectivo económicamente (cost-effective) al sistema software. El mantenimiento consume en la práctica una gran cantidad de recursos, lo cual hace especialmente importante el conocer los estándares, técnicas y conceptos específicos de esta actividad. La asignatura pretende ofrecer al alumno los conocimientos y habilidades necesarias en el mantenimiento del software. Prerrequisitos Esta asignatura presupone que el estudiante tiene conocimientos de las diferentes fases del desarrollo de software. Es recomendable igualmente el conocimiento del lenguaje de programación Java. Objetivos de la asignatura Estudiar los conceptos fundamentales, las técnicas, métodos, estándares internacionales y herramientas relacionados con el proceso de mantenimiento del software. Las competencias específicas que se ejercitarán son las siguientes: ─ Saber definir el mantenimiento del software, y diferenciarlo del concepto de evolución del software. ─ Saber distinguir los distintos tipos de mantenimiento del software. ─ Saber realizar labores de reingeniería e ingeniería inversa. ─ Conocer y saber aplicar métricas relacionadas con el mantenimiento del software. ─ Conocer y saber utilizar herramientas propias de activas de ingeniería relacionadas con el mantenimiento del software. ─ Conocer el concepto de metodología para el mantenimiento y sus distintos tipos. Las competencias transversales que se ejercitarán son las siguientes: ─ Capacidad de comunicación y argumentación de decisiones. ─ Capacidad de análisis de necesidades para situaciones y contextos concretos. MSW 4 de 7 © ETSII –UAH Ingeniería en Informática Contenidos TEMA 1.- CONCEPTOS GENERALES. 1.1. Definición de mantenimiento del software. Concepto de evolución del software. 1.2. Tipos de mantenimiento. 1.3. Problemas del mantenimiento. 1.4. El proceso de mantenimiento en el ciclo de vida del software 1.5. Actividades del proceso de mantenimiento. 1.6. Estándares para el mantenimiento del software. TEMA 2.- MÉTRICAS PARA EL MANTENIMIENTO DEL SOFTWARE. 2.1. Concepto de mantenibilidad del software. 2.2. Medidas externas e internas de la mantenibilidad. 2.3. Métricas y mantenimiento. Métricas de producto. Métodos de estimación del esfuerzo de mantenimiento. Detección de módulos propensos a fallos. TEMA 3.- TÉCNICAS DE MANTENIMIENTO DEL SOFTWARE. 3.1. Ingeniería inversa de programas. 3.2. Reconstrucción de programas. 3.3. Ingeniería inversa y reingeniería de datos. 3.4. Ingeniería inversa y reingeniería de interfaces de usuario. 3.5. Costes y beneficios de las reingeniería. Otras soluciones técnicas para el mantenimiento. TEMA 4.- HERRAMIENTAS PARA EL MANTENIMIENTO DEL SOFTWARE. 4.1. Herramientas CASE. Automatización del mantenimiento. 4.2. Herramientas de perfeccionamiento del código. 4.3. Herramientas de ingeniería inversa. 4.4. Herramientas de gestión de la configuración. 4.5. Herramientas de prueba. TEMA 5.- METODOLOGÍAS DE MANTENIMIENTO DEL SOFTWARE. MSW 5.1. Metodologías desarrollo. de mantenimiento frente a metodologías 5.2. Tipos de metodologías de mantenimiento. 5.3. Metodologías para la externalización del mantenimiento. 5.4. Metodologías de auditoria del mantenimiento. de 5 de 7 © ETSII –UAH Ingeniería en Informática Evaluación Evaluación continuada La evaluación continuada es el método de evaluación recomendado en la asignatura, dado que permite seguir el ritmo de aprendizaje según la planificación del aula, así como la asimilación progresiva de los conocimientos y competencias requeridos. Esta forma de evaluación se concreta en un conjunto de Pruebas de Evaluación Continuada (PECs). La asignatura MSW se evalúa mediante las siguientes PEC. # Unidad(-es) Tipo Peso 1 T1 Prueba teórico-práctica presencial 10% 2 T3 Prueba práctica de mantenimiento. Parte I 35% 3 T2/T4 Prueba práctica de mantenimiento. Parte II 45% 4 T5 Prueba teórico-práctica presencial 10% Los pesos de la Evaluación Continua que aparecen en la Tabla anterior se utilizarán para obtener la calificación final de Evaluación Continua. Se considera aprobada la Evaluación Continua si esa calificación es superior o igual al 50%. Para aquellos estudiantes que hayan superado la Evaluación Continua, los profesores valorarán su participación en el aula (presencial o vía Web), así como la realización de actividades suplementarias de carácter voluntario, pudiendo verse modificada positivamente la nota final de Evaluación Continua. Evaluación final Como alternativa para los estudiantes que no hayan superado la evaluación continuada se ofrecerá una prueba de evaluación final, consistente en un examen presencial y la presentación de una práctica. Calendario propuesto El siguiente es un resumen semanal de las actividades y principales hitos del curso. Se incluyen las fechas de publicación de enunciados de las PEC y la fecha de entrega correspondiente. También se indican los días en los que se tendrán clases presenciales. # Fechas Unidades/activi dades 1 11-feb a 17-feb T1 2 18-feb a 24-feb T1 3 25-feb a 2-mar T2 4 3-mar a 9-mar T2 5 10-mar a 16-mar T2 MSW Publicación PECs Entrega/prueba presencial Clases presenciales 12-feb PEC1 [22-feb] 19-feb 22-feb 26-feb PEC2[14-mar] 6 de 7 © ETSII –UAH Ingeniería en Informática 6 17-mar a 23-mar 5 24-mar a 31-abr T3 6 1-abr a 6-abr T3 7 7-abr a 13-abr T3 8 14-abr a 20-abr T3 9 21-abr a 27-abr T4 10 28-abr a 4-may T4 11 5-may a 11-may T4 12 12-may a 18-may T5 13 19-may a 25-may T5 PEC3[20-may] 23-may 14 26-may a 31-jun T5 PEC5 [30-may] 30-may MSW 25-mar 8-abr PEC2[15-abr] PEC3[25-abr] 18-abr 22-abr 29-abr 13-may 7 de 7