Processi primari
Fasi operative di sviluppoPer ciclo di vita operativo di un progetto software si intendono le fasi di raccolta dei requisiti, progetto, sviluppo e test, integrazione, consegna, avviamento, manutenzione.
Riportiamo di seguito una brevissima introduzione ad ogni fase, rimandando poi alle pagine successive per un maggiore dettaglio.
Non esiste un modello di ciclo di vita valido in assoluto per tutte le organizzazioni: il processo di sviluppo deve essere il più idoneo in base al tipo di prodotto da sviluppare ed alle caratteristiche dell’organizzazione.
La scelta di una norma di riferimento non deve condizionare nell’adozione di tecnologie, ambienti di sviluppo, strumenti software.
Modello a cascata o modello iterativo
Nella interpretazione più classica (o più "didattica") si descrive generalmente lo sviluppo del software secondo un ciclo di vita "a cascata", nel quale le fasi di analisi dei requisiti, progettazione, codifica e test di modulo, integrazione e test di integrazione si susseguono in forma lineare. Ognuna dovrebbe "idealmente" attivarsi quando la precedente si è definitivamente conclusa.
Questo tipo di approccio presenta alcune controindicazioni:
- molto spesso non tutti i requisiti sono stabili all’inizio del progetto,
- non tutti gli aspetti del progetto sono affrontabili e risolvibili assieme per proseguire contemporaneamente verso il passaggio successivo,
- non sempre è possibile attendere di aver risolto l’ultimo problema di una fase per iniziare la fase successiva (in molti casi il cliente vuole "vedere qualcosa" poco tempo dopo la firma del contratto.
Una soluzione del problema è offerta da un modello misto (modello "iterativo"), che prevede la successione di più cicli, in forma completa o parziale, prima di giungere al rilascio definitivo e completo del prodotto.
Specifica dei requisiti
Un requisito è in generale una condizione o una capacità alla quale il sistema dovrà risultare conforme.
La raccolta dei requisiti deve essere condotta assieme al cliente e deve produrre un documento concordato nel quale vengono fissate le caratteristiche richieste al sistema da implementare.
I requisiti possono riguardare:
- caratteristiche funzionali, relative ad attività che il software dovrà implementare,
- caratteristiche non funzionali (prestazionali, qualità, regole di business, vincoli di progettazione e implementazione, interfacce esterne).
Al termine dovrà essere prodotto un documento scritto di specifica dei requisiti.
Progetto
Il progetto costituisce la risposta tecnica alle richieste del cliente.
In base alle metodologie e tecnologie di sviluppo utilizzate saranno analizzate e definite:
- l’architettura di alto livello, comprensiva delle interfacce esterne e della individuazione dei moduli principali interni,
- il progetto di dettaglio, nel quale saranno studiati aspetti di
. disegno dell’interfaccia utente,
. individuazione di classi e oggetti componenti e delle reciproche interfacce
. disegno del database
. definizione degli algoritmi principali.
Al termine dovrà essere prodotto un documento scritto di progetto.
Implementazione
La fase di sviluppo non prevede particolari indicazioni dalle procedure della qualità, salvo la raccomandazione di utilizzare criteri e standard di codifica comuni almeno all’interno dello stesso progetto.
Viene considerata parte della fase di implementazione anche l’attività di test di modulo.
Test e collaudo
Nella fase di integrazione e test di integrazione si procede all’assemblaggio dei moduli sviluppati ed al test finale del sistema.
Il test viene poi ripetuto presso il cliente nel corso delle procedure delle eventuali procedure di collaudo formale.
Manutenzione
Il sistema installato presso il cliente può presentare necessità di successive revisioni e rilasci.
In particolare le tipologie di intervento possono riguardare:
- manutenzione correttiva, per la risoluzione di errori riscontrati nel codice,
- manutenzione adattiva, per adeguarlo a modifiche non sostanziali nell’ambiente di elaborazione o nei dati,
- manutenzione evolutiva, per adeguarlo a nuove necessità del cliente.
Le attività di manutenzione devono essere svolte secondo procedure prestabilite.