Quali parametri per valutare la qualità del software?

Quando sentiamo parlare di qualità di un software, si intende la misura secondo cui un prodotto soddisfa le aspettative, sia in quel che concerne il funzionamento e sia in quanto a struttura interna. Secondo le ricerche nel campo di ingegneria del software vi sono una serie di parametri, tecnologie e metodologie significative, che possono definire un software di qualità.

| I parametri |

I parametri che consentono di realizzare un software di qualità di suddividono in due famiglie, spesso correlabili tra loro:

Parametri esterni che definiscono la qualità percepita dall’utente:

  • Correttezza: ovvero la capacità del software di fare esattamente ciò che era stato progettato di fare, in alcune modalità di sviluppo “agili” si intende anche come soddisfazione del cliente;
  • Robustezza: si intende la misura secondo cui un software si comporta in modo ragionevole davanti a situazioni impreviste, come errori, interruzioni, ripristini o eccezioni di varia natura;
  • Affidabilità: il concetto di sistema affidabile vale a dire che vi sono poche probabilità che si verifichino gravi malfunzionamenti;
  • Efficienza: ovvero il fattore che misura la probabilità di deterioramento delle prestazioni o di un’inefficienza nell’utilizzo delle risorse;
  • Usabilità: l’usabilità è una qualità soggettiva che indica la semplicità del sistema lato utente;
  • Ecocompatibilità: un software ecocompatibile tiene conto nella progettazione, dell’impatto sull’ambiente.
  • Scalabilità: un sistema è scalabile se può essere adattato a contesti differenti e diversi gradi di complessità, senza la necessità di riprogettarne l’intera struttura.

Parametri interni che contraddistinguono la qualità di un software lato sviluppo:

  • Verificabilità: un software si può definire verificabile se le sue proprietà sono semplici da verificare.
  • Manutenibilità: ovvero la facilità con cui un sistema può essere modificabile e riadattabile.
  • Riparabilità: parametro dato dalla semplicità attraverso cui può essere effettuata la correzione degli errori.
  • Evolvibilità: capacità di un sistema di evolvere ed essere modificato.
  • Riusabilità: parametro molto vicino al concetto di evolvibilità, ma più orientato alla capacità di riutilizzare componenti di un software per realizzarne un altro.
  • Portabilità: un sistema con questa caratteristica è in grado di funzionare in ambienti differenti da quello nativo. L’applicazione di un sistema portabile consente un notevole vantaggio in termini economici, in quanto l’applicazione è trasportabile e usufruibile con semplicità in diversi ambienti.

La qualità di un software viene definita passo per passo nel processo di produzione e richiede la combinazione di diverse metodologie di progettazione e sviluppo.