Programa

La ingeniería de software consiste en la aplicación sistemática del conocimiento y método científicos en la construcción y mantenimiento de software de cierta complejidad, para generar productos de calidad de forma eficiente, estando sometidos a diversas restricciones. Los diferentes enfoques para mejora continua en la industria del software, tales como CMM, CMMI, etc., brindan un marco de referencia para la adopción de best practices en el desarrollo de productos de software.

La educación en ingeniería de software no puede reducirse a informar acerca de la existencia de ciertos métodos, técnicas o herramientas, o a entrenar en su utilización, sino que debe abordar también el problema de su utilización en proyectos sometidos a presiones y restricciones. La mejor forma de que los estudiantes internalicen las best practices de Ingeniería de Software es participando en proyectos enfocados a la satisfacción del cliente a través de la generación de productos de calidad que atiendan las necesidades y requerimientos del cliente en los plazos acordados, enmarcados en un proceso de mejora continua tanto de la calidad como de la eficiencia. 

Este curso tiene como objetivo presentar al alumno el espectro de técnicas de Ingeniería de Software que pueden ser aplicadas en proyectos de software prácticos. Los objetivos centrales de esta asignatura son los siguientes:

  • Introducir a los alumnos en el valor del conjunto de actividades de la Ingeniería de Software distintas a codificar.
  • Proporcionar las bases de las diferentes técnicas, estrategias y métodos para resolver útiles para afrontar las problemáticas actuales en el desarrollo de productos de software.
  • Promover el desarrollo de criterios y experiencias que permitan al alumno inducir y fundamentar decisiones satisfactorias con respecto a la calidad y visibilidad de los procesos involucrados al desarrollo de un producto.
Comprender y apreciar la “cultura de calidad” basada en la aplicación de best practices a fin de alcanzar la máxima calidad posible en el producto final. 

Contenidos 

1.     Introducción.  Productos de Software. Gestión integrada de procesos de software. Visibilidad de los Procesos. Responsabilidad Profesional.

2.      Modelo CMM. Niveles de madurez y definición operacional. Definición de procesos en la organización: proceso standard y proceso definido. Guías del modelo CMM. Gestión de documentación por medio de una PAL (Process Asset Library).

3.     Gestión de Requerimientos de Software. El proceso de Ingeniería de Requerimientos. Factores sociales y organizacionales. Desarrollo de Casos de Uso. Documentación de los  requerimientos. Validación de los requerimientos. Evolución  de los requerimientos. Especificación de Requerimientos.  Requerimientos no-funcionales. Prototipado de Software. Prototipado del proceso de software. Técnicas de prototipado. Interfaces de Usuario del prototipado.

4.     Estimación del Costo del Software. Presupuestación.  Técnicas de estimación. Modelado algorítmico del costo. Duración del proyecto y dirección. Productividad.

5.     Planificación y Organización de Proyectos de Software. Organización de actividades. Gestión de Recursos. Planificación o calendarización del Proyecto. Monitoreo y Control del Proyecto.

6.     Manejo de Configuraciones y Versionado. Definición y control de items de configuración, Monitoreo del estado de los items de configuración. Auditorías de Configuración.

7.     Aseguramiento de calidad. Garantía de calidad de los procesos. Revisiones de la Calidad. Estándares de Procesos. Estándares de Documentación. Métricas de Software. Medidas de la calidad del Producto. Inspecciones de Software.

8.   Programas de entrenamientos y coordinación de grupos. Proceso de entrenamiento de personal. Estrategias de entrenamiento de proceso y herramientas. Evaluaciones del feedback obtenido del personal. Evaluaciones de progreso y habilidades adquiridas.

9.   Validación y verificación. El proceso de pruebas. Planificación de las pruebas.  Estrategias de pruebas. Pruebas de caja-negra. Pruebas Estructurales. Pruebas de Interfaces. Pruebas de Unidad, Integración y Sistema. Ambientes soporte de Verificación. Preparación, Ejecución y Análisis de Revisiones de pares.

10. Gestión de Riesgos. Identificación y Clasificación de Riesgos. Plan de Mitigación y Acciones Correctivas. Monitoreo del estado de Riesgos. Estrategias de Manejo de Riesgos.

11. Introducción a Prácticas Ágiles. Introducción al modelo de desarrollo iterativo e incremental. Descripción de las distintas metodologías. Prácticas ágiles aplicadas a  gerenciamiento y desarrollo. Casos de estudio.

Comments