Inżynieria Oprogramowania Laboratorium mgr inż. Michał Bukowski randam@interia.eu
Temat: Zarządzanie konfiguracją oprogramowania Laboratorium nr 9 Temat: Zarządzanie konfiguracją oprogramowania Zarządzanie konfiguracją oprogramowania (ang. Software Configuration Management – SCM) jest to zestaw czynności mających na celu planowanie, organizowanie, sterowanie i koordynowanie zmian w oprogramowaniu w trakcie jego rozwoju, integracji i przekazania do użycia.
Laboratorium nr 9 Wersja 1.0 Wersja 1.1 Wersja 2.0 sprzedaż Błąd w programie – konieczne są zmiany Ale jak je przeprowadzić ????
Laboratorium nr 9 Ale jak ??? Zmiany – programista 1 Wersja 1.0 Konsolidacja Zmiany – programista 2 Ale jak ???
Laboratorium nr 9 Konieczne jest opracowanie specjalnych metod do zarządzania konfiguracją (tj. różnymi wersjami budowanego oprogramowania)
Laboratorium nr 9 Programy (kod źródłowy i wynikowy) Zarządzanie wersjami Elementy podlegające zmianom w projekcie : Programy (kod źródłowy i wynikowy) Dokumentacja (specyfikacja wymagań, opis modułów, instrukcja użytkownika, ...) Dane (dane testowe)
Laboratorium nr 9 Manualna (zasada „kopiuj i wklej”) Zarządzanie wersjami Metody zarządzania zmianami : Manualna (zasada „kopiuj i wklej”) Zautomatyzowana (użycie oprogramowania do zarządzania zmianami, np. Source-Safe, CVS)
Laboratorium nr 9 Duża zajętość miejsca na dysku przez wersje robocze Zarządzanie wersjami Wady metody manualnej : Duża zajętość miejsca na dysku przez wersje robocze Brak elastyczności Brak spójności Brak jednoznaczności Brak łatwego zarządzania zmianami
– ang. Version Control System Laboratorium nr 9 CVS - Wstęp – ang. Version Control System Cechy programu : Praca w oparciu o centralne repozytorium Możliwość pracy przez sieć Automatyczne wykrywanie zmian w plikach i nadawanie im kolejnych numerów wersji
– ang. Version Control System Laboratorium nr 9 CVS - Wstęp – ang. Version Control System Cechy programu : Wspomaga pracę nad zmianami w zespołach programistycznych Możliwość nieliniowego rozwoju budowanego oprogramowania Jest darmowy
Typowy cykl pracy przy budowie oprogramowania przy użyciu CVS-a : Laboratorium nr 9 Typowy cykl pracy przy budowie oprogramowania przy użyciu CVS-a : Założenie repozytorium dla projektu Dokonywanie zmian w plikach, rekompilacja, testowanie, itd... Generowanie nowej wersji projektu
Założenie repozytorium dla projektu : Laboratorium nr 9 Założenie repozytorium dla projektu : CVS – polecenia systemu - zakładanie głównego repozytorium: cvs –d :local:c:\cvs init - budowa struktury katalogów dla projektu: mkdir projekt1 mkdir projekt1\dokumenty mkdir projekt1\testy
Założenie repozytorium dla projektu : Laboratorium nr 9 Założenie repozytorium dla projektu : cd projekt1 cvs import –m „Nowy projekt” projekt1 firma start
Dokonywanie zmian w plikach : Laboratorium nr 9 Dokonywanie zmian w plikach : - dodawanie plików do repozytorium : cvs add plik.c cvs commit –m „Komentarz do pliku” plik.c - usuwanie plików z repozytorium : cvs remove plik.c cvs commit
Dokonywanie zmian w plikach : Laboratorium nr 9 Dokonywanie zmian w plikach : - pobieranie ostatniej wersji plików : cvs checkout projekt1 - zatwierdzanie nowej wersji pliku : cvs commit –m „komentarz” plik.c - zatwierdzanie nowej wersji projektu : cvs commit –m „komentarz”
Dokonywanie zmian w plikach : Laboratorium nr 9 Dokonywanie zmian w plikach : - „wymuszanie” nowej wersji dla plików : cvs commit –r 2.1 - usuwanie wersji roboczej projektu : cd .. cvs release –d projekt1
Generowanie nowej wersji projektu : Laboratorium nr 9 Generowanie nowej wersji projektu : - ustawianie etykiety dla wersji projektu : cvs tag rev_1_1 . - ustawianie etykiety dla wersji pliku : cvs tag rev_1_1 plik.c - pobieranie określonej wersji projektu : cvs checkout -r rev_1_1 projekt1
Generowanie nowej wersji projektu : Laboratorium nr 9 Generowanie nowej wersji projektu : - określanie rozgałęzienia w projekcie : cvs tag -b branch_1_1 - pobieranie plików rozgałęzienia z repozytorium : cvs checkout -r branch_1_1 projekt1
Generowanie nowej wersji projektu : Laboratorium nr 9 Generowanie nowej wersji projektu : - łączenie rozgałęzień : cvs update -j branch_1_1 plik.c cvs update -j branch_1_1 . UWAGA: Mogą pojawić się konflikty wersji !
Laboratorium nr 9 CSV - rozgałęzienia : 1.3.2.1 1.2 1.3 1.4 1.1 1.2.2.1 1.2.2.2
Laboratorium nr 9 CSV - rozgałęzienia : 1.3.2.1 1.1 1.2 1.3 1.4 1.2.2.1 1.2.2.2
Laboratorium nr 9 CSV - rozgałęzienia : Dopiero po usunięciu konfliktów (ręczna edycja plików) można zatwierdzić nową wersję projektu: cvs commit –m „Nowa wersja”
Laboratorium nr 9 CSV - podsumowanie : zmiany w plikach cvs checkout cvs commit
Laboratorium nr 9 CSV - nakładki : Aby ułatwić pracę początkującym użytkownikom z programem CVS powstały różne nakładki, np. WinCVS
Laboratorium nr 9 WinCVS :
Laboratorium nr 9 WinCVS :
Laboratorium nr 9 WinCVS CVSNT + Eclipse