analisi-disegno.com
Descritto per la prima volta da Walker Royce nel 1970. Testo originale: "Managing the Development of Large Software Systems", pubblicato in Proceedings of IEEE Wescon (August 1970), e in "International Conference on Software Engineering - Proceedings of the 9th Conference - 1987, Monterey".
Vale la pena leggere il testo di Royce, perché evidenzia il fatto che lui, a differenza di molti seguaci dei decenni successivi, era consapevole dei limiti del modello e proponeva dei correttivi, purtroppo raramente applicati.
La figura riportata sotto (un activity diagram UML) non rappresenta la versione originale del processo, ma una delle sue possibili derivazioni.

Nel modello a cascata, il progetto è organizzato in una sequenza di fasi, ciascuna delle quali produce un output che costituisce l'input per la fase successiva. Ad esempio, la fase di definizione dei requisiti produce un output, la "specifica dei requisiti", che entra in input alla fase di analisi. L'analisi produce la "specifica di analisi", che entra in input alla fase di design. E così via.
All'inizio di ciascuna fase si verifica la qualità del lavoro effettuato nella fase precedente, con possibilità di ricicli per modifica.
È probabilmente il processo di sviluppo software più diffuso al mondo, anche perché segue il modello della catena di montaggio tipico della produzione industriale della prima metà del novecento. Ma è considerato irrimediabilmente obsoleto, ed è raro trovare esperti che lo raccomandino ancora. I settori economici competitivi e le organizzazioni attente ai costi, per cui la qualità e produttività dei progetti di sviluppo software sono più critici hanno da tempo abolito la pratica dello sviluppo a cascata, in quanto troppo rischioso.
È semplice da spiegare e da capire, quasi intuitivo (anche per chi non ha mai sviluppato software): prima si raccolgono tutti i requisiti, poi si fa tutta l'analisi, poi tutto il design, poi tutta la codifica, ...
È semplicissimo organizzare il piano di progetto (non ci sono dubbi sulla sequenza delle fasi).
Si adatta bene a logiche organizzative e politiche del personale basate su una divisione del lavoro accentuata.
È altamente rischioso, in quanto non funziona. Le prime verifiche concrete, in termini di risultati visibili e comprensibili da committenti e utenti, arrivano verso la fine del progetto, al termine della fase di test. E quando ci si accorge che qualcosa non funziona , ossia che il sistema realizzato non corrisponde ai requisiti, impliciti ed espliciti, i tempi ed i costi del progetto aumentano in misura notevole.
Si basa su alcune assunzioni errate:
Pagina principale sui processi di sviluppo software
analisi-disegno.com , servizi e materiali per lo sviluppo dei sistemi software, a cura di Adriano Comai.