Zarządzanie konfiguracją

Zarządzanie konfiguracją
Polecane artykuły

Zarządzanie konfiguracją (ang. Configuration ManagementCM) – 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.

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 managementSCM) 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 RequestsCHG) 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).

Bibliografia

Autor: Michał Gędziorowski