nato per evitare i problemi relativi ai progetti troppo grandi e dispersivi
è un processo di sviluppo del software
è iterativo: si ripetono dei passaggi
è incrementale: ad ogni passaggio ottengo qualcosa di migliore
analisi → progetto → realizzazione → test (ciclicamente)
analisi del problema
progettazione
individuare lo stile di programmazione più utile (fare un ponte di legno o di acciaio?)
individuare il linguaggio che usa tale stile
individuare l'architettura della soluzione
individuare i mezzi (quanto tempo e quante persone?)
definire gli obiettivi
realizzazione o implementazione (fare il ponte nel materiale scelto)
ricercare soluzioni esistenti
personalizzare tali soluzioni
creare nuove soluzioni (generali e personalizzabili in futuro)
mettere insieme le soluzioni parziali
verifica
Sebbene le fasi dello sviluppo del software siano state numerate, non si deve credere che si tratti di un modello “a cascata”. Le fasi si influenzano a vicenda e può accadere, ad esempio, che per risolvere un problema sorto in fase di implementazione si apportino delle modifiche alla fase di progettazione.