Temat
- #Stałe wymagania
- #Rozwój oprogramowania
- #Model kaskadowy (Waterfall)
- #Dokumentacja
- #Sekwencyjne wykonywanie
Utworzono: 2024-05-14
Utworzono: 2024-05-14 09:50
Model kaskadowy (Waterfall)
Model kaskadowy (Waterfall Model) jest jedną z najstarszych metodologii w rozwoju oprogramowania, która polega na podejściu sekwencyjnym do realizacji projektu poprzez szereg kolejnych etapów. W tym modelu każdy etap jest realizowany w całości przed przejściem do następnego, co przypomina sposób, w jaki woda spada kaskadowo z góry na dół. W tym artykule przyjrzymy się bliżej definicji modelu kaskadowego, jego głównym cechom, zaletom i wadom, a także przykładom zastosowań.
Model kaskadowy to metodologia, która polega na liniowym przechodzeniu przez kolejne fazy cyklu życia rozwoju oprogramowania (SDLC: Software Development Life Cycle). Model ten został po raz pierwszy przedstawiony w latach 70. XX wieku przez Winstona W. Royce'a i od tego czasu jest stosowany w wielu projektach. Model kaskadowy obejmuje następujące etapy:
1. Analiza wymagań (Requirements Analysis): Etap, na którym zbierane są i precyzyjnie definiowane wymagania projektu.
2. Projektowanie (Design): Etap, na którym wykonywana jest architektura i szczegółowy projekt oprogramowania.
3. Implementacja (Implementation): Etap, na którym tworzony jest kod źródłowy i rozwijane jest oprogramowanie.
4. Testowanie (Test): Etap, na którym testowane jest opracowane oprogramowanie w celu wykrycia i usunięcia błędów.
5. Wdrożenie (Deployment): Etap, na którym oprogramowanie jest wdrażane w rzeczywistym środowisku operacyjnym.
6. Konserwacja (Maintenance): Etap, na którym wdrożone oprogramowanie jest utrzymywane i ulepszane.
Podobnie jak na powyższym obrazku, po zakończeniu planowania i zatwierdzeniu, rozpoczyna się projektowanie. Po zakończeniu projektowania i zatwierdzeniu, następuje etap rozwoju, a po jego zakończeniu i zatwierdzeniu, przeprowadzane są testy. Jeśli nie ma błędów, następuje uruchomienie. W fazie planowania może dojść do wielu zmian, podobnie jak w fazie projektowania.
Jednak, podobnie jak woda płynie z góry na dół, w przypadku rozpoczętego procesu rozwoju, nie dokonuje się nagłych zmian planowania lub rozwoju w celu modyfikacji go.
1. Jasna struktura: Etapami są wyraźnie określone, co ułatwia monitorowanie postępów.
2. Dokumentacja: Dokumentacja na każdym etapie jest szczegółowa, co ułatwia śledzenie postępów i decyzji podejmowanych w projekcie.
3. Łatwość zarządzania: Planowanie i harmonogramowanie są łatwe, a na każdym etapie można określić jasne cele.
1. Trudność wprowadzania zmian: Na wczesnym etapie wymagania są ustalone, co utrudnia późniejsze zmiany i generuje wysokie koszty.
2. Zależność między etapami: Nie można przejść do kolejnego etapu przed zakończeniem poprzedniego, co może prowadzić do opóźnień w harmonogramie.
3. Niski poziom zaangażowania klienta: Po wczesnych etapach zaangażowanie klienta jest ograniczone, co może prowadzić do sytuacji, w której końcowy produkt nie spełnia jego oczekiwań.
Jest to terminologia używana w kontekście omawiania metod rozwoju, co oznacza, że rozwój odbywa się zgodnie z ustalonymi krokami i procedurami.
❗Dodatkowe informacje, które warto znać
Przeciwieństwem tego podejścia jest metoda zwinna (Agile), która polega na uruchomieniu prototypu i ciągłym wprowadzaniu poprawek oraz dodawaniu nowych funkcji w trakcie eksploatacji. Metoda ta jest często stosowana w przypadku tworzenia własnych usług, ponieważ pozwala na zwiększenie jakości usługi i ciągłe dostosowywanie jej do potrzeb użytkowników, przy założeniu możliwości zapewnienia odpowiedniej liczby pracowników do ciągłych modyfikacji.
W przypadku tworzenia usług dla klientów zewnętrznych (SI na zlecenie), stosowanie metody zwinnej wiązałoby się z koniecznością płacenia przez klienta za wynagrodzenia pracowników i koszty operacyjne (czynsz, media itp.) co miesiąc. W praktyce jednak projekty są zazwyczaj realizowane w określonym czasie, np. 2 miesiące, 5 miesięcy, z ustalonym budżetem, a nie w formie comiesięcznych płatności, co jest rzadkością.
Komentarze0