5.50.4.5 Control de Versiones y CI/CD (12 horas) [Habilidades AG-C03,AG-C09]

Referencias Bibliográficas: [Kim et al., 2016]

Temas

  1. Gestión de configuración de software y control de versiones: Fundamentos de Desarrollo de Software (SDF) -Practices
    1. Configuración en control de versiones, builds/configuración reproducibles.
    2. Estrategias de ramificación en control de versiones. Ramas de desarrollo vs ramas de lanzamiento. Desarrollo basado en tronco (trunk-based development).
    3. Estrategias de fusión/rebase, cuando sean relevantes.
  2. Gestión de lanzamientos (release management).
  3. Herramientas de prueba, incluyendo herramientas de análisis estático y dinámico. Fundamentos de Desarrollo de Software (SDF) -Practices,SEC-Coding
  4. Automatización de procesos de software:
    1. Sistemas de construcción (build systems): el valor de builds rápidos, herméticos y reproducibles, comparar/contrastar enfoques para construir un proyecto.
    2. Integración Continua (CI): el uso de automatización y pruebas automatizadas para hacer una validación preliminar de que la revisión actual del tronco se construye y pasa las pruebas (básicas).
    3. Despliegue Continuo (CD): el uso de automatización para liberar de forma automática cada cambio que supera las pruebas hacia el entorno de producción, garantizando entregas frecuentes y confiables.
    4. Gestión de dependencias: actualización de dependencias externas/aguas arriba, gestión de paquetes, SemVer.

Aprendizaje esperado (Learning Outcomes)

  1. Describir la diferencia entre la gestión de configuración de software centralizada y distribuida [Describir]
  2. Describir cómo el control de versiones puede usarse para ayudar en la gestión de lanzamientos de software [Describir]
  3. Identificar elementos de configuración y usar una herramienta de control de código fuente en un proyecto pequeño basado en equipo [Analizar]
  4. Describir cómo las herramientas de prueba estáticas y dinámicas disponibles pueden integrarse en el entorno de desarrollo de software [Describir]
  5. Comprender el uso de sistemas de CI/CD como una fuente de verdad para el estado del código compartido del equipo (éxito en la construcción y pruebas) [Explicar]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM