Zarządzanie konfiguracją
Zarządzanie konfiguracją (ang. Configuration Management - CM) - jest to dziedzina związana z zarządzaniem rozwojem danego systemu. Opiera się na identyfikacji, kontroli i raportowaniu produktów (w tym produktów cząstkowych lub innych sub-produktów) w trakcie funkcjonowania tego systemu (A.M.J. Haas 2002, s. 34). Współcześnie pojęcie to jest szczególnie często odnoszone do rozwoju i inżynierii oprogramowania.
TL;DR
Zarządzanie konfiguracją to dziedzina związana z kontrolą i raportowaniem produktów w trakcie funkcjonowania systemu, szczególnie w rozwoju oprogramowania. Aspekty operacyjne zarządzania konfiguracją obejmują identyfikację, kontrolę, księgowanie statusu oraz audyt i przegląd. Istnieje wiele definicji tego pojęcia, ale najważniejsze są wytwarzanie, zarządzanie procesem i praca zespołowa. System zarządzania konfiguracją to zbiór uporządkowanych i logicznie ustrukturyzowanych elementów tworzących spójną całość. W tym kontekście, system zarządzania konfiguracją jest środowiskiem, w którym wsparcie zarządzania konfiguracją jest integralną częścią.
Wybrane definicje zarządzania konfiguracją, zaczerpnięte z literatury przedmiotu
- "Zarządzanie konfiguracją (CM) zapewnia jednoznaczność w przebiegu i dokumentowaniu jakości badań, szczególnie we wprowadzaniu zmian, a przede wszystkim ich planowaniu oraz dokumentowaniu, które są kluczowym potwierdzeniem realizacji badań. Dodatkowym elementem w CM badań są audity konfiguracji (funkcjonalnej i/lub fizycznej) mające na celu potwierdzenie zgodności wyników wykonanych badań z określonymi właściwościami funkcjonalnymi i fizycznymi’’ (W. Pokora, W. Kosiński 2011, s. 2).
- "Zarządzanie konfiguracją jest procesem zarządzania, który ma zapewnić i utrzymać zgodność funkcjonalnych i fizycznych elementów produktu z jego wymaganiami, projektem i informacjami operacyjnymi. Ma ono miejsce w czasie istnienia Projektu" (G. Wójcik, Z. Szyjewski 2006, s. 152).
- "Zarządzanie konfiguracją dotyczy procedur, których celem jest zapewnienie, że elementy wchodzące w skład systemu są znane oraz że zmiany są dokonywane przez osoby uprawnione. Zarządzanie konfiguracją jest zarówno zarządzaniem, jak i dyscypliną techniczną, która obejmuje niemal wszystkie osoby w Projekcie, albo w sposób aktywny, jako wykonawców czynności związanych z zarządzaniem konfiguracją, albo pasywnie, jako otrzymujących informacje związane z zarządzaniem konfiguracją" (G. Wójcik, Z. Szyjewski 2006, s. 152).
W kontekście rozwoju oprogramowania, posłużyć się można poniższym ujęciem:
- "Zarządzanie konfiguracją oprogramowania (Software configuration management - SCM) jest kontrolą ewolucji złożonych systemów" (J. Estublier 2000, s. 1)
Aspekty Operacyjne związane z Zarządzaniem Konfiguracją
Podstawowe cztery aspekty zawierają się w następujących pojęciach:
- Identyfikacja (Identification) - jej schemat odzwierciedla konstrukcję, czy też strukturę danego produktu, rozpoznaje składowe oraz ich rodzaje, czyniąc je unikalnymi i odpowiednio dostępnymi.
- Kontrola (Control) - umożliwia nadzór nad wydaniem produktu oraz nad jego zmianami w całym cyklu jego życia. Kontrola zapewnia wewnętrzną spójność produktu.
- Księgowanie Statusu (Status Accounting) - polega na zapisie statusu składowych (komponentów) oraz żądań zmian (Change Requests - CHG) oraz zbieraniu istotnych danych statystycznych wspomnianych składowych produktu.
- Audyt i przegląd (Audit and review) - związane są z weryfikowaniem kompletności produktu oraz podtrzymywaniem spójności składowych poprzez zapewnienie, iż produkt jest dobrze zdefiniowanym zbiorem owych składowych.
(S. Dart 1991, s. 1)
W powyższym kontekście pojawiają się pewne kluczowe pojęcia wymienione poniżej:
- Configuration item (element/objekt konfiguracyjny) - jest to jednostka transferu pomiędzy kontraktami (tłumaczonymi jako opis oczekiwanych produktów, a wprowadzanymi jako bazy danych). Nadaje się mu status "zamrożonego" podczas transferu (S. Dart 1991, s. 16).
- Baseline (Podstawa) - postać produktu, jaka jest mu nadawana w momencie, w którym kontynuowany jest jego rozwój, oraz w którym pojawia równolegly rozwój wariantów tego produktu (S. Dart 1991, s. 2).
- Release (Wydanie) - funkcjonalny wariant produktu klasyfikowany w postaci wersji, osiągalny dzięki stosowaniu idei tzw. stopni zaawansowania (promotion levels) tj. kolejnych poziomów, przez które przechodzi produkt (S. Dart 1991, s. 16).
- Version (Wersja) - określony wariant produktu, oznaczony zgodnie z ustaloną konwencją w zależności od stopnia jego zaawansowania. Często posiada charakterystyczny zapis liczbowy, w którym cyfry przed kropka (lub przecinkiem) oznaczają "pokolenie", a cyfry po kropce wskazują kolejne jego warianty, np. v 0.11 (testowa - beta), v. 1.1, v. 1.21 itp.
Większość systemów zarządzania konfiguracją zawiera w różnym stopniu odpowiednie funkcjonalności w celu zgodności w wyżej wymienionymi aspektami. Owe różne stopnie wynikają z niemałego zróżnicowania pomiędzy typami organizacji, produktów, środowisk, w których działają itp. W celu uchwycenia wspomnianych funkcjonalności, definicję CM rozszerzyć można o trzy dodatkowe aspekty:
- Wytwarzanie (Manufacture) - zarządzanie budową i szeroko pojętym tworzeniem produktu w sposób optymalny.
- Zarządzanie Procesem/Procesami (Process management) - polega na zapewnieniu zgodności z obowiązującymi w organizacji procedurami, wytycznymi i modelami cyklu życia.
- Praca Zespołowa (Team Work) - opiera się na kontroli pracy i interakcji pomiędzy wieloma użytkownikami produktu.
(S. Dart 1991, s. 2)
Pojęcie Systemu Zarządzania Konfiguracją
Odpowiednie ujęcie powyższego terminu w celu stworzenia spójnej i uniwersalnej definicji wymaga zrozumienia zasad i celu działania tego rodzaju struktury. W próbach tego rodzaju konieczne jest zdefiniowanie systemu jako takiego. Można powiedzieć, iż jest to zbiór uporządkowanych i logicznie ustrukturyzowanych elementów tworzących spójną całość. Może być także metodą lub metodologią odnoszącą się do organizacji/organizowania tychże elementów. W kontekście zarządzania konfiguracją należy brać pod uwagę takie czynniki, jak np. kontrola wersji (version control), identyfikacja konfiguracji (configuration identification), struktura/strukturyzowanie systemu (system structuring), czy modelowanie tego systemu (system modelling’’). Wobec powyższego, zaproponować można następujące ujęcie Systemu Zarządzania Konfiguracją: środowisko, w którym wsparcie zarządzania konfiguracją jest integralną częścią tego środowiska, jednocześnie będąc sprzedawaniem w postaci paczki, czy też pakietu (S. Dart 1991, s. 2).
Zarządzanie konfiguracją — artykuły polecane |
System zarządzania przebiegiem procesów — Identyfikacja procesów — Modelowanie — Produkt projektu — Produkty cząstkowe — Inżynieria oprogramowania — Behavior driven development — Jakość wg PRINCE2 — Standardy regulujące zarządzanie projektami |
Bibliografia
- Dart S. (1991), Concepts in Configurationa Management Systems, Software Engineering Institute, Carnegie-Mellon University, Pittsburg, PA
- Estublier J. (2000) Software Configuration Management, A Road Map, DassaultSystemes / LSR, Grenoble University, Actimart
- Hass A. (2002), Configuration Management Principles and Practice, Addison-Wesley Professional, Boston, MA
- Pokora W., Kosiński W. (2011), Model Procesowy Zarządzania Konfiguracją Badań Statków Powietrznych, Logistyka 4
- Wójcik G., Szyjewski Z. (2006), Przekształcanie wiedzy ukrytej w wiedzę jawną, Studia i Materiały, nr 5, Polskie Stowarzyszenie Zarządzania Wiedzą
Autor: Michał Gędziorowski