Wykłady > Cykle życiowe oprogramowania > Model wodospadowy

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



Wykłady > Cykle życiowe oprogramowania > Model wodospadowy