Cykle życia oprogramowania Piotr Chmielewski, Tomasz Janas
3 podstawowe fazy życia Wyodrębnienie ze środowiska Życie i współdziałanie z otoczeniem przy pełnej efektywności Stopniowa utrata efektywności i powrót do środowiska
Cykle życia oprogramowania a projektowanie Cykl życia oprogramowania opisuje historię systemu informatycznego począwszy od jego narodzin aż do wdrożenia i utrzymania opisuje zależności (czasowe) pomiędzy różnymi aktywnościami podejmowanymi przy wytwarzaniu oprogramowania określa , jak proces projektowania współdziała z innymi procesami
Poszczególne kroki CŻO Faza strategiczna: określenie strategicznych celów, planowanie i definicja projektu Określenie wymagań Analiza: dziedziny przedsiębiorczości, wymagań systemowych Projektowanie: pojęciowe, logiczne Implementacja / konstrukcja: rozwijanie, testowanie, dokumentacja Testowanie Dokumentacja Instalacja Utrzymanie, konserwacja, pielęgnacja
Model kaskadowy Kolejne aktywności następują po sobie bez możliwości powrotu
Model kaskadowy - analiza wymagań wymagania funkcjonalne - co system ma robić z punktu widzenia użytkownika po wyjściu z fazy analizy, wymagania stawiane systemowi nie mogą być już zmienione
Model kaskadowy - projektowanie uszczegółowienie wyników analizy projektowanie składowych systemu nie związanych z dziedziną problemu optymalizacji systemu dostosowanie do ograniczeń i możliwości środowiska implementacji określenie fizycznej struktury systemu
Model kaskadowy – implementacja, oprogramowanie zakodowanie rozwiązań w języku programowania wstępne testowanie na poziomie funkcji lub modułów
Model kaskadowy - testowanie wykrycie i usunięcie błędów w systemie ocena niezawodności systemu Rodzaje testów: testy statystyczne testy dynamiczne 3 fazy testowania systemu: testy modułów testy systemu Testy akceptacji
Model kaskadowy - Wdrożenie i utrzymanie instalacja i konfiguracja systemu u klienta dostarczenie wparcia technicznego wdrożeniu odpowiadają działania marketingowe zmierzające do wprowadzenia produktu na rynek
Model kaskadowy - podsumowanie 1. Zalety: łatwość zarządzania przedsięwzięciem łatwość planowania łatwość harmonogramowania łatwość monitorowania ścisła kontrola nad kolejnością wykonywania prac (rygorystyczny styl pracy) 2. Wady: trudno naprawić popełnione błędy we wcześniejszych fazach (błędy w fazie określenia wymagań najprawdopodobniej zostaną wykryte dopiero w fazie testowania lub konserwacji) długa przerwa w kontaktach z klientem (zmniejszenie zainteresowania, bo fazy projektowania i implementacji odbywają się bez jego udziału) brak iteracji (jeżeli już, to są to sytuacje wyjątkowe)
Model kaskadowy z nawrotami Modyfikacja modelu kaskadowego -wprowadzenie do niego iteracji Możliwość powrotu do poprzedniego etapu powoduje, że model może być zastosowany w praktyce Projektanci i programiści tracą gwarancję niezmienności wymagań
Model oparty o prototypowanie zebranie wymagań dotyczących sytemu realizacja projektu i implementacja zaprezentowanie wyników użytkownikowi i powrót do punktu określania wymagań
Model oparty o prototypowanie 1. Zalety: możliwość szybkiej demonstracji pracującej wersji systemu możliwość szkoleń zanim zbudowany zostanie pełen system 2. Wady: dodatkowy koszt budowy prototypu frustracja klienta, że ma „prawie” gotowy system
Model spiralny zakłada cykliczne przechodzenie przez kolejne fazy realizacji projektu cztery cyklicznie powtarzane etapy: Określanie wymagań i planowanie Analiza ryzyka Wytworzenie systemu Ocena użytkownika i przejście do punktu 1
Programowanie odkrywcze określenie wymagań szybka realizacja systemu weryfikowana przez klienta Brak akceptacji klienta: kolejna wersja systemu lub modyfikuje się poprzednią wersję Akceptacja klienta: kontynuujemy prace nad danym systemem
Programowanie odkrywcze 1. Zalety: możliwość określenia trudnych wymagań klienta 2. Wady: trudno zachować sensowną strukturę systemu Mało profesjonalna metoda
Realizacja kierowana dokumentami Model zgodny ze standardem DOD STD 2167 - sposób wykonywania oprogramowania dla armii amerykańskiej Każda faza kończy się szczegółowym opracowaniem dokumentów opisujących wyniki tej fazy Kolejna faza rozpoczynana jest tylko w przypadku zaakceptowania przez klienta dokumentacji
Realizacja kierowana dokumentami 1. Zalety: możliwość kontynuowania projektu w innej firmie w przypadku przerwania pracy (mając komplet dokumentacji) 2. Wady: duży nakład pracy na opracowanie dokumentów zgodnych ze standardem (ponad 50% całkowitych nakładów) przerwy w realizacji przedsięwzięcia niezbędne dla weryfikacji dokumentów przez klienta
Montaż z gotowych elementów wykorzystywane jest ponowne użycie 1. Zalety: wysoka niezawodność zmniejszenie ryzyka efektywne wykorzystanie specjalistów narzucenie standardów redukcja kosztów 2. Wady: dodatkowy koszt przygotowania elementów do ponownego wykorzystania ryzyko uzależnienia się od dostawcy elementów niedostatki narzędzi wspomagających ten rodzaj pracy
Podsumowanie Mniej dokładna analiza i projektowanie – więcej pracy dla programistów Staranne projektowanie ułatwia pracę programistom i testerom oraz pozwala zaoszczędzić nakłady w procesie programowania i wdrożenia Im większym zmianom ma podlegać system tym przyjęte rozwiązania muszą być bardziej elastyczne i ogólne
Koniec prezentacji APLAUZ ;-)