¿Por qué se llama Software Configuration Management (SCM)?

9

Cuando pienso en la configuración del software, pienso en un archivo que se lee en tiempo de ejecución; dicho archivo contendría cosas como el puerto que un servidor podría usar, si usar cifrado y rutas de varios recursos.

Cuando me encontré por primera vez con la "Gestión de la configuración del software", pensé que solo se refería a la gestión de los archivos de configuración, pero rápidamente me di cuenta de que las herramientas SCM no solo se refieren a los archivos de configuración, sino también al código del software, el ejecutable / binario del software y los recursos.

Entonces, ¿por qué usamos el término "Gestión de configuración de software"? ¿No sería la "gestión de software" más abarcativa? ¿O no entiendo lo que se considera falta de "configuración"?

flow2k
fuente

Respuestas:

13

El término gestión de la configuración pertenece al vocabulario de ingeniería general.

Su propósito es mantener un registro de las características de todas las partes / componentes de un sistema complejo (por ejemplo, un automóvil, un misil, un dispositivo electrónico) y, por supuesto, el cambio de estas características cuando un componente se reemplaza con un componente similar. Una configuración describe exactamente un producto específico.

En otras palabras, la gestión de la configuración es la gestión de versiones para productos industriales. Permite en cualquier momento ensamblar una versión anterior de un producto.

En el software no hay un catálogo de piezas de la industria que pueda permitir identificar de manera única una pieza de software y sus versiones sucesivas y encontrarla nuevamente en algún almacén para ensamblar (configurar) una versión anterior del producto. La parte / componente de software se describe mejor por su código en su totalidad. Entonces, la administración de la configuración para el software significa administrar las versiones del código fuente. Es por esto que el término administración de configuración de software se usa para la administración de la versión del código fuente.

Sin embargo, tenga en cuenta que SCM es más grande que solo el control de versiones del código fuente. También puede incluir la gestión de dependencias externas (p. Ej., Bibliotecas o marcos de terceros con versiones administradas en otro lugar), recursos externos (p. Ej. Binarios o dlls de terceros o definiciones de API para interoperar con sistemas externos), así como activos digitales (p. Ej. Imágenes o videos para ser paquetes con el producto final).

Christophe
fuente