240 likes | 450 Views
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.
E N D
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
APLAUZ ;-) • Koniec prezentacji