Etapy życia oprogramowania Etapy życia oprogramowania
Transkrypt
Etapy życia oprogramowania Etapy życia oprogramowania
Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 2003 w prezentacji wykorzystano również materiały przygotowane przez Michała Kolano Institute of Informatics, Silesian University of Technology, Gliwice, Poland 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 • Projektowanie w jaki sposób system ma działać, by spełnić wymagania • Implementacja tworzenie systemu (narzędzia, gotowe komponenty) Institute of Informatics, Silesian University of Technology, Gliwice, Poland 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 Institute of Informatics, Silesian University of Technology, Gliwice, Poland 1 Etapy życia oprogramowania Określenie wymagań Faza strategiczna Projektowanie Implementacja Analiza Testowanie Pielęgnacja Instalacja Dokumentacja Institute of Informatics, Silesian University of Technology, Gliwice, Poland Modele cyklu życia projektu • Model kaskadowy 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… Institute of Informatics, Silesian University of Technology, Gliwice, Poland 2 Model kaskadowy Model kaskadowy Określenie Określenie wymagań wymagań Analiza Analiza Projektowanie Projektowanie Implementacja Implementacja Testowanie Testowanie Konserwacja Konserwacja Institute of Informatics, Silesian University of Technology, Gliwice, Poland Model kaskadowy Określenie Określenie wymagań wymagań PROTOTYP PROTOTYP Model kaskadowy z prototypowaniem Analiza Analiza Projektowanie Projektowanie zalety: zalety: prototypowanie: prototypowanie: ––wstępne wstępnewymagania wymagania ––weryfikacja weryfikacjaprototypu prototypu ––pełna pełnaspecyfikacja specyfikacjawymagań wymagań cel: cel: Implementacja ––wczesna demonstracja Implementacja wczesna demonstracjamożliwości możliwościsystemu systemu ––wstępne wstępneszkolenia szkolenia wady: wady: Testowanie Testowanie –– koszty kosztyprzygotowania przygotowaniaprototypu prototypu Konserwacja ––zagrożenie Konserwacja zagrożenie„przetrzymywaniem „przetrzymywaniemprototypu” prototypu” błędów wwspecyfikacji –– wykrycie Institute of Informatics, Silesian University ofwymagań Technology, Gliwice, Poland wykrycie błędów specyfikacji wymagań Model kaskadowy Model kaskadowy z iteracjami Określenie Określenie wymagań wymagań Analiza Analiza Projektowanie Projektowanie Implementacja Implementacja Testowanie Testowanie Konserwacja Konserwacja Institute of Informatics, Silesian University of Technology, Gliwice, Poland 3 Model kaskadowy • 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 Institute of Informatics, Silesian University of Technology, Gliwice, Poland Model kaskadowy • 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 Institute of Informatics, Silesian University of Technology, Gliwice, Poland Model kaskadowy • Model kaskadowy: – 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 Institute of Informatics, Silesian University of Technology, Gliwice, Poland 4 Model ewolucyjny Model ewolucyjny Zarys Zarys systemu systemu Specyfikacja Specyfikacja Wersja Wersja początkowa początkowa Rozwój Rozwój systemu systemu Wersje pośrednie Weryfikacja Weryfikacja Wersja Wersja końcowa końcowa czynności przebiegające równolegle Institute of Informatics, Silesian University of Technology, Gliwice, Poland Model ewolucyjny Model ewolucyjny Institute of Informatics, Silesian University of Technology, Gliwice, Poland Model ewolucyjny • 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 Institute of Informatics, Silesian University of Technology, Gliwice, Poland 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 Institute of Informatics, Silesian University of Technology, Gliwice, Poland Modele – porównanie model model model kaskadowy ewolucyjny iteracyjny zarządzanie elastyczność ryzyko błędów koszty błędów + – ↓ ↑ – + ↑ ↓ + + ↓ ↓ Institute of Informatics, Silesian University of Technology, Gliwice, Poland 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 Institute of Informatics, Silesian University of Technology, Gliwice, Poland 6 Model iteracyjny Institute of Informatics, Silesian University of Technology, Gliwice, Poland Model iteracyjny Analiza (planowanie) Projektowanie Testowanie (ocena) Konstrukcja (prototypowanie) Institute of Informatics, Silesian University of Technology, Gliwice, Poland Model spiralny Boehma Przegląd ustalanie celów i alternatywnych dróg Przegląd Przegląd Przegląd Przegląd Plan cyklu życia i akwizycji wymagań Planowanie następnej fazy Planowanie tworzenia (rozwijania) Planowanie scalania i testowania Analiza ryzyka Analiza ryzyka Identyfikacja i analiza ryzyka prototypy Prototyp Analiza ryzyka Prototyp 3 operacyjny Prototyp 2 Analiza ryzyka Proto typ 1 Koncepcja działania Symulacja, modele, testy wydajności Wymagani a Projekt Projekt Walidacja produktu szczegółowy wymagań Kod Walidacja Test jednostek produktu Test Test scalania akceptacyjny Obsługa Institute of Informatics, Silesian University of Technology, Gliwice, Poland Konstrukcja Atestowanie 7 Model iteracyjny • Zalety modelu 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 modelu kaskadowym – elastyczność, łatwość wprowadzania zmian – wczesne wykrywanie błędów – zarządzanie ryzykiem Institute of Informatics, Silesian University of Technology, Gliwice, Poland Model iteracyjny • Wady modelu iteracyjnego: – nie tak łatwe, jak w modelu kaskadowym, zarządzanie – narzucone przez klienta wymogi dot. harmonogramu mogą utrudniać skorzystanie z tego modelu Institute of Informatics, Silesian University of Technology, Gliwice, Poland 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 Institute of Informatics, Silesian University of Technology, Gliwice, Poland 8 Modele – porównanie model model model kaskadowy ewolucyjny iteracyjny zarządzanie elastyczność ryzyko błędów koszty błędów + – ↓ ↑ + – + ↑ ↓ + ↓ ↓ Institute of Informatics, Silesian University of Technology, Gliwice, Poland Inne modele • Programowanie odkrywcze próbuj… próbuj… nie OK? tak koniec Institute of Informatics, Silesian University of Technology, Gliwice, Poland Inne modele Transformacje formalne dowód poprawności Formalna Formalna specyfikacja specyfikacja wymagań wymagań dowód poprawności Postać Postać pośrednia pośrednia dowód poprawności Postać Postać pośrednia pośrednia Postać Postać pośrednia pośrednia Institute of Informatics, Silesian University of Technology, Gliwice, Poland System System (kod) (kod) 9 Inne modele Montaż z gotowych elementów Specyfikacja Specyfikacja wymagań wymagań Analiza Analiza komponentów komponentów Modyfikacja Modyfikacja wymagań wymagań Projekt Projekt wwoparciu oparciu ookomponenty komponenty Weryfikacja Weryfikacja systemu systemu Institute of Informatics, Silesian University of Technology, Gliwice, Poland Inne modele Określenie Określenie wymagań wymagań Realizacja przyrostowa Ogólny Ogólny projekt projekt 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 Institute of Informatics, Silesian University of Technology, Gliwice, Poland 10 Propagacja błędów • Zasada 1:10 • Wyniki badań wg Pressmana Faza projektowania Przed rozpoczę rozpoczęciem testowania W trakcie testowania Po przekazaniu do eksploatacji 1 6,5 15 67 Koszt Institute of Informatics, Silesian University of Technology, Gliwice, Poland Propagacja błędów błędy z poprzednich etapów Defekty Wykrywanie Błędy przepuszczone Błędy wzmacniane Nowe błędy % skuteczności wykrywania błędów błędy przekazane do następnego etapu Institute of Informatics, Silesian University of Technology, Gliwice, Poland Propagacja błędów bez testów kończących fazy 0 0 0% 10 10 6 6 projektowanie wstępne 25 10 81 projektowanie szczegółowe 4*1,5 0 0 0% 37 70% 10 projektowanie wstępne 2 1,5 50% 25 projektowanie szczegółowe 1*1,5 20% 94 25 3 15 94 0 test kodu/ jednostek 27*3 47 47 0 test scalania 5 30 50% 0 60% 25 test kodu/ jednostek 10*3 50% 24 0 24 24 0 50% test walidacyjny 24 50% 12 12 0 test scalania z testami kończącymi fazy test systemowy 12 0 50% 0 test walidacyjny 6 6 50% 3 test systemowy Institute of Informatics, Silesian University of Technology, Gliwice, Poland 11 Zamiast podsumowania… Institute of Informatics, Silesian University of Technology, Gliwice, Poland Model projektu RUP • RUP – Rational Unified Process ®Rational Software Institute of Informatics, Silesian University of Technology, Gliwice, Poland 12