Waterfall mudel - JOstapjuk/Konspeekt_Agiil GitHub Wiki
Waterfall mudel
-
Definitsioon oma sõnadega
Waterfall ehk "kosk" mudel on lineaarne ja järjestikune arendusmudel, kus iga projektietapp tuleb lõpetada enne, kui liikuda järgmise juurde. Iga etapp on selgelt määratletud ja täidetakse järjestuses, nagu vee voolamine juga kaudu.
-
Peamised omadused
- Lineaarne lähenemine – Iga etapp järgneb teisele, kuna üks etapp peab olema lõppenud enne järgmise alustamist.
- Selged etapid ja piiritletud ülesanded – Iga etapp on selgelt määratletud (nt nõuete kogumine, disainimine, arendamine, testimine jne).
- Kerge hallatavus ja jälgitavus – Kuna iga etapp on eraldi, on kergem jälgida projekti edenemist.
- Sõltumatus etappide vahel – Üks etapp ei sõltu eelnevast etappi tegurist, kuid järjekorras tuleb neid täita järjestikku.
-
Waterfall mudeli näide
Näiteks tarkvara arendamine, kus alguses määratakse täpselt kõik toote nõuded, siis liigutakse edasi disaini juurde, millele järgneb arendus, testimine ja lõpuks juurutamine. Kogu projekt liigub järk-järgult edasi iga etapi lõppedes.
-
Lisa skeem või joonis
-
Eelised
- Selged etapid ja eesmärgid – Iga etapp on määratletud ja arusaadav, mis muudab projekti kergemini hallatavaks.
- Kergesti hallatav ajakava – Kuna etapid on eelnevalt määratud, saab projekti aja ja ressursside planeerimist täpselt.
- Selged nõuded alguses – Projekti alguses selgitatakse välja kõik nõuded, mis aitavad vältida hilisemaid muudatusi.
-
Puudused
- Paindumatu muutuste suhtes – Kuna iga etapp peab olema lõppenud enne järgmise alustamist, on raske teha muudatusi juba alguses määratud nõuetesse.
- Hilinenud tagasiside – Lõplik tagasiside saadakse alles pärast kogu arenduse lõppu, mis võib tähendada, et vigu avastatakse hilja.
2. Waterfall mudeli etapid
-
Nõuded kogumine
Kõik toote nõuded ja funktsionaalsus on määratletud ja dokumenteeritud.
-
Süsteemi ja tarkvara disain
Luues süsteemi arhitektuuri ja toote disaini vastavalt nõuetele.
-
Arendus
Arendatakse kogu tarkvara vastavalt eelnevalt loodud disainile ja nõuetele.
-
Testimine
Testitakse loodud süsteemi, et tagada vastavus algsetele nõuetele ja disainile.
-
Juurutamine
Lõplik toode viiakse kasutusele.
-
Hooldus
Pärast juurutamist võib toode vajada hooldust ja täiendusi, kuid see ei ole osa algsest Waterfall mudelist.
3. Võrdlus: Waterfall vs Iteratiivne vs Inkrementaalne
- Tabel või nimekiri võrdluseks
Kriteerium | Waterfall mudel | Iteratiivne mudel | Inkrementaalne mudel |
---|---|---|---|
Lähenemine | Lineaarne ja järjestikune | Tsükliline (korduvad iteratsioonid) | Kasvav (funktsioonide lisamine samm-sammult) |
Tagasiside sagedus | Hiline tagasiside pärast kõiki etappe | Pidev tagasiside iga tsükli lõpus | Tagasiside igas inkrementis |
Sobivus projekti tüübile | Sobib projektidele, kus nõuded on selged ja muutumatud | Sobib projektidele, kus nõuded võivad muutuda | Sobib projektidele, kus toode peab pidevalt täiendama funktsioone |
Riskide juhtimine | Madal risk, kuna kõik etapid on määratud, kuid hilised muudatused on keerulised | Paindlik, kuid võib tekitada probleeme hilisemates iteratsioonides | Madalam risk, kuna iga inkrement on väiksem ja hallatav |
Funktsionaalsuse valmimise järjekord | Toodet ei ole täielikult valmis enne, kui kõik etapid on lõpetatud | Iga iteratsioon toob täiendusi ja toode saab pidevalt valmis | Funktsionaalsus valmib igas inkrementis, kuid kogu süsteem valmib alles pärast kõiki inkremente |
Waterfall Model
Definition in Your Own Words
The Waterfall model is a linear and sequential development methodology where each project phase must be completed before moving on to the next. Each stage is clearly defined and follows a strict order—like water flowing down a waterfall.
Key Features
-
Linear Approach
Each phase follows the previous one. A phase must be completed before the next begins. -
Clearly Defined Stages and Tasks
Each stage is well-documented and structured (e.g., requirements gathering, design, development, testing). -
Easy to Manage and Track
Because phases are separate, it's easier to monitor progress. -
Stage Independence
While the order is fixed, each phase can operate relatively independently based on completed prior steps.
Example of the Waterfall Model
Example: In software development, first all product requirements are clearly defined. Then the team moves on to design, followed by development, testing, and finally deployment. Each phase is completed fully before the next one starts.
Diagram
Advantages
-
Clear Stages and Goals
Each phase is well-defined and helps simplify project management. -
Manageable Schedule
Since the stages are fixed in advance, time and resources can be planned precisely. -
Defined Requirements from the Start
All requirements are identified up front, reducing scope changes later.
Disadvantages
-
Inflexible to Changes
It’s difficult to make changes once a phase is complete. -
Delayed Feedback
Feedback typically comes only after the product is fully developed, increasing the risk of late-stage problems.
Phases of the Waterfall Model
-
Requirements Gathering
All functional and non-functional requirements are identified and documented. -
System and Software Design
The system architecture and software design are created based on the requirements. -
Implementation (Development)
The software is developed according to the design specifications. -
Testing
The system is thoroughly tested to verify it meets the original requirements. -
Deployment
The finished product is delivered and implemented in the live environment. -
Maintenance
Post-deployment maintenance and updates may be needed, though it's not part of the original Waterfall model.
Comparison: Waterfall vs Iterative vs Incremental Models
Criteria | Waterfall Model | Iterative Model | Incremental Model |
---|---|---|---|
Approach | Linear and sequential | Cyclical (repeated iterations) | Growing (step-by-step functionality additions) |
Feedback Frequency | Late, after all stages are complete | Continuous, at the end of each iteration | Feedback available after each increment |
Best Fit Projects | Clear, fixed requirements | Projects where requirements may evolve | Projects needing constant updates and functionality add-ons |
Risk Management | Lower risk if requirements are stable, but changes are hard | Flexible but risks can arise in later cycles | Lower risk, as increments are small and manageable |
Function Delivery Order | Full product delivered only after all stages are complete | Product evolves with each iteration | Functional parts are delivered with each increment |