Procesos de Ingeniería de Software (300CIS005)

 

Información Básica

Descripción del Curso

En el curso de Procesos de Ingeniería de Software se estudian los procesos involucrados en el desarrollo de software, concebidos desde la ingeniería de software. Se revisan las diferentes etapas de un proceso de desarrollo de software y su finalidad. Se introducen diferentes metodologías de desarrollo de software y su aplicación de acuerdo al contexto. El curso se enfoca en la aplicación de la metodología Rational Unified Process (RUP) y el establecimiento de la documentación requiera para proyectos de software. Finalmente, por medio de la realización de un proyecto de desarrollo de software de tamaño mediano, se aplican los conceptos y técnicas estudiadas en el curso.

Objetivos

Al finalizar el curso los participantes podrán:

  1. Identificar los conceptos fundamentales de la ingeniería de software
    1. Enumerar las principales características y cualidades del software
    2. Identificar cual es el propósito de la Ingeniería de Software y la diferencia con las ciencias de la computación
    3. Describir los procesos de software y los modelos asociados a ellos.
    4. Reconocer la importancia de los modelos en el proceso de desarrollo de software.
  2. Reconocer los ciclos de vida del software, los modelos de procesos de desarrollo y metodologías de desarrollo de software.
    1. Identificar los ciclos de vida del software.
    2. Reconocer y diferenciar los modelos de procesos de desarrollo.
    3. Identificar y comparar diferentes metodologías de desarrollo de Software.
    4. Evaluar las ventajas y desventajas de cada metodología de acuerdo al contexto donde se aplicará.
    5. Aplicar una metodología de desarrollo ágil de software a un proyecto pequeño
  3. Recolectar, analizar y modelar los requerimientos de un producto de software mediano.
    1. Enumerar las diferentes etapas en el proceso de ingeniería de requerimientos
    2. Explicar las características que deben tener los requerimientos en un proyecto de software.
    3. Identificar requerimientos funcionales y no funcionales en proyectos de desarrollo de Software.
    4. Enumerar los diferentes tipos de requerimientos no funcionales.
    5. Realizar documentos de Requerimientos de Software (SRS) basados en estándares establecidos.
    6. Modelar con diagramas UML los requerimientos de un producto de software.
  4. Diseñar un producto de software de tamaño mediano
    1. Utilizar diferentes técnicas y modelos en el proceso de diseño de Software.
    2. Realizar documentos de Diseño de Software basados en estándares establecidos.
    3. Modelar con diagramas UML el diseño y funcionamiento de una aplicación.
    4. Evaluar diferentes alternativas de diseño relacionadas con la arquitectura, estructura e interfaces de un producto de software.
  5. Desarrollar, validar y probar un producto de software de tamaño mediano
    1. Reconocer las “buenas prácticas” en los procesos de desarrollo de software.
    2. Identificar los aspectos más importantes en los procesos de verificación y validación de software.
    3. Enunciar los aspectos más importantes del desarrollo formal de Software.
    4. Construir e integrar componentes de software de acuerdo a especificaciones y diseños establecidos.
    5. Evaluar y validar soluciones de software con respecto a las especificaciones establecidas.
  6. Utilizar los procesos metódicos de análisis, diseño, desarrollo, validación y mantenimiento de software en un proyecto real.
    1. Implementar una solución de software siguiendo una metodología específica, desde la etapa de obtención de requerimientos hasta la validación del producto desarrollado.

Contenido

Capítulo 1: Introducción

Sesión Horas de Clase Tópicos Bibliografía
1 2 Presentación del curso. Introducción. Reto y realidad del desarrollo del software [1,cap 1]
2 2 Definiciones y Conceptos básicos sobre la Ingeniería de Software [2,cap 1]
2 Definición de requerimientos para un miniproyecto de desarrollo de software (aplicación de metodología ágil)

Total de Horas: 4

Capítulo 2: Ciclo de vida, modelos de proceso y metodologías de desarrollo

Sesión Horas de Clase Tópicos Bibliografía
3 2 Ciclos se Vida y Modelos de Proceso [1,cap 2],[2,cap 2]
4 2 Métodologias de Desarollo de Software [1,cap 3],[2,cap 2.4,3],[6,cap 1,2,3]
5 2 Métodologías de Desarrollo de Soft : Comparativo. Rational Unifed Process (RUP) [1,cap 3],[2,cap 2.4,3],[6,cap 1,2,3]

Total de Horas: 6

Capítulo 3: Especificación y requerimientos de software

Sesión Horas de Clase Tópicos Bibliografía
6 1 Especificación y requerimientos de Software [1,cap 5], [3,cap 4], [5,cap 6,7]
6 1 Definición de requerimientos para proyecto semestral (aplicación de metodología RUP). Taller en clase
7 2 Ingeniería y Modelado de Requerimientos [1,cap 5,6,7], [2,cap 4], [5,cap 6,7]
8 2 Diagramas UML – Casos de Uso [1, Apéndice 1],[5,cap 3,7,A]
9 2 Doc. de Especificación de Requerimientos [2,cap 4.2], [8]
10 2 Presentación de Miniproyecto de desarrollo de software basado en métodos ágiles
11 2 Taller en Clase y Revisión de requerimientos de Proyecto Semestral

Total de Horas: 14

Capítulo 4: Diseño de Software

Sesión Horas de Clase Tópicos Bibliografía
12 2 Diseño de Software [1,cap 13,14,22], [3,cap 11,14]
13 2 Diseño de Software [1,cap 13,14,22], [3,cap 11,14]
14 2 Diagramas UML – Clases, y otros [5,cap 9,A]
15 2 Documento de Diseño de Software
16 2 Patrones de Diseño [3,cap 16], [7]
17 2 Diagramas UML – Diag. de Actividad [5,cap A,B]
18 2 Buenas Práctica en Diseño
19 2 Taller en Clase

Total de Horas: 16

Capítulo 5: Construcción (Desarrollo de Software)

Sesión Horas de Clase Tópicos Bibliografía
20 2 Construcción (Desarrollo) [2,cap 19, 21]
21 2 Estándares en el desarrollo de software
22 2 Taller en Clase
23 2 Calidad de Software [1,cap 14,16],[2, cap 24]
24 2 Desarrollo Formal de Software [1,cap 21]

Total de Horas: 10

Capítulo 6: Validación

Sesión Horas de Clase Tópicos Bibliografía
25 2 Verificación y Validación [3,cap 22]
26 2 Verificación y Validación [3,cap 22]
27 2 Pruebas [1,cap 17,18], [2,cap 8]
28 2 Taller en Clase. Presentación de herramientas
29 2 Métricas [1,cap 23], [3,cap 24.4]
30 2 Métricas [1,cap 23], [3,cap 24.4]

Total de Horas: 12

Capítulo 7: Evolución del Software

Sesión Horas de Clase Tópicos Bibliografía
31 2 Evolución del Software [2,cap 9.1]
32 2 Mantenimiento de Software [2, cap 9.3]

Total de Horas: 4

Recursos

Bibliografía

  1. Ingeniería de Software, un enfoque práctico. 7ed. Roger S. Pressman. McGraw Hill. México, 2010.
  2. Ingeniería de Software. 9ed. Ian Sommerville. Pearson Educación S.A. México, 2011.
  3. Ingeniería de Software orientada a Objetos. Alfredo Weitzenfeld. Thomson Press, 2004.
  4. Software Engineering Fundamental. Ali Behforooz, Frederinck J. Hudson. Oxford University Press. New York, 1996.
  5. The Unified Modeling Language reference manual. – 2ed. James Rumbaugh, Ivar Jacobson, Grady Booch.
  6. The rational unified process and introduction. – 2ed. Philippe Kruchten.
  7. Design patterns : elements of reusable object-oriented software. Erich Gamma.

Instalaciones

Salón de clase con computador y proyector.

Material de este semestre