Transcript prez1
Cykle życia oprogramowania Piotr Chmielewski, Tomasz Janas 3 podstawowe fazy życia 1. 2. 3. 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 1. 2. 3. 4. 5. 6. 7. 8. 9. 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: 1. testy statystyczne 2. testy dynamiczne 3 fazy testowania systemu: 1. testy modułów 2. testy systemu 3. 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 • • 1. 2. 3. 4. 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 ;-)