Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 w prezentacji wykorzystano również materiały przygotowane przez Michała Kolano Etapy życia oprogramowania Faza strategiczna (cele i definicja projektu) ustalenie celów i definicji projektu; cele biznesowe Definiowanie wymagań zrozumienie celów klienta i ich zamiana na formalną specyfikację tego, co i przy jakich założeniach system ma robić Analiza zrozumienie dziedziny problemu, zakresu obowiązków systemu ustalenie celów systemu, specyfikacja problemu w jaki sposób system ma działać, by spełnić wymagania Implementacja tworzenie systemu (narzędzia, gotowe komponenty) Etapy życia oprogramowania Testowanie weryfikacja zgodności ze specyfikacją, poprawienie błędów Dokumentacja przygotowanie materiałów dla członków zespołu projektowego oraz użytkowników Instalacja uruchomienie systemu u klienta Wdrożenie przygotowanie użytkowników, akceptacja, szkolenie Pielęgnacja utrzymanie, konserwacja w trakcie użytkowania systemu 1
Etapy życia oprogramowania Określenie wymagań Implementacja Testowanie Pielęgnacja Faza strategiczna Analiza Instalacja Dokumentacja Modele cyklu życia projektu separacja faz specyfikacji i implementacji Model ewolucyjny przeplatanie się faz specyfikacji i implementacji Model spiralny elementy modelu kaskadowego i ewolucyjnego Różne odmiany i modyfikacje Modele nietypowe 2
Określenie Określenie Analiza Analiza Implementacja Implementacja Testowanie Testowanie Konserwacja Konserwacja Określenie Określenie Analiza Analiza PROTOTYP PROTOTYP z prototypowaniem prototypowanie: zalety: Implementacja wczesna Implementacja demonstracja możliwości systemu wstępne wymagania wstępne szkolenia weryfikacja prototypu pełna specyfikacja wymagań wady: Testowanie Testowanie cel: koszty przygotowania prototypu zagrożenie Konserwacja przetrzymywaniem prototypu Konserwacja wykrycie Institute błędów of Informatics, w specyfikacji Silesian University of wymagań Technology, Gliwice, Poland Określenie Określenie Analiza Analiza z iteracjami Implementacja Implementacja Testowanie Testowanie Konserwacja Konserwacja 3
Zalety modelu kaskadowego: Łatwość harmonogramowania i budżetowania Formalny odbiór poszczególnych etapów (kamienie milowe, milestones): monitorowanie postępu prac Rozliczenia finansowe z klientem Możliwość realizacji sterowanej dokumentami Wady modelu kaskadowego: narzucona ścisła kolejność faz wysoki koszt błędów ze wczesnych faz problemy ze wprowadzaniem zmian długa przerwa w kontaktach z klientem stąd modyfikacje tego modelu : Ułatwia zarządzanie projektem Utrudnia wprowadzanie zmian Zwiększa koszty błędów często pożądany przez kierownictwo część odpowiedzialności spychana jest na zespół projektowy 4
Model ewolucyjny Model ewolucyjny Specyfikacja Specyfikacja Wersja Wersja początkowa początkowa Zarys Zarys systemu systemu Rozwój Rozwój systemu systemu Wersje pośrednie Weryfikacja Weryfikacja Wersja Wersja końcowa końcowa czynności przebiegające równolegle Model ewolucyjny Model ewolucyjny Zalety: Model ewolucyjny dobry dla małych projektów, szybki start projektu tolerancja dla słabo zdefiniowanych wymagań niski koszt błędów (krótki czas życia błędów) Wady: trudność z harmonogramowaniem koszty prototypowania, błądzenia systemy często o złej strukturze 5
Model ewolucyjny Model ewolucyjny: Utrudnia zarządzanie projektem Wprowadzanie zmian immanentną cechą tego modelu Zwiększa ryzyko błędów, ale zmniejsza ich koszty rzadko preferowany przez kierownictwo często kształtuje się tam, gdzie brakuje dobrego zarządzania charakterystyczny dla projektów jednoosobowych Modele porównanie zarządzanie elastyczność ryzyko błędów koszty błędów model kaskadowy model ewolucyjny model iteracyjny Model iteracyjny (spiralny) podobny do iteracyjnego modelu kaskadowego nacisk na wielokrotne prototypowanie powtarzanie modelu kaskadowego każdy cykl kończy się stworzeniem prototypu, jego weryfikacją i wyciągnięciem wniosków mocny punkt: zarządzanie ryzykiem 6
Model iteracyjny Model iteracyjny Analiza (planowanie) Testowanie (ocena) Konstrukcja (prototypowanie) Model spiralny Boehma Przegląd ustalanie celów i alternatywnych dróg Przegląd Przegląd Analiza ryzyka Analiza ryzyka Identyfikacja i analiza ryzyka prototypy Przegląd Przegląd Prototyp Analiza ryzyka Prototyp 3 operacyjny Prototyp 2 Analiza ryzyka Proto typ 1 Symulacja, modele, testy wydajności Plan cyklu życia i Koncepcja akwizycji wymagań działania Wymagani a Projekt Projekt Walidacja produktu szczegółowy Planowanie tworzenia wymagań Kod (rozwijania) Walidacja Test jednostek Planowanie scalania i produktu testowania Test Test scalania akceptacyjny Obsługa Planowanie następnej fazy Konstrukcja Atestowanie 7
Zalety modelu iteracyjnego: Model iteracyjny harmonogramowanie i budżetowanie dość łatwe, choć utrudnione ze względu na liczbę iteracji możliwość wyznaczenia kamieni milowych, choć nie tak oczywistych jak w modelu kaskadowym elastyczność, łatwość wprowadzania zmian wczesne wykrywanie błędów zarządzanie ryzykiem Wady modelu iteracyjnego: Model iteracyjny nie tak łatwe, jak w modelu kaskadowym, zarządzanie narzucone przez klienta wymogi dot. harmonogramu mogą utrudniać skorzystanie z tego modelu Model iteracyjny Model iteracyjny: Zarządzanie projektem lekko utrudnione Wprowadzanie zmian immanentną cechą tego modelu Pozwala na wczesne wykrywanie błędów dobry kompromis pomiędzy modelem kaskadowym i ewolucyjnym, dodatkowo pozbawiony wad tego ostatniego często uważany za najdoskonalszy wytwór inżynierii oprogramowania w tej dziedzinie 8
Modele porównanie zarządzanie elastyczność ryzyko błędów koszty błędów model kaskadowy model ewolucyjny model iteracyjny Programowanie odkrywcze Inne modele próbuj OK? nie tak koniec Inne modele Transformacje formalne Formalna Formalna specyfikacja specyfikacja Postać Postać pośrednia pośrednia dowód poprawności Postać Postać pośrednia pośrednia dowód poprawności dowód poprawności Postać Postać pośrednia pośrednia System System (kod) (kod) 9
Inne modele Montaż z gotowych elementów Specyfikacja Specyfikacja Analiza Analiza komponentów komponentów Modyfikacja Modyfikacja Projekt Projekt w oparciu oparciu o o komponenty komponenty Weryfikacja Weryfikacja systemu systemu Określenie Określenie Ogólny Ogólny projekt projekt Inne modele Realizacja przyrostowa Wybór Wybór podzbioru podzbioru funkcji funkcji Szczegółowy Szczegółowy projekt, projekt, implementacja implementacja testy testy Dostarczenie Dostarczenie zrealizowanej zrealizowanej części części systemu systemu 1
Zasada 1:1 Wyniki badań wg Pressmana Faza projektowania Propagacja błędów Przed rozpoczęciem ciem testowania W trakcie testowania Po przekazaniu do eksploatacji Koszt 1 6,5 15 67 Propagacja błędów błędy z poprzednich etapów Defekty Błędy przepuszczone Błędy wzmacniane Nowe błędy Wykrywanie % skuteczności wykrywania błędów błędy przekazane do następnego etapu Propagacja błędów 1 % projektowanie wstępne 1 7% projektowanie wstępne 1 3 z testami kończącymi fazy 6 6 % 25 projektowanie szczegółowe 4*1,5 2 1,5 5% 25 projektowanie szczegółowe 1*1,5 37 15 1 81 2% 25 test kodu/ jednostek 27*3 5 3 6% 25 test kodu/ jednostek 1*3 94 24 94 5% test scalania 24 5% test scalania 47 12 47 5% test walidacyjny 12 bez testów kończących fazy 5% test walidacyjny 24 6 24 5% test systemowy 6 5% test systemowy 12 3 11
Zamiast podsumowania Model projektu RUP RUP Rational Unified Process Rational Software 12