Dlaczego nazywa się to Software Configuration Management (SCM)?

9

Kiedy myślę o konfiguracji oprogramowania, myślę o pliku, który jest odczytywany przez środowisko wykonawcze - wspomniany plik będzie zawierał takie rzeczy, jak port, z którego może korzystać serwer, czy używać szyfrowania i ścieżki różnych zasobów.

Kiedy po raz pierwszy natknąłem się na „Zarządzanie konfiguracją oprogramowania”, pomyślałem, że oznacza to tylko zarządzanie plikami konfiguracyjnymi, ale szybko zdałem sobie sprawę, że narzędzia SCM dotyczą nie tylko plików konfiguracyjnych, ale także kodu oprogramowania, pliku wykonywalnego / binarnego oraz zasobów.

Dlaczego więc używamy terminu „Zarządzanie konfiguracją oprogramowania”? Czy „zarządzanie oprogramowaniem” nie byłoby bardziej obejmujące? A może brakuje mi zrozumienia tego, co uważa się za „konfigurację”?

flow2k
źródło

Odpowiedzi:

13

Termin zarządzanie konfiguracją należy do ogólnego słownictwa inżynierskiego.

Jego celem jest prowadzenie rejestru cech wszystkich części / elementów złożonego układu (np. Samochodu, pocisku, urządzenia elektronicznego) i oczywiście zmiana tych właściwości, gdy element zostanie zastąpiony podobnym elementem. Konfiguracja opisuje dokładnie konkretny produkt.

Innymi słowy, zarządzanie konfiguracją to zarządzanie wersjami produktów przemysłowych. Pozwala w dowolnym momencie skompletować poprzednią wersję produktu.

W oprogramowaniu nie ma branżowego katalogu części, który pozwoliłby jednoznacznie zidentyfikować oprogramowanie i jego kolejne wersje i znaleźć go z powrotem w magazynie, aby zmontować (skonfigurować) starszą wersję produktu. Część / komponent oprogramowania najlepiej opisuje cały kod. Tak więc zarządzanie konfiguracją oprogramowania oznacza zarządzanie wersjami kodu źródłowego. Właśnie dlatego do zarządzania wersjami kodu źródłowego używany jest termin zarządzanie konfiguracją oprogramowania.

Należy jednak pamiętać, że SCM jest większy niż tylko wersja kodu źródłowego. Może to również obejmować zarządzanie zewnętrznymi zależnościami (np. Bibliotekami stron trzecich lub frameworkami z wersjami zarządzanymi gdzie indziej), zasobami zewnętrznymi (np. Plikami binarnymi lub bibliotekami DLL stron trzecich lub definicjami API do współpracy z systemami zewnętrznymi), a także zasobami cyfrowymi (np. Obrazkami lub filmy, które mają być paczkami z produktem końcowym).

Christophe
źródło