Temario del curso: Ingeniería de Software Orientada a Objetos


Profa Guadalupe Ibargüengoitia G.
FacultadG. de Ciencias UNAM

Maestría en Ciencia e Ingeniería de la Computación
correo: gig@fciencias.unam.mx

Objetivo

El objetivo de este  curso es aplicar el conocimiento adquirido en los cursos de la Tecnología Orientada a Objetos y de Ingeniería de Software en un proyecto real. Se trata de recrear el ambiente de una empresa de desarrollo de software, con su organización y responsabilidades, dentro de un ambiente académico. De esta manera el alumno ejercitará los conocimientos adquiridos en cursos anteriores para aprender a trabajar en equipo y generar productos útiles para un cliente real en tiempo restringido. 

Prerequisitos

Haber llevado cursos de Ingeniería de Software y Tecnología Orientada a Objetos o tener conocimientos equivalentes.

Actividades del curso

Los alumnos formarán equipos de 4 a 6 personas para generar un proyecto de aplicación para un cliente real. La profesora del curso fungirá como gerente de la empresa desarrolladora y orientadora en los aspectos teóricos.

Las sesiones del curso se dividen en sesiones teóricas y de reporte de avances. En las sesiones teóricas se dará el repaso al  Team Software Process y al Unified Process, enfocándose en la organización de trabajo en grupo y la repartición de roles con sus responsabilidades.

Las sesiones de reporte de avance consisten en presentar el diseño del software cada semana.

El curso termina con una  validación por parte del cliente del sistema desarrollado, la entrega de la documentación a los profesores y la autoevaluación de los equipos con respecto al cumplimiento de las normas de calidad y tiempo de entrega.

Contenido teórico

1. Proceso Unificado de desarrollo de software            
- Organización del proceso, definición de roles.

2. Trabajo en equipo (Team Software Process y Personal Software Process)     
- Organización del grupo de trabajo y métricas individuales

3. Patrones       
- de Diseño        
- de Implementación


Proyecto de desarrollo de un sistema real       

-  Identificación de un cliente real       
- Planteamiento del proyecto      
- Organización del  proceso       
- Organización del equipo de trabajo
- Realización del proyecto

Roles de equipos de trabajoIndividuales

- Líder de proyecto
- Administrador de Planeación
- Administrador de Desarrollo
- Administrador de Configuración
- Administrador de Calidad

Todos

- Ingeniero de desarrollo

Herramientas de software a utilizar

- Graficador de UML de Rational Rose o equivalente
- Java
- Project de Microsoft
- Manejador de base de datos  
- Herramientas para el desarrollo de prototipos de ventanas
- Herramientas para la administración de configuración


Método de evaluación

La evaluación de cada alumno va a depender de su participación y desempeño como miembro del grupo según los roles que le fueron asignados. También, se tomará en cuenta la presentación de capítulos de libros o artículos en las sesiones teóricas.


Bibliografía

Watts S. Humphrey, Introduction to Team Software Process, SEI Series in Software Engineering, Addison Wesley, 2000.

Jacobson I., G. Booch, J. Rumbaugh, The Unified Software Development Process, Addison-Wesley, 1999.

Booch G., J. Rumbaugh, I. Jacobson, The Unified Modeling Language User Guide, Addison-Wesley, 1999.

Ambler S. Agile Modeling: Effective Practice for eXtreme Programming and the Unified Process. Wiley Computer Publishing, 2002.

Cockburn A. Agile Software Development. Addison Wesley, 2002.

Gamma, E., Helm, R., Johnson R., Vlissides J., Design Patterns: Elementso of Reusable Object Software, Addison-Wesley, 1995.

Buschmann F., R. Meumier, H. Rohmerd, P. Sommerland, M. Stal, Pattern-Oriented Software Arquitecture, A System Of Patterns, J. Wiley, 1996.

Armour F., G. Miller, Advanced Use Case Modeling. Software Systems. Addison Wesley , 2001.