PODSTAWY INŻINIERII
PROGRAMOWANIA
Modele: przyrostowy i spiralny
Produkcja oraz eksploatacja oprogramowania jest pewnym
procesem, który powinien być realizowany w systematyczny
sposób. Jak jednak powinien wyglądać ten proces? W
odpowiedzi na to pytanie proponuje się szereg tak zwanych
modeli cyklu życia oprogramowania. Modele te wprowadzają
pewne fazy życia oprogramowania, określają czynności
wykonywane w poszczególnych fazach oraz ustalają kolejność
ich realizacji. Modele cyklu życia oprogramowania pozwalają
uporządkować przebieg prac, ułatwiając planowanie zadań
oraz monitorowanie przebiegu ich realizacji
Model spiralny (ang. spiral
model )
Proces tworzenia ma postać spirali, której każda pętla reprezentuje jedną fazę procesu.
Najbardziej wewnętrzna pętla przedstawia początkowe etapy projektowania,
np. studium wykonalności, kolejna definicji wymagań systemowych, itd.
Regiony zadań modelu spiralnego:
• Porozumienie z klientem - ustanowienie efektywnego porozumiewania
się między producentem a klientem.
• Planowanie - zdefiniowanie zasobów, terminów i inne ustalenia.
• Analiza ryzyka - ocena ryzyka technicznego
i związanego z zarządzaniem projektem.
• Projektowanie - zadania związane z analizą i budową projektu.
• Konstrukcja i oddanie do użytku: konstrukcja, testowanie, instalacja
i wspomaganie użytkownika
• Ocena dokonana przez klienta
uzyskanie od klienta informacji nt. oceny projektu i jego implementacji.
Zalety:
• Do dużych systemów - szybka reakcja na pojawiające się czynniki
ryzyka
• Połączenie iteracji z klasycznym modelem kaskadowym
Wady:
•Trudno do niego przekonać klienta
• Konieczność umiejętności szacowania ryzyka
• Problemy, gdy źle oszacujemy ryzyko
Istnieje wiele wariantów tego modelu np. realizacja przyrostowa
Model „realizacji
przyrostowej”
(ang. incremental
development)
Jest to odmiana modelu spiralnego. Wybierany jest i realizowany
podstawowy zestaw funkcji. Po realizacji pewnych funkcji następuje
zrealizowanie i dostarczenie kolejnych funkcji.
Zalety:
• skrócenie przerw w kontaktach z klientem
• możliwość wczesnego wykorzystania przez klienta
dostarczonych fragmentów systemu
• możliwość elastycznego reagowania na powstałe opóźnienia
Wady:
• dodatkowy koszt towarzyszący niezależnej realizacji fragmentów systemu
Przyrostowe (ewolucyjne) tworzenie oprogramowania polega na iteracyjnym
tworzeniu systemu, począwszy od jego najprostszej bazowej wersji. W kolejnych
iteracjach rozwijane i dołączane są kolejne części (przyrosty), aż do osiągnięcia
systemu docelowego.
Metoda ta może być stosowana do konstrukcji systemów, w których można
wyodrębnić początkowy zestaw funkcji tworzących pierwszą wersję prototypu i
następnie realizować dokładanie kolejnych funkcji (tzw. przyrostów).
Metoda ta może być stosowana do konstrukcji systemów, w których można
wyodrębnić początkowy zestaw funkcji tworzących pierwszą wersję
prototypu i następnie realizować dokładanie kolejnych funkcji (tzw.
przyrostów).