Modello di sviluppo del software
# Modello di sviluppo del software

In informatica un modello di sviluppo software è il principio teorico che indica il metodo da seguire nel progettare e nello scrivere un programma. Il modello è alla base di una metodologia di sviluppo. I modelli di sviluppo software simulano la realtà per vedere cosa accadrebbe e al fine di ridurre gli errori e ottimizzare prestazioni e risultati.

## Storia

Il primo modello in ordine storico è il Modello a cascata, cui si deve la definizione delle fasi-chiave. Nacque negli anni 60 e trovò massima applicazione negli anni settanta, tuttavia mostrò i suoi limiti dovuti ad una rigidità e linearità dei processi che provocavano una lievitazione dei costi soprattutto di manutenzione.

Il modello a cascata ha poi subito diversi cambiamenti che hanno portato prima al modello evolutivo, che aggiunge al modello a cascata una prima fase più ridotta nota come prototipazione in grado di ottenere migliori requisiti, e il modello trasformazionale, che punta ad un'analisi dei requisiti sempre più approfondita e migliorata in grado di produrre alla fine un prototipo funzionale.

Un altro modello è il Modello a spirale, poco conosciuto in Italia, ma molto vivo negli Stati Uniti d'America, e l'Extreme Programming, spesso abbreviato in XP.

Da questi metodi iterativi ed incrementali si è evoluta tutta una famiglia di metodi che appartengono alla metodologia Agile (Scrum, SAFe, LeSS, DSDM, DAD, ecc.).

### Elenco di modelli e meta-modelli di sviluppo

* Modello a cascata
* Modello evolutivo
* Modello trasformazionale
* Modello a spirale
* Modello a fontana
* Prototipazione
* Metodologia agile
* Test driven development
* Extreme Programming
