Etapy życia oprogramowania Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 Określenie wymagań Testowanie Pielęgnacja Faza strategiczna Instalacja Dokumentacja 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ć 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 tworzenie systemu (narzędzia, gotowe komponenty) Modele cyklu życia projektu separacja faz specyfikacji i implementacji przeplatanie się faz specyfikacji i implementacji Model spiralny elementy u kaskadowego i ewolucyjnego Różne odmiany i modyfikacje Modele nietypowe 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
Określenie Określenie Zalety u 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 Testowanie Testowanie Określenie Określenie prototypowanie: PROTOTYP PROTOTYP zalety: z prototypowaniem wczesna 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 przetrzymywaniem prototypu wykrycie Institute błędów of Informatics, w specyfikacji Silesian University of wymagań Technology, Gliwice, Poland Wady u 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 u Określenie Określenie z iteracjami : Ułatwia zarządzanie projektem Utrudnia wprowadzanie zmian Zwiększa koszty błędów Testowanie Testowanie często pożądany przez kierownictwo część odpowiedzialności spychana jest na zespół projektowy 2
Wersja Wersja początkowa początkowa : Utrudnia zarządzanie projektem Wprowadzanie zmian immanentną cechą tego u Zwiększa ryzyko błędów, ale zmniejsza ich koszty Zarys Zarys Rozwój Rozwój Wersje pośrednie rzadko preferowany przez kierownictwo Weryfikacja Weryfikacja czynności przebiegające równolegle Wersja Wersja końcowa końcowa 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 kaskadowy ewolucyjny iteracyjny Zalety: 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 (spiralny) podobny do iteracyjnego u kaskadowego nacisk na wielokrotne prototypowanie powtarzanie u kaskadowego każdy cykl kończy się stworzeniem prototypu, jego weryfikacją i wyciągnięciem wniosków mocny punkt: zarządzanie ryzykiem 3
Zalety u iteracyjnego: 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 u kaskadowym elastyczność, łatwość wprowadzania zmian wczesne wykrywanie błędów zarządzanie ryzykiem (planowanie) Wady u iteracyjnego: nie tak łatwe, jak w u kaskadowym, zarządzanie narzucone przez klienta wymogi dot. harmonogramu mogą utrudniać skorzystanie z tego u Testowanie (ocena) Konstrukcja (prototypowanie) Model spiralny Boehma ustalanie celów i alternatywnych dróg ryzyka ryzyka Prototyp ryzyka Prototyp 3 operacyjny Prototyp 2 Identyfikacja i analiza ryzyka ryzyka Proto typ 1 Symulacja, e, y 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 owania Test Test scalania akceptacyjny Obsługa Planowanie następnej fazy prototypy Konstrukcja Aowanie : Zarządzanie projektem lekko utrudnione Wprowadzanie zmian immanentną cechą tego u Pozwala na wczesne wykrywanie błędów dobry kompromis pomiędzy em kaskadowym i ewolucyjnym, dodatkowo pozbawiony wad tego ostatniego często uważany za najdoskonalszy wytwór inżynierii oprogramowania w tej dziedzinie 4
Modele porównanie Inne e zarządzanie elastyczność ryzyko błędów koszty błędów kaskadowy ewolucyjny iteracyjny Montaż z gotowych elementów komponentów komponentów Modyfikacja Modyfikacja Projekt Projekt w oparciu oparciu o o komponenty komponenty Weryfikacja Weryfikacja Inne e Inne e Programowanie odkrywcze Określenie Określenie Realizacja przyrostowa próbuj Ogólny Ogólny projekt projekt OK? koniec tak nie Wybór Wybór podzbioru podzbioru funkcji funkcji Szczegółowy Szczegółowy projekt, projekt, implementacja implementacja y y Dostarczenie Dostarczenie zrealizowanej zrealizowanej części części Inne e 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) 5
Propagacja błędów Zasada 1:1 Wyniki badań wg Pressmana Faza projektowania Przed rozpoczęciem ciem owania W trakcie owania Po przekazaniu do eksploatacji Koszt 1,5 15 7 Zamiast podsumowania Propagacja błędów Model projektu RUP RUP Rational Unified Process 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 Rational Software Propagacja błędów 1 % wstępne 1 7% wstępne 1 3 z ami kończącymi fazy % szczegółowe 4*1,5 2 1,5 5% szczegółowe 1*1,5 37 15 1 81 2% kodu/ jednostek 27*3 5 3 % kodu/ jednostek 1*3 94 94 5% scalania 5% scalania 47 12 47 5% walidacyjny 12 bez ów kończących fazy 5% walidacyjny 5% systemowy 5% systemowy 12 3