title: Modello di sviluppo del software
text: # 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
  