2. SOMMARIO
Generalità
Studio di fattibilità
Raccolta dei requisiti
Progettazione
Implementazione
Test e collaudo
Manutenzione
3. GENERALITÀ
Un software di qualità non parte mai dalla codifica
I bug costano
Si deve conoscere cosa deve fare il software nel dettaglio
Esistono diversi metodi per creare software di qualità
Modello a cascata
Modello più rigoroso. Il software è ben progettato ma si perde più
tempo
Metodologia agile
Le persone sono più importanti degli strumenti (team di sviluppo
piccoli, autorganizzati, poliedrici e collaborazione stretta con il
cliente)
4. IL MODELLO A CASCATA
Le varie fasi si susseguono in
ordine
Viene prediletta più la
progettazione rispetto alla
realizzazione
Tempi molto lunghi
Una buona progettazione
rende molto semplice e
rapido la fase di sviluppo del
software
Un errore in una fase può
creare problemi nelle fasi
successive
Manutenzione
Test e collaudo
Realizzazione
Progettazione
Raccolta dei requisiti
Studio di fattibilità
5. STUDIO DI FATTIBILITÀ
Indica come deve essere fatto il progetto e cosa
usare
Il progetto può essere fatto da zero (greenfield
engineering)
Il progetto può contenere parti di altri progetti
(reengineering)
Uso di librerie o progetti open source
Si realizza solo l’interfaccia grafica (interface
engineering)
Software funzionante tramite linea di comando
6. RACCOLTA DEI REQUISITI
Definisce le varie versioni del
prodotto e le funzionalità di
ciascuna versione
Il software deve essere
«sviscerato» in tutte le sue fasi
Utilizza un linguaggio informale
comprensibile a tutti
Per gli scenari e i casi d’uso viene
utilizzato l’UML
http://www.slideshare.net/Giusep
peCramarossa/il-linguaggio-uml-
teoria-ed-esempi-pratici-sugli-
use-case-diagram
GENERALITÀ DEL
SOFTWARE
CONTESTO DI
BUSINESS
SVILUPPI FUTURI
STAKEHOLDER
DESCRIZIONE DELLE
FUNZIONALITÀ
SCENARI E CASI
D’USO
FURPS
STABILITÀ DEI
VINCOLI
DESCRIZIONE
DELL’ARCHITETTURA
VINCOLI LEGALI SICUREZZA
VERSIONI DEL
PRODOTTO
7. PROGETTAZIONE
Documento che descrive il programma da
implementare
Diagramma delle classi (UML)
Algoritmi
Diagrammi di flusso (flowchart)
Utilizza un linguaggio formale
Si possono progettare anche i test da fare (unit
testing) e le interfacce grafiche (mokeup)
8. IMPLEMENTAZIONE
Si scrive il programma e si documenta il codice
Si utilizzano uno o più linguaggi di programmazione
Per semplificare la codifica, vengono utilizzati gli IDE
(Integrated Development Environment)
Indentazione del codice
Autocompletamento
Debugging e deployment semplificato
9. TEST E COLLAUDO
Si verifica se il programma funziona correttamente
Test manuali (si prova l’applicazione)
Test automtici (unit testing)
Se tutti i test vanno a buon fine, si passa alla fase di
produzione
Se ci sono errori, si ritorna indietro
In quale fase si trova l’errore?
10. MANUTENZIONE
Si aggiungono funzionalità al programma e si risolvono i
problemi non trovati nella fase di collaudo (problemi
scovati dagli utenti)
Nessun software è perfetto
Per ogni modifica o aggiunta di funzionalità deve essere
aggiornata anche la documentazione
Changelog
Riaggiornamento dei documenti
Documentazione per l’utente