Model kaskadowy (ang. waterfall model) – jeden z kilku rodzajów procesów tworzenia oprogramowania zdefiniowany w inżynierii oprogramowania. Jego nazwa wprowadzona została przez Winstona W. Royce'a w roku 1970, w artykule „Managing the Development of Large Software Systems” (Zarządzanie tworzeniem dużych systemów informatycznych).
Polega on na wykonywaniu podstawowych czynności jako odrębnych faz projektowych, kolejno po sobie. Każda czynność to schodek (kaskady):
- Planowanie systemu (w tym specyfikacja wymagań).
- Analiza systemu (w tym analiza wymagań i studium wykonalności).
- Projekt systemu (poszczególnych struktur itp.).
- Implementacja (wytworzenie kodu).
- Testowanie (poszczególnych elementów systemu oraz elementów połączonych w całość).
- Wdrożenie i pielęgnacja powstałego systemu.
Jeśli któraś z faz zwróci niesatysfakcjonujący produkt, cofamy się wykonując kolejne iteracje aż do momentu kiedy otrzymamy satysfakcjonujący produkt na końcu schodków.
Istotne cechy modelu
- Nieelastyczny podział na kolejne rozłączne iteracyjne fazy
- Przejście do następnej fazy możliwe po zakończeniu poprzedniej
- Wysoki koszt iteracji przez powtarzanie wielu czynności
Zastosowanie
Model może być używany wyłącznie w przypadku, gdy wymagania są zrozumiałe i przejrzyste, ponieważ każda iteracja jest czasochłonna i wymaga dużych wydatków na ulepszanie. Jednocześnie jest on stosowany w normalnej praktyce inżynierskiej. Podobnie procesy tworzenia oprogramowania bazujące na tym modelu, jak i na modelu ewolucyjnym, są nadal szeroko stosowane, zwłaszcza gdy są elementami składowymi dużych przedsięwzięć inżynierii systemów.
Modyfikacje
W ramach modelu kaskadowego wypracowano wiele jego modyfikacji. Przykładem może być tu firma IBM i jej model MITP (z ang. Managing the Implementation of the Total Project), który składa się z czterech głównych faz („Wymagania”, „Ustanowienie projektu”, „Realizacja projektu”, „Ukończenie projektu”) i wynika z doświadczeń firmy w realizacji projektów.
Zobacz też
Przypisy
- ↑ Royce, Winston W. „Managing the development of large software systems: concepts and techniques”. W Proceedings of Westcon, IEEE CS Press, 1970 r., str. 328-339
- ↑ Ian Sommerville, Inżynieria oprogramowania, Krzysztof Stencel (tłum.), Warszawa: WNT, 2003, s. 44, 46, ISBN 83-204-2795-9, OCLC 749576741.
- ↑ Szyjewski, Zdzisław, „Zarządzanie projektami informatycznymi: metodyka tworzenia systemów informatycznych”, Agencja Wydawnicza Placet, 2001
Linki zewnętrzne
- Royce, W.W.: Managing the Development of Large Software Systems. (PDF) Artykuł z 1970 roku, w którym W.W. Royce zaproponował pojęcie "modelu kaskadowego".