Modello di sviluppo software che segue una progressione lineare attraverso le fasi di concepimento, inizializzazione, analisi, design, costruzione, test, implementazione e manutenzione. Questo modello è ben strutturato ma meno flessibile rispetto agli approcci Agile, rendendolo più adatto a progetti con requisiti ben definiti e immutabili.