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.
In altre parole, il processo software è il modo in cui viene organizzato e praticato lo sviluppo dei sistemi software.
Chi lavora, individualmente o in gruppo, allo sviluppo o alla modifica di un software, ha un proprio modo di lavorare, di relazionarsi con i committenti e gli utenti, di organizzare il lavoro, di usare tecniche e strumenti. Ha un proprio processo di sviluppo. Basato sulla propria esperienza, sulla propria cultura, e sul contesto culturale ed organizzativo in cui si trova ad operare.
Ogni processo ha i propri pregi ed i propri limiti. Se è inadeguato può condurre al fallimento dei progetti, o comunque all’insoddisfazione dei clienti / utenti e degli stessi sviluppatori.
In generale, 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.