Processo di analisi, progettazione, sviluppo e test di un progetto software
Il processo software è quell’insieme organizzato di pratiche (attività) che sovrintendono alla costruzione del prodotto da parte del team di sviluppo utilizzando metodi, tecniche, metodologie e strumenti. Esso è suddiviso in varie fasi secondo uno schema di riferimento: il ciclo di vita del software. Il ciclo di vita del software descrive perciò lo schema secondo cui sono organizzate le varie attività base (fasi) dello sviluppo software:
- Specifiche del software,
- Progettazione ed Implementazione,
- Convalida,
- Evoluzione.
Bisogna notare che durante la vita del sistema è prevista una singola esecuzione di tutte le fasi di sviluppo per il progetto software.

ANALISI DEI REQUISITI
- Dominio del progetto software che si vuole realizzare
- Specifica dei requisiti funzionali e non funzionali utilizzando il modello FURPS+ (specifica dello scopo e dei vincoli e ipotesi semplificatrici sul sistema)
- Stima dei rischi, dei costi e della tempistica del progetto (studio di fattibilità)
- Organizzazione del progetto (organizzazione del personale)
- Diagramma dei casi d’uso (funzionalità) con relativi scenari e diagramma delle classi (senza attributi)
In altre parole, durante l’analisi del dominio si analizza testualmente il dominio di interesse per sapere l’ambiente del sistema e cosa il sistema deve essere in grado di fare. Dall’analisi del dominio si tirano fuori i requisiti (funzionali e non funzionali) che vengono specificati attraverso il modello FURPS+.
PROGETTAZIONE
- Progetto dell’architettura del sistema
- Progetto dei componenti utili per il sistema (database, librerie, componenti da riutilizzare)
- Progetto di dettaglio
- Rifinitura del diagramma dei casi d’uso (UML) e del diagramma delle classi (aggiunta attributi)
- Diagramma degli stati
- Diagramma di sequenza
- Diagramma delle componenti e di deployment
SVILUPPO
- Implementazione del codice per le funzionalità descritte nei casi d’uso
- Implementazione della grafica
- Integrazione dei moduli creati con i moduli già esistenti
TEST
- Scelta dei test da adottare per la verifica
- Verifica del prodotto ottenuto attraverso i diversi test
- Commento dei risultati forniti dal test:
- In caso di successo il prodotto software può essere rilasciato.
- Il caso di fallimento il prodotto software deve essere opportunamente modificato.