Attività di processo

Spieghiamo ora le attività di processo comuni a tutti i modelli di processo software.

Wallpaper software engineering

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:

  1. Progettazione dell’architettura;
  2. Specifiche astratte;
  3. Progettazione dell’interfaccia;
  4. Progettazione dei componenti;
  5. Progettazione delle strutture dati;
  6. 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:

  1. Test dei componenti: vengono testati i componenti individualmente per verificare il corretto funzionamento;
  2. Test del sistema: si verifica che i componenti interagiscano fra loro correttamente, e si usano dati simulati;
  3. 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.