Inżynieria oprogramowania wykÅ‚ad 8 ZarzÄ…dzanie konfiguracjÄ… oprogramowania 1 ZarzÄ…dzanie konfiguracjÄ… - definicja dotyczy przypadków wprowadzania zmian do wytwarzanego oprogramowania operacje zarzÄ…dzania konfiguracjÄ…: Ä„ð identyfikacja zmian Ä„ð kontrolowanie procesu wprowadzania zmian Ä„ð wspomaganie poprawnoÅ›ci dokonania zmian Ä„ð przekazanie informacji o zmianach (kierownictwo, analitycy, inne zespoÅ‚y twórców) jest czynnoÅ›ciÄ… przekrojowÄ… (wykonywanÄ… na każdym etapie procesu wytwórczego) jest jednym z priorytetów inżynierii oprogramowania i ma na celu uÅ‚atwienie dokonywania zmian oraz zmniejszanie pracochÅ‚onnoÅ›ci tych czynnoÅ›ci 2/21 ZarzÄ…dzanie konfiguracjÄ… vs. wsparcie produktu wsparcie to czynnoÅ›ci wykonywane po wdrożeniu produktu, podczas eksploatacji oprogramowania czynnoÅ›ci obejmujÄ…ce zarzÄ…dzanie konfiguracjÄ… mogÄ… być wykonywane tuż po rozpoczÄ™ciu procesu wytwórczego, na wszystkich jego etapach, aż do wycofania produktu z rynku 3/21 Czego dotyczy zarzÄ…dzanie konfiguracjÄ… rezultatem procesu wytwórczego sÄ… 3 skÅ‚adniki Ä„ð program, w formie kodu zródÅ‚owego lub jÄ™zyka wykonywalnego Ä„ð dokumentacja programu opis dziaÅ‚ania programu: aspekty techniczne, przeznaczona dla informatyków oraz aspekty użytkowe, przeznaczone dla przyszÅ‚ych użytkowników Ä„ð dane które zawiera program lub doÅ‚Ä…czone do programu konfiguracja oprogramowania wszelkie informacje powstaÅ‚e w procesie wytwórczym, np. specyfikacja produktu, specyfikacja wymagaÅ„, plan przedsiÄ™wziÄ™cia zarzÄ…dzanie konfiguracjÄ… oprogramowania obejmuje wszelkie aspekty wynikajÄ…ce z wprowadzania zmian w procesie wytwórczym, kontrolÄ™ tych zmian 4/21 Pierwsze prawo inżynierii systemów* zmiany mogÄ… wystÄ…pić w każdej chwili i być efektem różnych przyczyn niezależnie od stanu zaawansowania prac nad systemem bÄ™dzie on siÄ™ zmieniaÅ‚, a dążenie do zmian wystÄ™puje przez caÅ‚y czas jego istnienia * E. H. Bersoff, V. D. Henderson, S. G. Siegel: Software configuration management , Prentice-Hall 1980 5/21 Przyczyny zmian w procesie wytwórczym zmiany uwarunkowaÅ„ stawianych przez rynek powodujÄ… zmiany wymagaÅ„ stawianych produktowi oraz firmie wytwarzajÄ…cej program nowe potrzeby i wymagania klienta zmiana funkcjonalnoÅ›ci, przetwarzanych danych i rezultatów dziaÅ‚ania programów zmiany w strukturze firmy (reorganizacja, ograniczenia, rozwój) efekt: zmiana priorytetów firmy, zmiany w zespoÅ‚ach twórców ograniczenia czasowe lub budżetowe nowe informacje i doÅ›wiadczenia, dodatkowa wiedza wynikajÄ…ca z obserwacji i analizy zakoÅ„czonych lub prowadzonych prac wytwórczych 6/21 Baza zmian* pojÄ™cie wprowadzone celem kontroli zmian ale bez utrudniania ich wprowadzania specyfikacja lub produkt, który poddano formalnemu przeglÄ…dowi i zaakceptowano, który może sÅ‚użyć jako podstawa dalszego rozwoju i który można zmieniać, stosujÄ…c tylko formalne procedury kontrolowania zmian* element konfiguracji który nie jest bazÄ… można modyfikować szybko i nieformalnie element konfiguracji bÄ™dÄ…cy bazÄ… może być zmieniany ale wg okreÅ›lonej formalnej procedury, zmiany należy kontrolować i analizować * wg normy IEEE nr 610.12-1990 7/21 Elementy konfiguracji oprogramowania elementy konfiguracji sÄ… przechowywane w bazie danych opisane, w sposób pogrupowany, jako tzw. obiekty konfiguracji posiadajÄ… nazwÄ™ i zestaw atrybutów, sÄ… poÅ‚Ä…czone z innymi obiektami sieciÄ… zależnoÅ›ci (zmiana jednego elementu pociÄ…ga za sobÄ… konieczność zmiany drugiego) przykÅ‚ady: Ä„ð specyfikacja projektu, model danych, kod zródÅ‚owy, specyfikacja testów 8/21 Elementy konfiguracji - przykÅ‚ad specyfikacja projektu model danych projekt danych projekt architektury projekt moduÅ‚u moduÅ‚ n projekt interfejsu opis interfejsu opis algorytmu specyfikacja testów pseudokod plan testowania procedura testowania kod zródÅ‚owy zestawy testów zależność bycie częściÄ… 9/21 Proces zarzÄ…dzania konfiguracjÄ… identyfikacja i zarzÄ…dzanie istniejÄ…cymi wersjami programów i ich dokumentacjÄ… w celu potencjalnej modyfikacji kontrolowanie wersji - zmian przed i po oddaniu programu użytkownikowi kontrolowanie akceptowanie i ocenianie wprowadzonych zmian sprawdzanie konfiguracji poprawność wprowadzonych zmian raportowanie rozpowszechnianie informacji o wprowadzonych zmianach 10/21 Identyfikacja obiektów konfiguracji w celu kontroli i zarzÄ…dzania elementami konfiguracji należy je nazwać i pogrupować, stosuje siÄ™ tu podejÅ›cie obiektowe używane sÄ… dwa rodzaje obiektów: Ä„ð proste fragment tekstu powstaÅ‚y podczas analizowania, projektowania, kodowania lub testowania (rozdziaÅ‚y specyfikacji wymagaÅ„, kod moduÅ‚u, zestaw testów moduÅ‚u itp.) Ä„ð zÅ‚ożone zbiór obiektów prostych i zÅ‚ożonych (np. obiekt skÅ‚adajÄ…cy siÄ™ z obiektów prostych: opis interfejsu, algorytm, pseudokod) 11/21 Atrybuty obiektu konfiguracji nazwa opis typ elementu (np. dokument, program, dane), identyfikator przedsiÄ™wziÄ™cia, informacje o wersji i/lub wprowadzonej zmianie lista zasobów (typy danych, funkcje, nazwy zmiennych) realizacja hierarchia obiektów ustalona na podstawie zależnoÅ›ci miÄ™dzy obiektami np. diagram jest częściÄ… modelu danych, model danych jest częściÄ… specyfikacji projektu 12/21 Hierarchia obiektów konfiguracji hierarchia obiektów ustalona na podstawie zależnoÅ›ci miÄ™dzy obiektami np. diagram jest częściÄ… modelu danych, model danych jest częściÄ… specyfikacji projektu zwiÄ…zki miÄ™dzy obiektami można zapisać w postaci tzw. drzewa hierarchii czasem zależnoÅ›ci miÄ™dzy obiektami przebiegajÄ… w poprzek hierarchii 13/21 Graf ewolucji obiektu * opisuje historiÄ™ zmian dotyczÄ…cych obiektu, który może być wielokrotnie modyfikowany poważna modyfikacja 1.3 1.4 rozwijane 2 wersje 1.0 1.1 1.2 2.0 2.1 pierwsza modyfikacja nowa 1.1.1 1.1.2 wersja kolejne drobne modyfikacje * A. Gustavsson: Miantaining the evolution of software objects in integrated enviroment, 1989 14/21 Kontrolowanie wersji metody i narzÄ™dzia pomagajÄ…ce zarzÄ…dzać wieloma wersjami obiektów konfiguracji powstaÅ‚ych w procesie wytwórczym każda wersja może mieć przypisane odpowiednie atrybuty np. numer, ciÄ…g zmiennych logicznych oznaczajÄ…cy rodzaje wprowadzonych zmian poszczególne wersje produktu można przedstawić na grafie ewolucyjnym 15/21 Kontrolowanie zmian kontrolowanie zmian ma zapobiegać powstaniu chaosu w przedsiÄ™wziÄ™ciu programistycznym czynnoÅ›ci: Ä„ð rozpoznanie potrzeby wprowadzenia zmian, analiza skutków zmiany, ocena zgÅ‚oszenia potrzeby zmiany, raport, decyzja ws. wprowadzenia zmiany Ä„ð odrzucenie, poinformowanie wÅ‚aÅ›ciwych osób, lub Ä„ð przyjÄ™cie zgÅ‚oszenia, przydziaÅ‚ pracowników, identyfikacja obiektów konfiguracji, wprowadzenie zmian, analiza wyników, rejestracja zmian, ustalenie nowej bazy do testowania, testowanie, zatwierdzenie zmian, budowa nowej wersji, przeglÄ…d wszystkich zmian wprowadzonych w różnych elementach konfiguracji, wprowadzenie zmian do nowej wersji, rozpowszechnianie nowej wersji 16/21 Formalna kontrola zmian odbywa siÄ™ po oddaniu produktu użytkownikowi rejestracja obiekt. konf., obiekt. konf., wersja zmodyf. wersja bazowa odblokowanie dane z przeglÄ…dów dane o prawach kontrola projektant / baza danych dostÄ™pu dostÄ™pu programista przedsiÄ™wziÄ™cia zablokowanie obiekt. konf., wersja bazowa obiekt. konf., wersja pobrana odczytanie 17/21 Audyt konfiguracji jest uzupeÅ‚nieniem wyników przeglÄ…dów technicznych, dostarcza oceny cech obiektów pomijanych podczas przeglÄ…dów odpowiada na pytania: Ä„ð czy zadania zostaÅ‚y wykonane, czy byÅ‚y dodatkowe modyfikacje Ä„ð czy odbyÅ‚ siÄ™ przeglÄ…d techniczny poprawnoÅ›ci Ä„ð czy stosowano zgodnie z zaÅ‚ożeniami proc. wytw. i przestrzegano norm Ä„ð czy wyróżniono zmienione fragmenty, czy zapisana data i autor zmian Ä„ð czy stosowano odpowiednie procoeduty zarzÄ…dzania konfiguracjÄ… Ä„ð czy uaktualnione zostaÅ‚y zmiany konfiguracji 18/21 Raportowanie o stanie konfiguracji nazywane również ksiÄ™gowaniem zmian odpowiada na pytania: Ä„ð co zostaÅ‚o zmienione Ä„ð kto wprowadzaÅ‚ zmiany Ä„ð kiedy wprowadzono zmiany Ä„ð jakie bÄ™dÄ… skutki zmian sÅ‚uży do rozpowszechniania informacji o zmianach 19/21 Podsumowanie zarzÄ…dzanie przedsiÄ™wziÄ™ciem programistycznym podstawy zarzÄ…dzania miary przedsiÄ™wzięć programistycznych i procesów wytwórczych planowanie przedsiÄ™wzięć programistycznych analiza i zarzÄ…dzanie ryzykiem tworzenie i Å›ledzenie harmonogramów zapewnienie jakość oprogramowania zarzÄ…dzanie konfiguracjÄ… oprogramowania 20/21 DziÄ™kujÄ™ za uwagÄ™ zródÅ‚o: Praktyczne podejÅ›cie do inżynierii oprogramowania , R.S. Pressman 21