Zarządzanie konfiguracją oprogramowania w inżynierii oprogramowania
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 podczas 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 może dokładnie określić, kto dokonał jakiej wersji.
Dlaczego potrzebujemy zarządzania konfiguracją?
Głównymi powodami wdrożenia systemu zarządzania konfiguracją oprogramowania technicznego są:
- Nad oprogramowaniem, które jest stale aktualizowane, pracuje wiele osób
- Może się zdarzyć, że w projekt konfiguracji oprogramowania zaangażowanych jest wiele wersji, oddziałów i autorów, a zespół jest rozproszony geograficznie i pracuje jednocześnie
- Należy uwzględnić zmiany w wymaganiach użytkowników, polityce, budżecie i harmonogramie.
- Oprogramowanie powinno móc działać na różnych komputerach i OperaSystemy tingowe
- Pomaga rozwijać koordynację pomiędzy zainteresowanymi stronami
- Proces SCM jest również korzystny do kontrolowania kosztów związanych z wprowadzaniem 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. Za pomocą tego kroku możesz zarządzać lub kontrolować coś, nawet jeśli nie wiesz, co to jest. Jest to opis zawierający typ CSCI (Computer Software Configuration Item), identyfikator projektu oraz informację 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 zaczyna się od podstawowych obiektów, które są grupowane w obiekty zbiorcze. Szczegóły tego, co, dlaczego, kiedy i przez kogo są wprowadzane zmiany w teście
- Każdy obiekt ma swoje własne cechy, które identyfikują jego nazwę, która jest jednoznaczna dla wszystkich innych obiektów
- Lista wymaganych zasobów, takich jak dokument, plik, narzędzia itp.
Przykład:
Zamiast nazywać plik login.php, powinien on mieć nazwę login_v1.2.php, gdzie v1.2 oznacza numer wersji pliku
Zamiast nazywać folder „Kod”, powinien on nosić nazwę „Kod_D”, gdzie D oznacza, że kod powinien być codziennie archiwizowany.
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łatwienie tworzenia różnych wersji aplikacji
- Definiowanie i ustalanie mechanizmów zarządzania różnymi wersjami tych produktów pracy
- Baza funkcjonalna odpowiada recenzowanym wymaganiom systemowym
- Powszechnie stosowane linie bazowe obejmują linie bazowe funkcjonalne, rozwojowe i produktowe
Krótko mówiąc, wersja podstawowa oznacza, że jest gotowa do wydania.
Zmień kontrolę
Kontrola zmian to metoda proceduralna zapewniająca jakość i spójność podczas wprowadzania zmian w obiekcie konfiguracyjnym. Na tym etapie żądanie zmiany jest przesyłane do menedżera konfiguracji oprogramowania.
Działania podczas tego procesu:
- Kontroluj zmiany ad hoc, aby zbudować stabilne środowisko programistyczne. Zmiany są zatwierdzane w repozytorium
- Żądanie zostanie sprawdzone pod kątem technicznym, możliwych skutków ubocznych i ogólnego wpływu na inne obiekty konfiguracyjne.
- Zarządza zmianami i udostępnianiem elementów konfiguracji w trakcie cyklu życia oprogramowania
Rozliczanie stanu konfiguracji
Rejestrowanie stanu konfiguracji śledzi każdą wersję podczas procesu SCM. Ten etap polega na śledzeniu zawartości każdej wersji i zmian, które prowadzą do tej wersji.
Działania podczas tego procesu:
- Rejestruje wszystkie zmiany wprowadzone do poprzedniego poziomu bazowego w celu osiągnięcia nowego poziomu bazowego
- Zidentyfikuj wszystkie elementy, aby zdefiniować konfigurację oprogramowania
- Monitoruj status żądań zmian
- Pełna lista wszystkich zmian od ostatniej wartości bazowej
- Umożliwia śledzenie postępu do następnej linii bazowej
- Pozwala sprawdzić poprzednie wydania/wersje, które mają zostać wyodrębnione 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. audytowanie i raportowanie wprowadzonych zmian
- Audyty SCM zapewniają również utrzymanie identyfikowalności podczas procesu.
- Zapewnia zgodność zmian wprowadzonych w wersji bazowej z raportami o stanie konfiguracji
- Walidacja kompletności i spójności
Uczestnik procesu SCM
Poniżej przedstawiono kluczowych 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 zatwierdzić lub odrzucić prośby o zmiany
2. Programista
- Deweloper musi zmienić kod zgodnie ze standardowymi działaniami programistycznymi lub żądaniami zmian. Odpowiada 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 został opracowany w określonych ramach czasowych
- Monitoruje postęp rozwoju i rozpoznaje problemy w procesie SCM
- Generuj raporty o stanie systemu oprogramowania
- Upewnij się, że podczas tworzenia, zmieniania i testowania przestrzegane są procesy i zasady
5. Użytkownik
Użytkownik końcowy powinien zrozumieć kluczowe warunki SCM, aby mieć pewność, że posiada najnowszą wersję oprogramowania
Plan zarządzania konfiguracją oprogramowania
Planowanie procesu SCMP (planowanie zarządzania konfiguracją oprogramowania) rozpoczyna się na wczesnych etapach kodowania projektu. Wynikiem fazy planowania jest plan SCM, który może zostać rozciągnięty lub zmieniony w trakcie projektu.
- SCMP może być zgodny ze standardem publicznym, takim jak IEEE 828 lub standardem specyficznym dla organizacji
- Określa rodzaje dokumentów, którymi należy zarządzać oraz nazewnictwo dokumentów. Przykładowy 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ń odbywa się w tym samym czasie, 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 w tym samym czasie.
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 używa metody archiwizacji lub zapisuje każdą zmianę wprowadzoną do pliku. Za pomocą funkcji archiwizacji lub zapisywania można przywrócić poprzednią wersję w przypadku 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 wpisuje zmiany z powrotem do repozytorium. Mogą synchronizować swoją lokalną kopię, aby być na bieżąco ze zmianami wprowadzanymi przez innych członków zespołu.
Poniżej przedstawiono 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 do zarządzania konfiguracją oprogramowania typu open source. Oprócz zarządzania konfiguracją oferuje także wdrażanie aplikacji i automatyzację zadań.
Download link: https://www.ansible.com/
Sprawdź więcej narzędzi konfiguracyjnych oprogramowania: https://www.guru99.com/software-configuration-management-tools.html
Podsumowanie
- Najlepsze praktyki w zakresie zarządzania konfiguracją pomagają organizacjom w systematycznym zarządzaniu, organizowaniu i kontrolowaniu zmian w dokumentach, kodach i innych jednostkach podczas Cykl życia rozwoju oprogramowania.
- Podstawowym celem procesu SCM jest zwiększenie produktywności przy minimalnej liczbie błędów
- Głównym powodem procesu zarządzania konfiguracją jest to, że wiele osób pracuje nad oprogramowaniem, które jest stale aktualizowane. SCM pomaga ustanowić współbieżność, synchronizację i kontrolę wersji.
- Linia bazowa to formalnie zaakceptowana wersja elementu konfiguracji oprogramowania
- Kontrola zmian to metoda proceduralna zapewniająca jakość i spójność podczas wprowadzania zmian w obiekcie konfiguracyjnym.
- Rejestrowanie stanu konfiguracji śledzi każdą wersję podczas procesu SCM
- Audyty konfiguracji oprogramowania sprawdzają, czy całe oprogramowanie spełnia podstawowe potrzeby
- Uczestnikami procesu SCM są kierownik projektu, menedżer konfiguracji, programista, audytor i użytkownik
- Planowanie procesu SCM rozpoczyna się na wczesnych etapach projektu.
- Git, Team Foundation Sever i Ansible to kilka popularnych narzędzi SCM.