Model kaskadowy , czyli „ waterfall ” w języku angielskim, to organizacja działań projektu w postaci faz liniowych i sekwencyjnych, gdzie każda faza odpowiada specjalizacji zadań i zależy od wyników poprzedniej fazy. Obejmuje wymagania, fazy projektowania, wdrażania i uruchomienia.
Model kaskadowy to cykl życia projektu wywodzący się z przemysłu wytwórczego i sektora budowlanego , w którym wstępny projekt jest konieczny, biorąc pod uwagę duże ograniczenia materiałowe i wysokie koszty związane z wprowadzanymi zmianami projektowymi. Jest stosowany w szczególności w dziedzinach inżynierii i rozwoju oprogramowania .
Pierwsza prezentacja opisująca model fazowy rozwoju oprogramowania została przedstawiona przez Herberta D. Beningtona na „Symposium on Advanced Programming Methods for Digital Computers” na 29 czerwca 1956. Artykuł został osadzony na tle rozwoju systemu wojskowego o nazwie SAGE . Opisał proces rozwoju z początkową fazą planowania, kilkoma fazami specyfikacji, fazą programowania („kodowaniem”), kilkoma kolejnymi fazami testowania i końcową fazą walidacji. Artykuł został ponownie opublikowany w 1983 r. Z przedmową Beningtona, która precyzowała, że podział na fazy odpowiada logice specjalizacji handlowej i która podkreśla, że pominął w działaniach prototyp przed realizacją projektu.
Za pierwszy opis modelu wodospadu uważa się często opis artykułu Winstona W. Royce'a z 1970 roku. W artykule przedstawiono graficzną reprezentację wodospadu, jednak nigdy nie używano tego terminu. Jak na ironię, post Royce'a był krytyką wad modelu. W ten sposób termin ten stał się powszechny.
Pierwsze udokumentowane cytowanie terminu „wyczyn” pojawia się w artykule Bell i Thayer z 1976 roku, w którym Royce przypisuje to określenie.
W 1985 roku Departament Obrony Stanów Zjednoczonych przyjął podejście kaskadowe w swoim standardzie DOD-STD-2167A, który określa relacje z podwykonawcami w zakresie tworzenia oprogramowania i określa, że „wykonawca wdroży cykl rozwoju oprogramowania obejmujący sześć następujących faz : projekt wstępny, projekt szczegółowy, programowanie, testowanie jednostkowe, integracja i testowanie ”. Ten standard zostanie zastąpiony w 1994 roku specyfikacją MIL-STD-498, która nie odnosi się już do modelu kaskadowego, a zamiast tego promuje ewolucyjny proces pozyskiwania oraz iteracyjne i przyrostowe metody rozwoju.
Model kaskadowy obejmuje następujące fazy i rezultaty:
Każda faza nie rozpoczyna się, dopóki wyniki poprzedniej fazy nie zostaną zatwierdzone. Mocną stroną tego podejścia jest zapewnienie istnienia dobrze ustrukturyzowanej dokumentacji.
Istnieje kilka odmian tego modelu, w tym dodanie wcześniejszej fazy planowania, wstępna realizacja prototypu, dekompozycja fazy walidacji oraz powrót do poprzednich faz w przypadku wykrycia usterek na późniejszym etapie.
W tworzeniu oprogramowania faza projektowania określa architekturę systemu, implementacja odpowiada przede wszystkim czynnościom programistycznym , a faza walidacji w dużej mierze obejmuje testy.
W swoim przełomowym artykule WW Royce krytykuje model wodospadu. Zauważa, że każda faza musi koniecznie mieć możliwość powrotu do poprzedniej fazy w przypadku zaobserwowanych błędów w dalszej części (np. W przypadku błędu wykrytego podczas testów konieczny jest powrót do fazy programowania). Ponadto stwierdza, że wymagania i projekt mają wpływ na wszystkie dalsze etapy, więc często konieczny jest powrót do tych etapów. Na koniec zaleca użycie wstępnego projektu. Jego poprawiony model pozostaje jednak zbliżony do oryginalnego modelu.
Model wodospadu jest oparty na wymaganiach wyrażonych na początku projektu. Jednak wymagania i potrzeby mogą być niekompletne lub niewystarczającej jakości (niejednoznaczność, niespójność itp.). Ponadto klient może nie być w pełni świadomy swoich wymagań, dopóki nie zobaczy, że oprogramowanie działa. Może to prowadzić do zmiany projektu, przeprojektowania części oprogramowania i ponownego przetestowania produktu, a tym samym zwiększenia kosztów. Dlatego model wodospadu jest szczególnie przydatny w projektach, których wymagania są dobrze zrozumiałe i solidne, realizowane przy użyciu dobrze opanowanej technologii.
Uporządkowanie faz przez specjalizację działania, zalecane przez model kaskadowy, jest źródłem sztywności w organizacji pracy, niewystarczająco promuje zaangażowanie klienta w całym projekcie i zniechęca do uwzględniania zmian. Ten ostatni punkt wyjaśnia pojawienie się w latach 80. stopniowego podejścia do rozwoju.
Cykl V wykorzystuje rozkład fazowy podobny do kaskady, ale z silniejszą walidacją. Odbywa się to w kilku odrębnych etapach, z których każdy weryfikuje za pomocą odpowiednich testów zgodność jednej z poprzedzających faz. Graficzna prezentacja modelu reprezentuje następnie V, gdy fazy walidacji są porównywane z walidowanymi fazami.
Autorzy ujednoliconego procesu uznają zainteresowanie sekwencyjnym etapowaniem projektu. Ale zamiast sztucznie rozdzielać czynności według faz, zalecają zintegrowane działania w ramach faz zorganizowanych według stopnia dojrzałości produktu: tworzenie („ incepcja ” w języku angielskim), rozwój, konstruowanie i przejście oraz wycinanie każdej z tych faz w kilku iteracjach .