Claudio Dionisio
Claudio Dionisio
CEO
Maggio 2023
Tempo di lettura: 8 minuti

Ciclo di Vita del software

Processo di produzione del software

Il ciclo di vita del software definisce la sequenza con cui affrontare le attività di produzione di un software dalla definizione dei requisiti fino al ritiro. 

Le principali attività della produzione di un software possono variare in funzione del modello utilizzato e sono: 

  • Stato Fattibilità 
  • Analisi dei requisiti 
  • Definizione Architettura 
  • Produzione del codice e test 
  • Integrazione e test 
  • Rilascio e Manutenzione 

 

Stato di fattibilità: Consiste in una simulazione del processo di sviluppo, ipotizzare i costi e le risorse previste e verificare la capacità di sviluppo. Il risultato dello studio di fattibilità è un documento contenete la definizione e del problema, le soluzioni alternative, risorse umane e tecniche, costi e data di consegna. 

Analisi dei requisiti: Lo scopo dell’attività è capire gli obiettivi del sistema, documentare i requisiti da soddisfare, specificare in termini di qualità del software funzionalità, prestazioni, facilità d’uso, portabilità  

Architettura: Descrizione del sistema in termini di componenti, delle loro interfacce e delle relazioni esistenti. Per documentare l’architettura di solito si usa UML. 

Produzione del codice e test: Definizione dello standard, definizione delle intestazioni delle unità e dei commenti. Le convenzioni per nominare le variabili, le funzioni e le classi. Il numero massimo di linee per ogni componente etc. Definizione dello standard di test tramite piani, la definizione del criterio di test (black o white box) debug, ispezioni di codice, etc 

Integrazione e test del Sistema: Nella maggioranza dei casi lo sviluppo avviene in modo incrementale ed i compimenti vengono testati durante lo sviluppo. Il test di integrazione avviene su un insieme di moduli già testati singolarmente ed avviene in modo incrementale fino ad arrivare all’insieme di tutti i moduli. Raggiunto la stato finale si procede a testare l’intera applicazione (alpha test). Si procede poi alla distribuzione ad un gruppo limitato di clienti per eseguire ulteriori test di utilizzo (beta tester) e si analizza il feed Back ricevuto 

Rilascio e manutenzione: La distribuzione del software a tutti i clienti  viene definita Rilascio Finale.  La manutenzione rappresenta l’insieme di attività eseguite per modificare il sistema dopo l’installazione 

I parametri di qualità

Correttezza: Equivalenza tra il software e le sue specifiche 

Affidabilità: La probabilità che un software operi come atteso in un intervallo di tempo. 

Robustezza: Che si comporta in modo accettabile anche in circostanze non previste. La quantità di codice che affronta i requisiti di robustezza dipende dall’applicazione. Per i firmware, che ricevono dati dai sensori, è di più semplice gestione rispetto ad un software che riceve dati da un utente. 

Usabilità: Un software è usabile se i suoi utenti lo reputano facile da usare. L’usabilità di un sistema dipende dalla coerenza della sua interfaccia con l’operatore. In un Firmware l’usabilità si basa sul grado di Facility di configurazione del software al contesto hardware. 

Verificabilità: La verifica può essere svolta con test o con analisi formale. Per meglio eseguire i test è preferibile adottare metodi di programmazione modulare e codice strutturato. 

Manutenibiltà: Dopo il rilascio iniziale le modifiche effettuate sul software per eliminare errore o per migliorare il software stesso sono definite come attività di manutenzione. Le attività di manutenzione si dividono in: 

  • Correttiva, rimozioni di errori; 
  • Adattiva, richieste di cambiamento, cambiamento dell’ambiente 
  • Perfettiva, aggiungere nuove funzioni e/o migliorare la qualità 

 

Riparabiltà: Capacità del software di rilevare rapidamente i difetti e di ridurre i tempi di riparazione. La tecnica è quella di utilizzare parti di software standard già in fase di progettazione.