Home Teaching - Software Engineering March 12, 2010   

Ingeniería de Software

Objetivo general
  • Este curso tiene como objetivo que los estudiantes adquieran los conocimientos y competencias en el área de Ingeniería de Software necesarios para llevar a cabo exitosamente proyectos complejos de desarrollo de software
Objetivos específicos
  • Utilizar las herramientas y técnicas disponibles para organizar, dirigir y controlar el proceso de desarrollo de sistemas de software
  • Identificar las principales metodologías disponibles para la especificación de requerimientos que deben cumplir los sistemas en desarrollo
  • Aplicar los principios generales de análisis y diseño de sistemas en la creación de productos de trabajo que proporcionen las entradas necesarias para la face de implementación de las aplicaciones
  • Conocer las principales herramientas de verificación y validación de software y su utilidad en las diferentes fases del desarrollo de sistemas
Contenido temático
  • Conceptos básicos de Ingeniería de Software
  • Análisis de requerimientos
  • Diseño
  • Desarrollo
  • Verificación y validación
  • Administración
Lineamientos de evaluación
  • Tareas y trabajos de investigación, 20%
  • 5 Examenes rápidos (quizzes), 25%
  • Examen parcial, 25%
  • Proyecto final, 30%
Bibliografía
  • Ian Sommerville. Software Engineering, 2006, 8th Edition, Addison Wesley; ISBN-10: 0321313798
  • Roger S Pressman. Software Engineering: A Practitioner's Approach, 2004, 6th edition, McGraw-Hill; ISBN-10: 007301933X
  • Kent Beck. Extreme Programming Explained: Embrace Change, 2000, Addison-Wesley; ISBN-10: 0201616416
Material de clase
Sesión Fecha Tema Material
1 25/08/09 Presentación del curso
Conceptos básicos de Ingeniería de Software (Cap. 1 Sommerville)
Tarea 1: Leer el código ética y práctica profesional de la ingeniería de software propuesto por ACM/IEEE para su discusión en clase. Prepare en Latex una síntesis (máximo una página) e indique sus conclusiones personales.

Fecha de entrega: 01 de septiembre del 2009.
.
2 27/08/09 Proceso de software (Cap. 4 Sommerville)
3 01/09/09 UML (Unified Modeling Language)
Tutorial de UML
Tarea 2: Tomado en cuenta el sistema de software para una bomba de insulina para pacientes diabéticos descrito en el capítulo 3 del libro de Sommerville, desarrolle los siguientes diagramas utilizando Netbeans y su plugin para UML.
  • De casos de uso
  • De actividades
  • De secuencia
  • De clases
Fecha de entrega: 08 de septiembre del 2009.
.
4 03/09/09 Ingeniería de Requerimientos (Cap. 6 y 7 Sommerville)
5 08/09/09 Revisión Tarea 2, UML .
6 10/09/09 Definición de requerimientos para el proyecto final de la materia .
RE in automotive development
RE and expectation management
Managing requirements for medical IT products
RE in small and medium enterprises
Tarea 3: Exposición en equipo de un artículo relacionado con la Ingeniería de Requerimientos.

Fecha de entrega: 17 de septiembre del 2009.
.
7 15/09/09 Análisis y diseño (Cap. 8, 9 y 10 Pressman)
Tarea 4: Documentar los requerimientos del proyecto final de la materia.

Fecha de entrega: 24 de septiembre del 2009.
.
8 17/09/09 Exposición de artículos relacionados con la Ingeniería de Requerimientos .
9 22/09/09 Modelado basado en escenarios (Cap. 8 Pressman)
Tarea 5: Desarrollar los casos de uso del proyecto final de la materia utilizando la plantilla vista en clase. En base a éstos construir los diagramas de casos de uso y de actividades del sistema.

Fecha de entrega: 06 de octubre del 2009.
.
10 24/09/09 Primera revisión del documento de requerimientos .
11 29/09/09 Lectura y discusión del artículo:
Modeling Usage: Techniques and Tools. Catharina Riedemann, Regine Freitag, IEEE Software, vol. 26, no. 2, pp. 20-24, March/April, 2009.
.
Segunda revisión del documento de requerimientos .
12 01/10/09 Desarrollo de un caso de uso del proyecto final .
Artículo recomendado:
Mark Harman. The Current State and Future of Search Based Software Engineering, 29th Int. Conference on Software Engineering (ICSE 2007), Future of Software Engineering (FoSE), Minneapolis, USA, 20 - 26 May 2007.
13 06/10/09 Revisión de los diagramas de casos de uso y de actividades del proyecto final .
Tarea 6: Desarrollar el diagrama Entidad-Relación y el modelo relacional para el proyecto final de la materia

Fecha de entrega: 13 de octubre del 2009.
.
14 08/10/09 Desarrollo (Cap. 17, 18 y 19 Sommerville)
15 13/10/09 Revisión del diagrama Entidad-Relación y del modelo relacional del proyecto final .
Tarea 7: Desarrollar los diagramas de clases y de paquetes del proyecto final de la materia

Fecha de entrega: 22 de octubre del 2009.
.
16 y 17 15/10/09 y 20/10/09 Estrategias y técnicas de prueba del software (Cap. 13 y 14 Pressman)
18 22/10/09 Revisión de los diagramas de clases y de paquetes del proyecto final .
Tarea 8: Desarrollar un algoritmo de tipo hillclimbing para construir (pequeños) Covering Arrays binarios de fuerza dos.

Fecha de entrega: 5 de noviembre del 2009.
.
19 - 22 27/10/09 al 05/11/09 Codificación del primer entregable del proyecto final de la materia

Fecha de entrega: 10 de noviembre del 2009.
.
23 10/11/09 Revisión detallada del primer entregable del proyecto final de la materia .
24 12/11/09 Técnicas de prueba del software 2da. parte (Cap. 14 Pressman) .
25 17/11/09 Examen rápido .
26 19/11/09 Métricas de software (Cap. 15 Pressman)
Solución del examen rápido .
27 24/11/09 Tarea 9: Resolver los problemas 15.3 a 15.8 y 15.11 del capítulo 15 del Pressman sobre métricas de software.

Fecha de entrega: 26 de noviembre del 2009.
.
28 26/11/09 Revisión detallada del segundo entregable del proyecto final de la materia .



® 2009 Eduardo Rodriguez-Tello