Qualità del software

Definizione di qualità

Secondo ISO, la qualità è l'insieme delle caratteristiche di un'entità che ne determinano la capacità di soddisfare esigenze espresse e implicite. Valutare la qualità del software serve sia a chi lo ha realizzato (per migliorarlo), sia a chi lo usa (per avere garanzie), sia a chi valuta (per imparare). Tuttavia, quello di qualità è un concetto ambivalente: può riguardare la conformità ai requisiti (visione intrinseca della qualità), la soddisfazione del cliente (visione relativa) o la misura del livello di qualità (visione quantitativa); ad ogni modo, tutte queste sono aree in cui interviene il "sistema qualità".

Il sistema qualità

ISO definisce il "sistema qualità" come la struttura organizzativa, le responsabilità, le procedure, i procedimenti e le risorse messe in atto per il perseguimento della qualità. Questo sistema gestisce la qualità in tre ambiti:

Il sistema qualità è fissato nelle Norme di Progetto (il Piano di Qualifica fissa invece gli obiettivi di qualità: i piani fissano solo obiettivi e strategie per raggiungerli).

Modelli della qualità

Per uniformare la percezione e la valutazione della qualità, è bene che committenti e fornitori si accordino su un modello da seguire per la qualità. Esistono vari modelli della qualità; ognuno di essi definisce le caratteristiche rilevanti che deve avere un prodotto "di qualità" e organizza tali caratteristiche in una struttura logica.

Ad esempio, ISO/IEC 9126 definisce 7 caratteristiche principali (suddivise poi in 31 sotto-caratteristiche):

Oltre a descriverle, il modello specifica anche come misurarle, cioè assegna ad ogni caratteristica una metrica (che è un modo per dare un significato a dei valori). Un modello è quindi uno strumento di definizione e di valutazione:

Sempre in ISO/IEC 9126, vengono proposte tre visioni della qualità:

Mentre le visioni interna ed esterna si riferiscono al prodotto software, la visione in uso si riferisce agli effetti di tale prodotto.

Qualità nel ciclo di vita

Possiamo individuare una catena di dipendenze tra le varie visioni della qualità: la qualità di un processo influenza gli attributi della qualità interna, che influenza gli attributi della qualità esterna, che influenza gli attributi della qualità in uso.

È bene che i seguenti aspetti siano il meno distante possibile tra loro:

  1. qualità obiettivo;
  2. qualità richiesta;
  3. qualità progettata;
  4. qualità stimata;
  5. qualità consegnata.

Il committente ha responsabilità sulle prime due; il fornitore su tutte quante tranne la prima.

Metriche e misurazioni

Una metrica è un modo per dare un significato a dei valori, quindi è l'interpretazione di un sistema di unità di misura. Una misurazione quantitativa è l'uso di una metrica per assegnare un valore su una scala predefinita.

Le metriche software permettono di quantificare sia un prodotto (e quindi predire i suoi attributi) sia un processo (al fine di monitorarlo e migliorarlo).

L'uso di una metrica assume che:

La selezione delle metriche (e la scelta dei criteri di accettazione) parte dall'analisi dei requisiti di qualità e dei vincoli di costo. Dopodiché:

  1. una volta selezionate le metriche, si può procedere alla misurazione;
  2. poi si passa alla valutazione (che è una verifica quantificata);
  3. e infine viene l'accettazione — basandosi, appunto, sui criteri di accettazione scelti.