Zarządzanie konfiguracją

Z Encyklopedia Zarządzania

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.

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ówIdentyfikacja procesówModelowanieProdukt projektuProdukty cząstkoweInżynieria oprogramowaniaBehavior driven developmentJakość wg PRINCE2Standardy regulujące zarządzanie projektami

Bibliografia

  • Dart S. (1991), Concepts in Configurationa Management Systems, Software Engineering Institute, Carnegie-Mellon University, Pittsburg, PA
  • 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