Pourquoi est-il appelé Gestion de la configuration logicielle (SCM)?

9

Quand je pense à la configuration logicielle, je pense à un fichier qui est lu par le runtime - ce fichier contiendrait des choses comme le port qu'un serveur pourrait utiliser, s'il faut utiliser le cryptage et les chemins de diverses ressources.

Lorsque je suis tombé sur la "Gestion de la configuration logicielle", je pensais que cela signifiait uniquement la gestion des fichiers de configuration, mais j'ai rapidement réalisé que les outils SCM ne concernaient pas seulement les fichiers de configuration, mais aussi le code logiciel, le logiciel exécutable / binaire et les ressources.

Alors pourquoi utilisons-nous le terme «Gestion de la configuration logicielle»? La «gestion des logiciels» ne serait-elle pas plus globale? Ou est-ce que ma compréhension de ce qui est considéré comme une "configuration" fait défaut?

flow2k
la source

Réponses:

13

Le terme gestion de configuration appartient au vocabulaire général d'ingénierie.

Son but est de garder une trace des caractéristiques de toutes les pièces / composants d'un système complexe (par exemple une voiture, un missile, un appareil électronique), et bien sûr le changement de ces caractéristiques lorsqu'un composant est remplacé par un composant similaire. Une configuration décrit exactement un produit spécifique.

En d'autres termes, la gestion de configuration est une gestion de version pour les produits industriels. Il permet à tout moment d'assembler une version précédente d'un produit.

Dans le logiciel, il n'y a pas de catalogue de pièces de l'industrie qui pourrait permettre d'identifier de manière unique un logiciel et ses versions successives et de le retrouver dans un entrepôt pour assembler (configurer) une ancienne version du produit. La partie / le composant logiciel est mieux décrit par son code dans son intégralité. La gestion de la configuration du logiciel signifie donc gérer les versions du code source. C'est pourquoi le terme gestion de la configuration logicielle est utilisé pour la gestion des versions de code source.

Notez cependant que SCM est plus volumineux que le versioning de code source uniquement. Il peut également inclure la gestion des dépendances externes (par exemple, des bibliothèques ou des cadres tiers avec des versions gérées ailleurs), des ressources externes (par exemple, des fichiers binaires ou des DLL ou des définitions d'API pour interagir avec des systèmes externes), ainsi que des actifs numériques (par exemple, des images ou vidéos pour être des packages avec le produit final).

Christophe
la source