Gestión de configuración de software


En ingeniería de software, la gestión de la configuración del software ( SCM o S/W CM ) es la tarea de rastrear y controlar los cambios en el software, parte del campo interdisciplinario más amplio de la gestión de la configuración . [1] Las prácticas de SCM incluyen el control de revisión y el establecimiento de líneas de base . Si algo sale mal, SCM puede determinar qué se cambió y quién lo cambió. Si una configuración funciona bien, SCM puede determinar cómo replicarla en muchos hosts.

El acrónimo "SCM" también se amplía como proceso de gestión de configuración de origen y gestión de cambios y configuración de software . [2] Sin embargo, generalmente se entiende que "configuración" cubre los cambios que normalmente realiza un administrador del sistema .

Con la introducción de la computación en la nube y DevOps , los propósitos de las herramientas SCM se han fusionado en algunos casos. Las propias herramientas de SCM se han convertido en dispositivos virtuales que se pueden instanciar como máquinas virtuales y guardar con el estado y la versión. Las herramientas pueden modelar y administrar recursos virtuales basados ​​en la nube, incluidos dispositivos virtuales, unidades de almacenamiento y paquetes de software. Los roles y responsabilidades de los actores también se han fusionado con los desarrolladores que ahora pueden instanciar dinámicamente servidores virtuales y recursos relacionados. [3]

La historia de la gestión de configuración de software (SCM) en informática se remonta a la década de 1950, cuando CM (Gestión de configuración), originalmente para el desarrollo de hardware y control de producción, se aplicaba al desarrollo de software. El software inicial tenía una huella física, como tarjetas , cintas y otros medios. La primera gestión de configuración de software fue una operación manual. Con los avances en el lenguaje y la complejidad, la ingeniería de software , que involucra la gestión de la configuración y otros métodos, se convirtió en una preocupación importante debido a problemas como el cronograma, el presupuesto y la calidad. Las lecciones prácticas, a lo largo de los años, habían conducido a la definición y establecimiento de procedimientos y herramientas. Con el tiempo, las herramientas se convirtieron en sistemas para gestionar los cambios de software.[4] Se ofrecieron prácticas de toda la industria como soluciones, ya sea de manera abierta o propietaria (como el Sistema de Control de Revisión ). Con el uso creciente de computadoras, surgieron sistemas que manejaban un alcance más amplio, incluida la gestión de requisitos , alternativas de diseño, control de calidad y más; herramientas posteriores siguieron los lineamientos de las organizaciones, como el Modelo de Madurez de Capacidad del Instituto de Ingeniería de Software .