2.2 Model wodospadowy
Model wodospadowy zwany też modelem
kaskadowym lub liniowym, jest klasycznym modelem cyklu życia oprogramowania.
Jest to model, który został zaproponowany poprzez analogię do sposobu
prowadzenia przedsięwzięć w innych dziedzinach inżynierii, na przykład
budownictwie.
Budowa mostu rozpoczyna się od określenia głównych zadań jakie ma on spełniać,
a następnie szczegółowego określenia wymagań, które zapewnią realizację tych
zadań. Kolejnym krokiem jest wykonanie szczegółowego projektu konstrukcji.
Dalej następują faza budowy oraz testowania wybudowanego mostu. Ostatnim etapem
jest faza konserwacji.
Rys. 2.2.1 Model kaskadowy cyklu życia
oprogramowania
Model kaskadowy cyklu życia oprogramowania wprowadza
następujące fazy rozwoju oprogramowania:
-
fazę określania wymagań, w której określane są cele oraz
szczegółowe wymagania wobec tworzonego systemu,
-
fazę projektowania
w której powstaje szczegółowy projekt systemu spełniającego ustalone wcześniej
wymagania,
-
fazę implementacji/kodowania oraz testowania modułów, w
której projekt zostaje zaimplementowany w konkretnym środowisku
programistycznym oraz wykonywane są testy poszczególnych modułów,
-
fazę testowania, w której następuje integracja
poszczególnych modułów połączona z testowaniem poszczególnych podsystemów oraz
całego oprogramowania,
-
fazę konserwacji, w której oprogramowanie jest wykorzystywane
przez użytkownika(ów), a producent dokonuje konserwacji oprogramowania wykonuje
modyfikacje polegające na usuwaniu błędów, zmianach i rozszerzaniu funkcji
systemu.
Podział całego cyklu życia na konkretne fazy
proponowany przez różnych autorów może różnić się częściowo od przedstawionego
powyżej. Podział ten może być mniej lub bardziej szczegółowy. Najistotniejszą
cechą tego modelu jest spojrzenie na cykl życia oprogramowania jako na proces
liniowy, w którym poszczególne fazy występują sekwencyjnie jedna po drugiej.
W modelu kaskadowym często wyróżnia się pewne dodatkowe fazy, które częściowo
nakładają się na fazy wymienione powyżej:
-
Faza strategiczna wykonywana przed formalnym
podjęciem decyzji o realizacji przedsięwzięcia. W tej fazie podejmowane są
pewne strategiczne decyzje dotyczące dalszych etapów prac. Faza ta wymaga
oczywiście przynajmniej ogólnego określenia wymagań.
-
Faza analizy, w której budowany jest logiczny
model systemu.
-
Faza dokumentacji, w której wytwarzana jest
dokumentacja użytkownika. Opracowywanie dokumentacji przebiega równolegle z
produkcją oprogramowania. Faza ta może rozpocząć się już w trakcie określania
wymagań. Sugeruje się nawet, że podręcznik użytkownika dla przyszłego systemu
jest dobrym dokumentem opisującym wymagania. Ostatnie zmiany w dokumentacji
dokonywane są w fazie instalacji.
-
Faza wdrożenia, w której następuje
przekazanie systemu użytkownikowi.
Wady i zalety modelu
Jakie są podstawowe zalety oraz wady modelu kaskadowego?
Zalety wiążą się przede wszystkim z łatwością zarządzania przedsięwzięciem.
Model ten ułatwia planowanie. harmonogramowanie oraz monitorowanie
przedsięwzięcia.
Wady tego modelu to:
-
Narzucenie twórcom oprogramowania ścisłej kolejności wykonywania prac. Osoby
pracujące nad oprogramowaniem preferują mniej rygorystyczny styl pracy.
-
Wysoki koszt błędów popełnionych we wstępnych fazach. Błędy popełnione w fazie
określania wymagań zostaną najprawdopodobniej wykryte dopiero w fazie
testowania lub konserwacji. Ich koszt może o rzędy wielkości przewyższać koszt
błędów popełnionych np. w fazie implementacji.
-
Długa przerwa w kontaktach z klientem. Faza strategiczna oraz określania
wymagań i analizy realizowane są w ścisłej współpracy z klientem (w przypadku
oprogramowania wykonywanego na zamówienie). Projektowanie, implementacja i w
dużej mierze testowanie wykonywane są wyłącznie przez firmę programistyczną.
Pojawia się więc ryzyko zmniejszenia zainteresowania klienta przedsięwzięciem w
czasie gdy nic bierze on bezpośredniego udziału w jego realizacji.
Na temat praktycznej przydatności modelu kaskadowego
wypowiada się skrajnie różne opinie. Z jednej strony twierdzi się, że
praktycznie żadne rzeczywiste przedsięwzięcie programistyczne nie zostało
zrealizowane zgodnie z tym modelem. Inni autorzy twierdzą, że zdecydowana
większość rzeczywistych przedsięwzięć przebiega zgodnie z modelem kaskadowym.
Ta różnica zdań wynika z faktu różnej interpretacji tego modelu. Interpretacja
ścisła traktuje poszczególne fazy jako konkretne okresy realizacji
przedsięwzięcia, okresy, które nie nakładają się na siebie i są wykonywane
ściśle sekwencyjnie bez żadnych iteracji. Interpretacja ogólna zakłada, że
poszczególne fazy mają znaczenie bardziej koncepcyjne, poszczególne fragmenty
systemu mogą np.: znajdować się w tym samym czasie na różnych etapach
realizacji. Interpretacja ta dopuszcza także iteracje - nawroty do
wcześniejszych faz modelu. Oczywiście także w wypadku interpretacji ścisłej
dopuszcza się nawroty w wypadku wykrycia na dalszych etapach błędów
popełnionych na etapach wcześniejszych. Powroty traktowane są jednak jako
sytuacje wyjątkowe, których należy w miarę możliwości unikać
Przejdź dalej
|