Zarządzanie konfiguracją oprogramowania w inżynierii oprogramowania
⚡ Inteligentne podsumowanie
Zarządzanie konfiguracją oprogramowania (SCM) to proces systematycznego zarządzania, organizowania i kontrolowania zmian w dokumentach, kodzie i innych elementach w całym cyklu życia oprogramowania. Jego głównym celem jest zwiększenie produktywności przy jednoczesnym zachowaniuping błędów do minimum.

Co to jest zarządzanie konfiguracją oprogramowania?
W inżynierii oprogramowania Zarządzanie konfiguracją oprogramowania (SCM) to proces systematycznego zarządzania, organizowania i kontrolowania zmian w dokumentach, kodach i innych elementach w cyklu życia oprogramowania. Głównym celem jest zwiększenie produktywności przy minimalnej liczbie błędów. SCM jest częścią interdyscyplinarnej dziedziny zarządzania konfiguracją i pozwala precyzyjnie określić, kto wprowadził daną wersję.
Dlaczego potrzebujemy zarządzania konfiguracją?
Główne powody wdrożenia systemu zarządzania konfiguracją oprogramowania technicznego to:
- Nad oprogramowaniem, które jest ciągle aktualizowane, pracuje wiele osób.
- Może się zdarzyć, że w projekcie konfiguracji oprogramowania bierze udział wiele wersji, gałęzi i autorów, a zespół jest rozproszony geograficznie i pracuje równolegle.
- Należy uwzględnić zmiany w wymaganiach użytkowników, polityce, budżecie i harmonogramie.
- Oprogramowanie powinno móc działać na różnych maszynach i OperaSystemy tingowe.
- Pomaga rozwijać koordynację pomiędzy interesariuszami.
- Proces SCM jest również korzystny, ponieważ pozwala kontrolować koszty wprowadzania zmian w systemie.
Wszelkie zmiany w konfiguracji oprogramowania będą miały wpływ na produkt końcowy. Dlatego zmiany w elementach konfiguracji muszą być kontrolowane i zarządzane.
Zadania w procesie SCM
- Identyfikacja konfiguracji
- Wartości bazowe
- Zmień kontrolę
- Rozliczanie stanu konfiguracji
- Audyty konfiguracji i Revwidoki
Identyfikacja konfiguracji
Identyfikacja konfiguracji to metoda określania zakresu systemu oprogramowania. Dzięki temu krokowi możesz zarządzać elementem lub nim sterować, nawet jeśli nie wiesz, czym on jest. Jest to opis zawierający typ CSCI (element konfiguracji oprogramowania komputerowego), identyfikator projektu oraz informacje o wersji.
Działania podczas tego procesu:
- Identyfikacja elementów konfiguracji, takich jak moduły kodu źródłowego, walizka testowai specyfikację wymagań.
- Identyfikacja każdego CSCI w repozytorium SCM przy użyciu podejścia obiektowego.
- Proces rozpoczyna się od obiektów podstawowych, które są grupowane w obiekty zbiorcze. Szczegółów dotyczących tego, co, dlaczego, kiedy i przez kogo zostały wprowadzone zmiany w teście.
- Każdy obiekt ma swoje własne cechy, które identyfikują jego nazwę, która jest jawna dla wszystkich innych obiektów.
- Lista wymaganych zasobów, takich jak dokument, plik, narzędzia itp.
Przykład:
Zamiast nazywać plik login.php, należy nazwać go login_v1.2.php, gdzie v1.2 oznacza numer wersji pliku.
Zamiast nazywać folder „Code”, powinno się nazywać „Code_D”, gdzie D oznacza, że kod powinien być kopiowany zapasowo codziennie.
Baseline
Linia bazowa to formalnie zaakceptowana wersja elementu konfiguracji oprogramowania. Jest on wyznaczany i ustalany w określonym momencie prowadzenia procesu SCM. Można to zmienić jedynie poprzez formalne procedury kontroli zmian.
Działania podczas tego procesu:
- Ułatwianie konstruowania różnych wersji aplikacji.
- Definiowanie i ustalanie mechanizmów zarządzania różnymi wersjami tych produktów pracy.
- Bazowa linia funkcjonalna odpowiada sprawdzonym wymaganiom systemowym.
- Do powszechnie stosowanych punktów odniesienia zalicza się punkty odniesienia funkcjonalne, rozwojowe i produktowe.
Krótko mówiąc, wersja podstawowa oznacza, że jest gotowa do wydania.
Zmień kontrolę
Kontrola zmian to metoda proceduralna, która zapewnia jakość i spójność wprowadzania zmian w obiekcie konfiguracji. Na tym etapie żądanie zmiany jest przesyłane do menedżera konfiguracji oprogramowania.
Działania podczas tego procesu:
- Kontroluj doraźne zmiany, aby zbudować stabilne środowisko programistyczne. Zmiany są zatwierdzane w repozytorium.
- Wniosek zostanie sprawdzony pod kątem jego zalet technicznych, możliwych skutków ubocznych i ogólnego wpływu na inne obiekty konfiguracji.
- Zarządza zmianami i udostępnia elementy konfiguracji w całym cyklu życia oprogramowania.
Rozliczanie stanu konfiguracji
Rozliczanie statusu konfiguracji tracks każde wydanie w procesie SCM. Ten etap obejmuje tracco zawiera każda wersja i jakie zmiany doprowadziły do powstania tej wersji.
Działania podczas tego procesu:
- Zapisuje wszystkie zmiany wprowadzone do poprzedniej wartości bazowej w celu ustalenia nowej wartości bazowej.
- Zidentyfikuj wszystkie elementy, aby zdefiniować konfigurację oprogramowania.
- Monitoruj status wniosków o zmianę.
- Pełna lista wszystkich zmian od ostatniej wartości bazowej.
- Pozwala trackról postępu do następnej linii bazowej.
- Umożliwia wyświetlenie poprzednich wydań/wersjitracPrzygotowany do testów.
Audyty konfiguracji i Revwidoki
Audyty konfiguracji oprogramowania sprawdzają, czy całe oprogramowanie spełnia podstawowe potrzeby. Zapewnia, że to, co zostało zbudowane, jest tym, co zostało dostarczone.
Działania podczas tego procesu:
- Audyt konfiguracji przeprowadzany jest przez audytorów poprzez sprawdzenie, czy przestrzegane są zdefiniowane procesy i zapewnienie osiągnięcia celów SCM.
- Weryfikacja zgodności ze standardami kontroli konfiguracji, audyt i raportowanie wprowadzonych zmian.
- Audyty SCM zapewniają również, że tracW trakcie procesu zachowana jest zdolność produkcyjna.
- Gwarantuje, że zmiany wprowadzone do konfiguracji bazowej są zgodne z raportami o stanie konfiguracji.
- Weryfikacja kompletności i spójności.
Uczestnik procesu SCM
Poniżej przedstawiamy głównych uczestników SCM:
1. Menedżer konfiguracji
- Menedżer konfiguracji to osoba odpowiedzialna za identyfikację elementów konfiguracji.
- CM zapewnia, że zespół przestrzega procesu SCM.
- Musi on/ona zatwierdzić lub odrzucić wniosek o zmianę.
2. Programista
- Deweloper musi wprowadzać zmiany w kodzie zgodnie ze standardowymi czynnościami programistycznymi lub prośbami o zmianę. Jest odpowiedzialny za utrzymanie konfiguracji kodu.
- Deweloper powinien sprawdzić zmiany i rozwiązać konflikty.
3. Audytor
- Audytor jest odpowiedzialny za audyty i przeglądy SCM.
- Należy zapewnić spójność i kompletność wydania.
4. Kierownik Projektu:
- Upewnij się, że produkt zostanie opracowany w określonych ramach czasowych.
- Monitoruje postęp prac rozwojowych i rozpoznaje problemy w procesie SCM.
- Generuj raporty dotyczące stanu systemu oprogramowania.
- Upewnij się, że procesy i zasady tworzenia, zmieniania i testowania są przestrzegane.
5. Użytkownik
Użytkownik końcowy powinien rozumieć najważniejsze terminy SCM, aby mieć pewność, że korzysta z najnowszej wersji oprogramowania.
Plan zarządzania konfiguracją oprogramowania
Proces SCMP (Software Configuration Management Planning) rozpoczyna się na wczesnych etapach kodowania projektu. Efektem fazy planowania jest plan SCM, który może być rozszerzany lub modyfikowany w trakcie projektu.
- SCMP może opierać się na standardzie publicznym, takim jak IEEE 828, lub na standardzie konkretnej organizacji.
- Definiuje typy dokumentów, którymi należy zarządzać, oraz konwencję nazewnictwa dokumentów. Przykład: Test_v1.
- SCMP definiuje osobę, która będzie odpowiedzialna za cały proces SCM i stworzenie baz.
- Napraw zasady zarządzania wersjami i kontroli zmian.
- Zdefiniuj narzędzia, które można wykorzystać w procesie SCM.
- Baza danych zarządzania konfiguracją do rejestrowania informacji konfiguracyjnych.
Narzędzia do zarządzania konfiguracją oprogramowania
Oprogramowanie do zarządzania zmianą powinno mieć następujące 3 kluczowe cechy:
Zarządzanie współbieżnością:
Gdy dwa lub więcej zadań jest wykonywanych jednocześnie, nazywa się to operacją współbieżną. Współbieżność w kontekście SCM oznacza, że ten sam plik jest edytowany przez wiele osób jednocześnie.
Jeśli współbieżność nie jest prawidłowo zarządzana za pomocą narzędzi SCM, może to spowodować wiele pilnych problemów.
Kontrola wersji:
SCM wykorzystuje metodę archiwizacji lub zapisuje każdą zmianę w pliku. Dzięki funkcji archiwizacji lub zapisywania możliwe jest przywrócenie poprzedniej wersji w przypadku wystąpienia problemów.
Syncronizacja:
Użytkownicy mogą wyewidencjonować więcej niż jeden plik lub całą kopię repozytorium. Następnie użytkownik pracuje nad potrzebnym plikiem i wprowadza zmiany z powrotem do repozytorium. Może synchronizować swoją kopię lokalną, aby być na bieżąco ze zmianami wprowadzanymi przez innych członków zespołu.
Oto popularne narzędzia:
1. Git: Git to bezpłatne narzędzie typu open source, które pomaga w kontroli wersji. Został zaprojektowany do obsługi wszystkich typów projektów z szybkością i wydajnością.
Download link: https://git-scm.com/
2. zespół Foundation serwer: Zespół Foundation to grupa narzędzi i technologii, które umożliwiają zespołowi współpracę i koordynację przy tworzeniu produktu.
Download link: https://azure.microsoft.com/en-us/services/devops/server/
3. Ansible: Jest to narzędzie open source do zarządzania konfiguracją oprogramowania. Oprócz zarządzania konfiguracją, oferuje również wdrażanie aplikacji i automatyzację zadań.
Download link: https://www.ansible.com/


