ScholarGate
Asistente

Gestión de la configuración del software

La gestión de la configuración del software (SCM) es la disciplina de identificar, controlar y rastrear las versiones y los cambios de los artefactos de software para que el estado de un sistema sea conocido y reproducible a lo largo de su vida útil.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

La gestión de la configuración del software es el conjunto de actividades para identificar elementos de configuración, controlar los cambios en ellos, registrar e informar el estado de los cambios, y verificar la integridad y corrección, de modo que el software en evolución se gestione de manera controlada y reproducible.

Scope

Este tema abarca la identificación de la configuración y las líneas base; los sistemas de control de versiones y los modelos de ramificación y fusión; el control de cambios y el papel de una junta de control de cambios; la gestión de compilaciones y lanzamientos; la contabilidad y auditoría del estado de la configuración; y estándares como ISO/IEC/IEEE 828 que definen los procesos de SCM.

Core questions

  • ¿Cómo se identifican y se establecen las líneas base de los elementos de configuración?
  • ¿Cómo gestionan el cambio concurrente el control de versiones y los modelos de ramificación?
  • ¿Cómo se proponen, revisan y aprueban los cambios?
  • ¿Cómo se registra y audita el estado y la integridad de las configuraciones?

Key theories

Líneas base y control de configuración
Una línea base es una configuración formalmente revisada que sirve como referencia estable; los cambios en los elementos de la línea base pasan por una revisión y aprobación controladas, manteniendo el sistema en un estado conocido y reproducible.
Control de versiones distribuido y ramificación
Los sistemas modernos como Git proporcionan a cada desarrollador un repositorio completo y admiten la ramificación y fusión económicas, lo que permite el trabajo paralelo y los flujos de trabajo de integración que sustentan la integración y entrega continuas.

Clinical relevance

La SCM hace que las compilaciones sean reproducibles, los cambios rastreables y los lanzamientos controlables; sin ella, los equipos no pueden reproducir de manera fiable una versión enviada, coordinar el trabajo concurrente o auditar lo que cambió, lo cual es fundamental para una entrega fiable y para la automatización de DevOps.

Evidence & guidelines

ISO/IEC/IEEE 828 especifica los procesos de gestión de la configuración, y el área de conocimiento de Gestión de la Configuración del Software de SWEBOK proporciona una referencia consensuada para las actividades de SCM.

History

El control de versiones evolucionó desde herramientas tempranas como SCCS y RCS en las décadas de 1970 y 1980, pasando por sistemas centralizados como CVS y Subversion, hasta sistemas distribuidos como Git en la década de 2000; la práctica formal de gestión de la configuración migró de los estándares de hardware y defensa a la ingeniería de software convencional.

Debates

Estrategias de ramificación
Los equipos debaten flujos de trabajo como el desarrollo basado en el tronco (trunk-based development) frente a las ramas de características de larga duración (long-lived feature branches) y Git-flow; el desarrollo basado en el tronco con integración frecuente apoya la entrega continua, mientras que una ramificación más pesada puede aislar el trabajo a costa de fusiones dolorosas.

Key figures

  • Walter Tichy
  • Linus Torvalds
  • Marc Rochkind

Related topics

Seminal works

  • ieee828
  • chacon2014
  • swebok2014

Frequently asked questions

¿Es la gestión de la configuración solo control de versiones?
No. El control de versiones es una herramienta central, pero la SCM es más amplia: también cubre la identificación de la configuración, las líneas base, el control de cambios, la gestión de compilaciones y lanzamientos, y la contabilidad y auditoría del estado de todos los elementos de configuración, no solo el código fuente.
¿Por qué son importantes las líneas base?
Una línea base registra una configuración conocida y buena que puede reproducirse y sobre la que se puede construir; proporciona una referencia estable para el cambio controlado, permite a los equipos revertir y es esencial para lanzamientos y auditorías reproducibles.

Methods for this concept

Related concepts