Ciencias de la Computación (plan 1994) 2024-2
Séptimo Semestre, Ingeniería de Software
Grupo 7008, 40 lugares. 29 alumnos.
Temario
El curso seguirá cercanamente la primera parte del libro Software
Engineering, de Ian Sommerville, con la posibilidad de cubrir algo
del material de la segunda parte si el tiempo alcanza.
- Introducción
- Desarrollo profesional de software
- Ética de la ingeniería de software
- Casos de estudio
- Procesos de software
- Modelos de proceso de software
- Actividades de proceso
- Lidiando con el cambio
- El proceso unificado racional
- Desarrollo de software ágil
- Métodos ágiles
- Desarrollo ágil y basado en planes
- Programación extrema
- Gestión de proyectos ágiles
- Escalamiento de métodos ágiles
- Ingeniería de requerimientos
- Requerimientos funcionales y no funcionales
- El documento de requerimientos de software
- Especificación de requerimientos
- Procesos de ingeniería de requerimientos
- Obtención y análisis de requerimientos
- Validación de requerimientos
- Gestión de requerimientos
- Modelado de sistemas
- Modelos de contexto
- Modelos de interacción
- Modelos estructurales
- Modelos de comportamiento
- Ingeniería basada en modelos
- Diseño arquitectonico
- Decisiones de diseño arquitectónico
- Vistas arquitectónicas
- Patrones arquitectónicos
- Arquitecturas de aplicaciones
- Diseño e implementación
- Diseño orientado a objetos usando UML
- Patrones de diseño
- Problemas al implementar
- Desarrollo de código abierto
- Pruebas de software
- Pruebas de desarrollo
- Desarrollo basado en pruebas
- Pruebas de lanzamiento
- Pruebas de usuario
- Evolución del software
- Procesos de evolución
- Dinámica de evolución del programa
- Mantenimiento del software
- Gestión de sistemas heredados
Evaluación
El curso se evaluará principalmente con un proyecto de desarrollo de
software que se realizará por equipos a lo largo de todo el
semestre.
Además del proyecto, se utilizarán otras herramientas de evaluación para
cubrir el material conceptual del curso; no hemos decidido todavía el
porcentaje que la parte conceptual cubrirá, pero a lo más será 40%, y
probablemente sea menos.
En este curso no van a aprender a programar; damos por hecho
que saben programar, y que aprendieron a hacerlo durante los
primeros cinco semestres de la licenciatura.
En este curso aplicarán los conocimientos de programación que han
aprendido a lo largo de la carrera para desarrollar un sistema de software
desde el planteamiento del problema hasta la entrega de un sistema
funcional y completo, pasando por todas las etapas del desarrollo del
software que se cubrirán a lo largo del semestre.