Fasi
È possibile suddividere lo sviluppo di un software in 8 macro-fasi principali:
1) Studio di Fattibilità - In questa fase si devono comprendere i requisiti ad alto livello, valutare i costi pianificare le attività/risorse del progetto e individuare l’ambiente di programmazione (hardware/software)
2) Raccolta dei Requisiti - In questa fase si richiedono i requisiti presso i vari attori, viene stesa una sintesi iniziale e poi approfondimento dei requisiti.
3) Analisi concettuale dei Requisiti - Viene prodotto lo schema concettuale dell’applicazione, che definisca in dettaglio cosa
l’applicazione dovrà realizzare, indipendentemente dal come
.
Schema concettuale
Lo schema concettuale è un modello logico-matematico dell’applicazione, e sarà la base da cui partire per le successive attività di progettazione (è matematico perché le parole possono essere ambigue la matematica no)
- Modella i dati di interesse, le loro articolazioni, interrelazioni ed evoluzioni possibili
- Specifica i servizi computazionali che l’applicazione dovrà offrire ai diversi utenti
4) Progetto (design) dell’applicazione - Viene specificato come
l’applicazione dovrà realizzare le sue funzioni, ovvero viene definita la struttura del progetto e vengono scelte le tecnologie e le Strutture Dati utilizzate.
5) Realizzazione (implementazione) dell’applicazione - Consiste nella scrittura il codice e della documentazione.
6) Integrazione dei componenti e verifica dell’applicazione - Le diverse componenti dell’applicazione, sviluppate separatamente, vengono integrate e si valuta se l’applicazione svolge correttamente, completamente ed efficientemente i suoi compiti.
7) Messa in esercizio dell’applicazione - L’applicazione viene messa in esercizio ed inizia a funzionare.
8) Manutenzione dell’applicazione - L’applicazione viene monitorata durante l’esercizio e correzioni ed aggiornamenti vengono prodotti se necessari.
Metodo
Solitamente in situazione accademica e didattica si utilizza il modello a cascata (waterfall model) dove ogni attività inizia quando termina quella precedente.
Nel mondo reale si utilizza un modello a spirale anche detto iterativo. Questo modello permette di partire da versioni più semplice e “agili” che poi man mano diventano sempre più complessi e vicine all’obbiettivo finale.
Questo permette di eseguire varie fasi in parallelo, ad esempio, nel tempo t0
vengono stilati i requisiti per la prima versione del software, nel tempo t1
gli analisti iniziano a produrre il modello della versione 1
, ma possono essere nel mentre stilati i requisiti della versione 2
, al tempo t3
si raccolgono i requisiti per la versione 3
, si produce il modello della versione 2
, si progetta la versione 1
.
Schema preso dagli appunti di @CasuFrost