Sommario:
Definizione - Che cosa significa Waterfall Model?
Il modello a cascata è un modello di processo di sviluppo software sequenziale che segue le seguenti fasi definite:
- Concezione
- Iniziazione
- Analisi
- Design
- Costruzione
- analisi
- Produzione / Implementazione
- Manutenzione
Utilizzando i passaggi comuni del ciclo di vita dello sviluppo del software (SDLC), il modello a cascata impone il passaggio alla fase successiva solo dopo il completamento della fase precedente. Il ritorno a una fase precedente è disapprovato a meno che non vi sia una chiara necessità di farlo.
Techopedia spiega il modello Waterfall
Come suggerisce il nome, le fasi nel modello a cascata procedono costantemente verso il basso. Queste fasi devono essere seguite in sequenza per essere efficaci e in alcuni settori - come l'edilizia e la produzione - il processo deve essere seguito.
In teoria, il modello a cascata sembra una buona pratica, ma è stato criticato da molti nel settore dello sviluppo del software. Innanzitutto, una fase SDLC non può essere perfezionata prima di passare alla fase successiva. Inoltre, nella sua forma letterale, questo modello manca di flessibilità per adeguamenti ai requisiti e al design, il che rende estremamente difficile per i programmatori e gli sviluppatori integrare gli adattamenti del design.
Tuttavia, ci sono alcuni principi sonori del modello a cascata che possono essere applicati allo sviluppo di software di successo. Questo è un elenco parziale di questi principi:
- I problemi possono essere risolti più facilmente se sono definiti più chiaramente.
- Grandi quantità di codice sono più rintracciabili se strutturate.
- Il lavoro umano dovrebbe sempre essere verificato.
- Un buon piano del ciclo di vita del progetto migliora il processo di sviluppo.
- La documentazione di sistema è un sottoprodotto del processo di sviluppo e non viene eseguita in seguito, come ripensamento.
Il modello a cascata è stato un primo tentativo di fornire struttura, metriche e controllo allo sviluppo di sistemi di applicazione complessi e di grandi dimensioni, generalmente sistemi mainframe.