ESCOLA SUPERIOR DE ENXEÑERÍA INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA GUÍA DOCENTE TITULACIÓN: ENXEÑERÍA TÉCNICA EN INFORMÁTICA DE XESTIÓN MATERIA: METODOLOXÍAS AVANZADAS DE DESENVOLVEMENTO DE SOFTWARE CURSO: 2010/2011 CÓDIGO: 106012613 CARÁCTER: OPTATIVA CUADRIMESTRE: 2º CARGA LECTIVA: 6 CRÉDITOS CRÉDITOS ECTS: 5 PROFESOR RESPONSABLE: ARTURO JOSÉ MÉNDEZ PENÍN DESPACHO: 404 TELÉFONO: 988387011 CORREO ELECTRÓNICO: MRARTHUR@UVIGO.ES PÁXINA WEB: HTTP://WWW.MILEGROUP.NET/ O/A PROFESOR/A RESPONSABLE O/A SECRETARIO/A DO DEPARTAMENTO O/A SECRETARIO/A DO CENTRO ASDO: ARTURO J. MÉNDEZ PENÍN ASDO: REYES PAVÓN RIAL ASDO: MARÍA JOSË LADO TOURIÑO
DATOS ADMINISTRATIVOS DATOS DA TITULACIÓN Código 1060 Nome ENXEÑERÍA TÉCNICA EN INFORMÁTICA DE XESTIÓN PLAN ESTUDO 12 Fecha publicación BOE Curso implantación 22/08/2000 2000/2001 DATOS DA MATERIA Código da materia 106012613 Nome da materia Metodoloxías Avanzadas de Desenvolvemento de Software Centro / Titulación Escola Superior de Enxeñería Informática Tipo Curso Anual/cuadrimestral Optativa 3º 2 Cuadrimestre Idiomas en que se imparte Castellano Créditos aula Créditos Créditos (A) laboratorio (L) prácticas (P) Créditos ECTS 3 3 Idioma: Idioma: Idioma: galego galego galego 5 inglés castelán X inglés castelán X inglés castelán DATOS DO ENCARGO DE DOCENCIA Departamento Informática Área de coñecemento Linguaxes e Sistemas Informáticos Número grupos A Número grupos L Número grupos P 1 3 2
Profesorado da materia DATOS DO CENTRO Nome: Arturo J. Méndez Penín Categoría: Titular de Universidad Despacho: 404 Teléfono: 988387011 Email: mrarthur@uvigo.es Créditos A Créditos L Créditos P Grupos 3 0 MADS(A) Idioma galego Titorías castelán x inglés Período Mañá Tarde Primeiro cuatrimestre Mar: 10:00-13:00 Mie: 10:00-13:00 Segundo cuatrimestre Vie: 10:00-13:00 Jue: 16:30-19:30 Períodos sen docencia Mar: 10:00-13:00 Mie: 10:00-13:00 Outros (especificar) Nome: José Luis Carnero Sobrino Categoría: T3-P5 Despacho: 306 Teléfono: 988387027 Email: luisc@uvigo.es Créditos A Créditos L Créditos P Grupos 0 9 MADS1, MADS2, MADS3 Idioma galego Titorías castelán x inglés Período Mañá Tarde Primeiro cuatrimestre Lun: 15:30-19:00 Segundo cuatrimestre Mie: 15:30-19:00 Períodos sen docencia Lun: 15:30-19:00 Outros (especificar) Tribunal Extraordinario de 5ª, 6ª e 7ª convocatoria Presidente/a: Secretario/a: Vocal: Suplente: MANUEL PÉREZ COTA ALMA Mª GÓMEZ RODRÍGUEZ Mª ENCARNACIÓN GONZÁLEZ RUFINO Mª JOSÉ LADO TOURIÑO 3
1. Contextualización PROGRAMA DOCENTE 1.1. Perfil dos créditos da materia Afianzar los conocimientos del alumno en las tendencias actuales sobre el diseño de sistemas informáticos y la utilización de procesos de desarrollo software. Se tomará como marco de referencia las notaciones y procesos de desarrollo orientados a objetos, analizando los fundamentos de los más significativos. Introducir dentro de este contexto la utilización de patrones de diseño. Es una asignatura en principio muy relacionada con Ingeniería de Software, intentando afianzar los conocimientos adquiridos sobre procesos de desarrollo y la utilización de UML como lenguaje de comunicación. Además puede ser introductoria a la utilización de patrones en el diseño. 1.2. Ubicación e relacións no Plano de Estudios La asignatura forma parte del bloque formativo de Ingeniería de Software. Se imparte en Tercer Curso, y está dirigido a alumnos que hayan adquirido los conocimientos básicos de desarrollo de software. Está relacionada con Ingeniería de Software de Segundo Curso y con otras asignaturas como Diseño Avanzado de Software de Tercer Curso. Esta materia contribuye a complementar la formación dentro del bloque anteriormente citado para alcanzar las competencias específicas propias de la titulación. 2. Obxectivos 2.1. Obxectivos xerais Conocer los diversos procesos de desarrollo existentes con sus características Capacitar al alumno para crear documentación sobre el desarrollo de un sistema software utilizando UML como lenguaje Introducir a los patrones de diseño 2.2. Competencias Competencia Conocer los diferentes procesos de desarrollo Conocer el proceso unificado Ser capaz de entender, crear y explicar diferentes diagramas UML Conocer los diversos patrones de diseño Saber reconocer la aplicación de patrones de diseño Manejar una herramienta CASE para la realización de diagramas UML Tener capacidad para comunicarse de forma oral y escrita en temas referentes a la materia Ser capaz de trabajar en equipo Ser capaz de resolver problemas diversos de la materia y tomar decisiones al respecto Tipoloxía saber saber saber hacer saber saber hacer saber hacer saber ser/estar saber ser/estar saber ser/estar 4
3. Prerrequisitos (se procede) 3.1. Competencias mínimas Se asume que el alumnado tiene los siguientes conocimientos: Conocimientos básicos de programación orientada a objetos Conocimientos básicos de UML Manejo básico de una herramienta CASE como Visual Paradigm 3.2. Plan de traballo e actividades para a consecución dos prerrequisitos Se dejará material en la página web de la asignatura que sea referencia para la programación orientada a objetos (además de una breve clase introductoria), también se dará información sobre bibliografía de UML y tutorial de Visual Paradigm 4. Bloques e temas de contido 4.1. Descritor da materia (BOE) Metodologías y herramientas de software avanzado 4.2. Temario Tema 1. Introducción: Programación Orientada a Objetos 1.1 Evolución de los Lenguajes de Programación 1.2 Origen de la Programación Orientada a Objetos 1.3 Tipo de Dato Abstracto 1.4 Conceptos Básicos Tema 2. Metodologías y Procesos de Desarrollo 2.1 El Proceso para el Desarrollo de Software 2.2 Metodologías 2.3 Modelos Tema 3. Proceso Unificado 3.1 Características 3.2 Fases 3.3 Enfoque del Proceso Unificado 3.4 Modelos Tema 4. Casos de Uso 4.1 Introducción 4.2 Diagrama de casos de uso 4.3 Componentes de los diagramas de casos de uso 4.4 Casos de uso y Escenario 5
Tema 5. Diagrama de Clases 6.1 Introducción 6.2 Identificación de clases, asociaciones y atributos 6.3 Clases 6.4 Tipos de clases 6.5 Asociaciones 6.6 Generalización y Composición 6.7 Especialización 6.8 Relaciones dependientes 6.9 Paquetes Tema 6. Diagrama de Interacción y Contratos 5.1 Introducción 5.2 Diagramas de Secuencia 5.3 Diagramas de Colaboración 5.4 Diferencias entre Diagramas de Secuencia y Colaboración 5.5 Usos comunes 5.6 Contratos de operación Tema 7. Tarjetas CRC 7.1 Introducción 7.2 Definición 7.3 Lluvia de Ideas 7.4 Asignar Responsabilidades a las clases 7.5 Colaboraciones entre clases 7.6 Juegos de Rol Tema 8. Patrones GRASP 8.1 Introducción Patrones 8.2 Experto, Creador, Alta Cohesión, Bajo Acoplamiento y Controlador 8.3 Polimorfismo, Fabricación Pura, Indirección y Variaciones Protegidas Tema 9. Patrones de Diseño GoF 9.1 Adaptador 9.2 Factoría 9.3 Factoría Abstracta 9.4 Singleton 9.5 Estrategia 9.6 Composite 9.7 Fachada 9.8 Observador Tema 10. Diagrama de Estado 10.1 Estados 10.2 Transiciones 10.3 Actividades y Acciones 10.4 Eventos 10.5 Guardas 10.6 Concurrencia dentro de los estados 6
Tema 11. Diagrama de Actividad 11.1 Elementos 11.2 Diferencias entre diagramas de actividad y de estados 11.3 Descomposición de actividades Tema 12. Diagrama de Paquetes 12.1 Dependencias entre paquetes 12.2 Utilización del diagrama de paquetes 12.3 Modelo de Dominio 12.4 Arquitectura Lógica del Sistema Tema 13. Diagrama de Componentes 13.1 Componentes 13.2 Componentes e Interfaces 13.3 Tipos de Componentes Tema 14. Diagrama de Despliegue 14.1 Nodos 14.2 Relaciones entre nodos 14.3 La capa física 14.4 Despliegue del software sobre el hardware 14.5 Modelo de despliegue en el Proceso Unificado Tema 15. Aplicación de Patrones en Iteraciones Avanzadas 15.1 Recuperación ante fallos 15.2 Manejo de fallos 15.3 Patrón Proxy 15.4 Factoría Abstracta 15.5 Polimorfismo 15.6 Método Plantilla 15.7 Patrón Estado 4.3. Prácticas Práctica 1. Documentación en UML con herramienta CASE: introducción a la herramienta y realización de diagramas básicos relacionados con los artefactos vistos en la clase de teoría Práctica 2. Ingeniería Inversa: Creación de la documentación de análisis y diseño de un sistema a partir de su código fuente y fichero ejecutable, aplicando patrones de diseño 5. Metodoloxía e estratexia de aprendizaxe En esta asignatura se pretende desarrollar la capacidad de razonamiento del alumno, el trabajo en grupo y la discusión en el aula. Para alcanzar estos objetivos, se utilizarán las siguientes modalidades docentes: 7
Estratexia Sesión magistral Resolución de ejercicios Prácticas de laboratorio Pruebas objetivas Atención personalizada (tutorías) Descrición Exposición oral complementada con el uso de medios audiovisuales con la finalidad de transmitir conocimientos y facilitar el aprendizaje. Técnica mediante la cual los alumnos deben resolver un ejercicio planteado, a partir de los conocimientos explicados, y discutir la solución. Puesta en escena de los conocimientos aprendidos en teoría mediante el diseño realización de diagramas que demuestren lo explicado. Pruebas de carácter periódico para valorar la correcta comprensión e aplicación de los contenidos de la materia. Resolución de ejercicios breves y respuesta a cuestiones cortas o de respuesta múltiple. Tiene como finalidad atender de forma individual o pequeño grupo las consultas de los alumnos. 6. Plan de traballo do alumnado DISTRIBUCIÓN DE CRÉDITOS ECTS 5 nº créditos ECTS x 25 horas = 125 horas curso CARGA DE TRABAJO DEL ALUMNADO Actividades Horas Presencial Factor (*) horas Non presencial Horas Non Presencial TOTAL Presentación asignatura 2,0 0,0 0,0 2,0 Sesión magistral 20,0 1,5 30,0 50,0 Resolución de ejercicios 6,0 1,5 9,0 15,0 Prácticas de laboratorio 26,0 1,0 26,0 52,0 Pruebas objetivas 4,0 0,5 2,0 6,0 TOTAL 58,0 67,0 125,0 7. Bibliografía e materiais 7.1. Bibliografía básica 1. Craig Larman, UML y Patrones: una Introducción al Análisis y Diseño Orientado a Objetos y al Proceso Unificado, Segunda Edición, Pearson Educación, 2003 7.2. Bibliografía complementaria 1. Martin Fowler, UML Distilled, Tercera Edición, Pearson Educación, 2004 (en español, UML Gota a Gota, Pearson Addison-Wesley, 1999) 8
2. Perdita Stevens y Rob Poley, Utilización de UML en Ingeniería del Software con Objetos y Componentes, Segunda Edición, Pearson Educación, 2007 3. Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, Patrones de diseño, Pearson Educación, 2003 4. Grady Booch, James Rumbaugh e Ivar Jacobson, El lenguaje Unificado de Modelado, Segunda Edición, Pearson Educación, 2006 5. Ivar Jacobson, Grady Booch y James Rumbaugh, El Proceso Unificado de Desarrollo de Software, Pearson Educación, 2000 6. Grady Booch, Análisis y Diseño orientado a objetos con aplicaciones, Segunda Edición, Addison-Wesley, 1996 7. Stephen R. Schach, Análisis y Diseño Orientado a Objetos con UML y el Proceso Unificado, McGraw Hill, 2004 8. Ian Sommerville, Ingeniería del Software, Séptima Edición, Pearson Educación, 2005 9. Roger S Pressman, Ingeniería de Software: Un Enfoque Práctico, Sexta Edición, McGraw-Hill, 2005 10. Jim Conallen, Building Web Applications with UML, Addison-Wesley, 2000 11. Watt S. Humphrey, Introducción al Proceso Software Personal SM, Pearson Educación, 2001 7.3. Recursos web Página de la asignatura en plataforma faitic. 7.4. Outros materiais de apoio Guiones y apuntes de los temas en pdf, con los contenidos fundamentales del curso, relaciones de ejercicios, guiones de prácticas de laboratorio, tutoriales para herramientas de prácticas. 8. Avaliación dos procesos e resultados de aprendizaje. Criterios de avaliación 8.1. Criterios de avaliación para asistentes En el caso de los asistentes, la evaluación será continuada, realizándose a lo largo de todo el curso diferentes actividades que serán objeto de cualificación. Todos los alumnos deberán superar las pruebas objetivas, de teoría, práctica y final, para poder puntuar en las demás actividades. Además se valorará la asistencia. Los mecanismos de evaluación se muestran en la siguiente tabla: 9
Metodología Calificación (%) Pruebas objetivas de teoría 20 Resolución de ejercicios 10 Pruebas objetivas de práctica 15 Resolución de ejercicios de práctica 10 Participación 10 Asistencia 10 Prueba objetiva final 25 De cualquier modo, aquellos asistentes que lo deseen podrán optar a realizar el examen final en la fecha oficial. 8.2. Criterios de avaliación para non asistentes Aquellos estudiantes no asistentes deberán realizar el examen final en la fecha oficial que constituirá el 100% de la nota final. 9. Avaliación do proceso docente Cuestionarios periódicos para el alumnado para conocer el volumen de trabajo realizado, y su reparto entre cada una de las actividades propuestas. El profesor prestará atención especial a las sugerencias presentadas por los estudiantes en cualquier momento del curso, teniendo en cuenta los resultados de los cuestionarios para establecer mejoras para el próximo curso. 10. Observacións 11. Recomendacións 11.1. Materias que se recomenda haber cursado previamente Se recomienda haber cursado la asignatura de Ingeniería de Software de Segundo Curso. 11.2. Materias que se recomenda cursar simultaneamente No se recomienda cursar ninguna asignatura en particular 11.3. Materias que continúan o temario El temario de la asignatura no se continúa en ninguna asignatura en particular. 10
11.4. Outras recomendacións 11.4.1. Orientacións para o estudo Es recomendable que los estudiantes lleven un ritmo de estudio continuado, con una dedicación semanal media de 3 horas de estudio. Tambien es importante seguir las explicaciones del profesor y trabajar sobre las tareas asignadas. 11.4.2. Pautas para a mellora e recuperación Aquellos estudiantes que estén retrasados en su aprendizaje deberán asistir a tutorías específicas con el profesor, no dejando transcurrir demasiado tiempo para que se acumulen las dudas, y dedicar más tiempo a la aprendizaje autónoma que el estimado en la guía. 11