Última actualización: miércoles 21 de febrero de 2007
Acceso al web de la asignatura
Módulo 1. Fundamentos del diseño de software.
1.1. Principios del diseño de software.
1.2. Reutilización del software.Módulo 2. El modelo de objetos.
2.1. Clases, objetos y paso de mensajes.
2.2. Herencia, polimorfismo y vinculación dinámica.
2.3. Soluciones genéricas.
2.4. Clases abstractas.Módulo 3. Pruebas.
3.1. Pruebas de software.
3.2. Métodos de prueba.
3.3. Diseño de casos de prueba.Módulo 4. Diseño arquitectónico.
4.1. Arquitectura del Software.
4.2. Diseño de la arquitectura del sistema.
4.3. Componentes y despliegue.Módulo 5. Diseño orientado a objetos.
5.1. Patrones de diseño.
5.2. Refactorización.Módulo 6. El proceso de diseño en UML.
6.1. Modelado estructural avanzado.
6.2. Diseño de las asociaciones.
6.3. Modelado de comportamiento avanzado.
6.4. Máquinas de estados: eventos y señales.
6.5. Procesos y hebras.
6.6. Diseño de las interacciones.Introducir al alumno en el diseño e implementación de sistemas complejos de software. Para ello se dará un enfoque orientado a objetos, comparándolo con otros modelos de diseño, utilizando como base las especificaciones realizadas en la asignatura "Ingeniería del Software. Especificación".
Los créditos de la asignatura se dividirán en sesiones de clases en el aula, sesiones de problemas y sesiones de laboratorio. En el aula, las clases se llevarán a cabo utilizando pizarra y proyector de vídeo, y serán fundamentalmente teóricas para presentar a los alumnos contenidos básicos de la asignatura, que ellos deberán complementar con trabajo personal. A lo largo del curso se realizarán varias sesiones de problemas con grupos reducidos, cuando fuese posible, en las que se motivará la participación activa del alumno, desarrollando diversos casos prácticos para ilustrar los diferentes conceptos presentados en las clases teóricas. Por otro lado, la necesidad de que el alumno lleve a la práctica los conocimientos que va adquiriendo hace imprescindible la realización de trabajos de laboratorio, que serán monitorizados por los profesores de la asignatura.
La evaluación del alumno estará basada en tres componentes: la valoración del trabajo personal que complementará la formación teórica del estudiante, la evaluación de las prácticas y trabajos desarrollados a lo largo del curso y la realización de un examen final que incluya tanto aspectos teóricos como prácticos.
El alumno tendrá la posibilidad de realizar las siguientes actividades complementarias:
Trabajo personal. Entre los mejores trabajos se podrá seleccionar alguno para su exposición en clase. Realización de las prácticas. Su evaluación se realizará mediante el seguimiento personalizado de los profesores a través de entrevistas. Las prácticas se realizarán en grupos de dos o tres alumnos.La evaluación positiva de cada una de estas actividades podrá incrementar un tramo la calificación, y cada alumno podrá acumular dos tramos positivos.
Todos los alumnos deberán realizar una prueba final que deberá ser superada en un nivel mínimo (a establecer por los profesores), como requisito previo para poder acumular los puntos conseguidos en la evaluación positiva de las actividades complementarias.
R.S. Pressman. Ingeniería del Software. Un enfoque práctico. McGraw Hill, 5ª Edición, 2002.
- B. Meyer. Construcción de Software Orientado a Objetos. Prentice Hall, 2ª Edición, 1999.
- G. Booch, J. Rumbaugh, I. Jacobson, El Lenguaje Unificado de Modelado. Guía del Usuario. Addison Wesley, 2000.
- J. Rumbaugh, I. Jacobson, G. Booch. El Lenguaje Unificado de Modelado. Manual de Referencia. Addison Wesley, 2000.
- I. Jacobson, G. Booch, J. Rumbaugh. El Proceso Unificado de Desarrollo de Software. Addison Wesley, 2000.
- C. Larman. Applying UML and Patterns: an introduction to Object-Oriented. Analysis and Design and the Unified Process. Prentice Hall, 2002 (2ª edición).
- A. J. Riel. Object-Oriented Design Heuristics. Addison Wesley, 1996.
- E. Gamma et al. Design Patterns. (diapositivas). Addison Wesley, 1995.
- S. Stelting, O. Maassen. Applied Java Patterns. Prentice Hall, 2002.
- M. Fowler. Refactoring: improving the design of existing code. Adison Wesley, 2000.
- B. Eckel. Thinking in Java. 1997.
- K. Arnold, J. Gosling, D. Holmes. El lenguaje de programación JAVA. Addison Wesley, 2001.
- B. Beizer. Software Testing Techniques. van Nostrand Reinhold, 1983.
- C. Kaner, J. Falk, H.Q. Nguyen. Testing Computer Software. John Wiley & Sons, 1999.
- G. Myers. The Art of Software Testing. John Wiley and Sons, 2004.