I Processi Software e le attività comuni
Attività di processo
Spieghiamo ora le attività di processo comuni a tutti i modelli di processo software.
Specifiche del software:
Si definiscono i servizi richiesti dal sistema e i vincoli all’operatività e allo sviluppo. Un errore in questa fase è critico perchè viene riportato in tutto il progetto. Le fasi sono:
- Studio di fattibilità
- Scoperta e analisi dei requisiti
- Specifica dei requisiti
- Convalida dei requisiti
Progettazione e implementazione del software
È la conversione delle specifiche in un sistema eseguibile. Il progetto è la descrizione del software che si deve implementare, dei dati, delle interfacce e degli algoritmi da usare. Questa fase può richiedere lo sviluppo di vari modelli a diversi livelli di astrazione, per scoprire gli errori e le omissioni degli strati precedenti. Le fasi si intrecciano e richiedono feedback da uno stadio all’altro e delle conseguenti rielaborazioni:
- Progettazione dell’architettura;
- Specifiche astratte;
- Progettazione dell’interfaccia;
- Progettazione dei componenti;
- Progettazione delle strutture dati;
- Progettazione degli algoritmi.
In metodi di sviluppo agile, dopo aver progettato l’architettura, gli altri stadi sono incrementali e sono rappresentati con codice sorgente invece che con un modello di progetto. L’approccio opposto è quello dei metodi strutturati, si producono modelli grafici del sistema, che tramite degli strumenti vengono convertiti automaticamente in codice sorgente, tali modelli sono: modello ad oggetti, a sequenze, a transizione di stato, strutturale, a flusso di dati.
Durante l’implementazione sono previsti processi di test e debug: il primo stabilisce l’esistenza dei difetti, il secondo si occupa di localizzarli e correggerli.
Convalida del software (V&V – Verification and Validation)
Si mostra che il sistema è conforme alle specifiche e che soddisfa le aspettative del cliente. Per piccoli sistemi i sistemi vengono testati come un’unica unità monolitica, per sistemi grandi viene testato attraverso tre stadi:
- Test dei componenti: vengono testati i componenti individualmente per verificare il corretto funzionamento;
- Test del sistema: si verifica che i componenti interagiscano fra loro correttamente, e si usano dati simulati;
- Test di accettabilità: il sistema viene testato con le informazioni fornite dal cliente.
Lo sviluppo ed i test sono intrecciati poiché è lo stesso programmatore che testa al meglio il sistema conoscendolo in dettaglio. Il test di accettabilità è chiamato alpha test e per i sistemi personalizzati continuano finchè non sono concordi clienti e sviluppatori. I beta test invece, utilizzati per sistemi che devono essere venduti in larga scala, prevedono la consegna del sistema ai possibili clienti che accettano di provarlo per un breve periodo e per riferire i problemi riscontrati agli sviluppatori.
Evoluzione del software
Il software viene continuamente modificato in risposta ai cambiamenti dei requisiti e le necessità del cliente, quindi sviluppo e manutenzione possono essere visti come un tutt’uno.
Riferimenti
Libro: “Ingegneria del Software”, di Ian Sommerville, Casa editrice Pearson Italia S.p.a.
Rispondi