Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
I corsi di Ingegneria
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Anna Rita Fasolino » 22.Qualità del Prodotto Software


Che cos’è la Qualità del Software?

La qualità del software può essere definita come:

  • conformità ai requisiti funzionali e prestazionali enunciati esplicitamente,
  • agli standard di sviluppo esplicitamente documentati,
  • a caratteristiche implicite che è lecito aspettarsi da un prodotto.

Tre punti fondamentali:

  1. I requisiti sono il fondamento su cui misurare la qualità;
  2. Gli standard di qualità definiscono I criteri da seguire nello sviluppo software;
  3. Esistono requisiti impliciti (spesso taciuti) la cui assenza compromette la qualità del software.

Che cos’è la Qualità del Software? (segue)

Alcuni problemi nella definizione di qualità introdotta…

  • Le specifiche software sono in genere incomplete e spesso inconsistenti;
  • Alcuni requisiti di qualità sono difficili da specificare in maniera non ambigua;
  • Può esistere contrapposizione fra i requisiti di qualità attesi dal cliente (efficienza, affidabilità, etc.) e quelli dello sviluppatore (manutenibilità, riusabilità, etc.);
  • Alcuni requisiti di qualità sono difficili da valutare: non possiamo valutarli direttamente, ma soltanto indirettamente.

Il problema fondamentale della qualità del software

Non possiamo valutare la qualità del software in assoluto, ma solo alcune sue manifestazioni!

Ciò equivale a dire che non possiamo valutare direttamente la qualità del software, ma indirettamente, attraverso la valutazione di attributi che si correlano a questa, supponendo che la relazione tra la qualità e questi attributi sia valida!

Ad esempio: non posso misurare l’usabilità e la manutenibilità in assoluto, ma debbo riferirmi ad altri attributi misurabili correlati ad esse.

Abbiamo dunque bisogno di modelli di qualità condivisi!

Come caratterizzare la Qualità del Software?

La qualità di un prodotto software si caratterizza attraverso un insieme finito e definito di attributi:

  • ragionevolmente esaustivi
    • in modo che per una qualsiasi richiesta di caratteristica di qualità sia possibile associarvi un sottoinsieme degli attributi definiti in modo da poterla valutare;
  • privi di reciproche sovrapposizioni:
    • per evitare che più attributi riguardino la stessa caratteristica del software.

Modello di Qualità (MQ) del software

È un insieme di attributi del software che fornisce uno schema di riferimento che, con una opportuna distribuzione di pesi per ciascun attributo, va adeguato e tarato per la rappresentazione dei requisiti di qualità desiderati dal committente o posseduti dal software.

Struttura dei modelli di qualità

I modelli di qualità del software pubblicati in letteratura sono tipicamente gerarchici, a n livelli.

Il primo livello descrive un insieme di caratteristiche (proprietà), che, nel loro complesso, rappresentano la qualità del prodotto software, eventualmente secondo diversi punti di vista.

Le proprietà (in genere qualitative, astratte) sono precisate attraverso degli attributi misurabili, quantitativi (in genere da una combinazione di attributi).

Il grado di possesso che il software ha di questi attributi può essere valutato su una scala di riferimento, facendo ricorso ad opportune metriche ed a meccanismi di rating.

Esempio: I Modelli di McCall e Boehm

I primi modelli di qualità del software sono stati sviluppati negli anni ‘70 da McCall [McCall, J. A., Richards, P. K., and Walters, G. F., "Factors in Software Quality", Nat'l Tech. Information Service, no. Vol. 1, 2 and 3, 1977] e da B. Boehm [Boehm, Barry W., Brown, J. R, and Lipow, M.: Quantitative evaluation of software quality, International Conference on Software Engineering, Proceedings of the 2nd international conference on Software engineering, 1976]. Hanno un’architettura a più livelli. Ad es. McCall prevede:

  • Fattori, che descrivono il software da un punto di vista esterno, quello degli utenti; i fattori corrispondono a requisiti specificati dal cliente.
  • Criteri, che descrivono gli elementi su cui agiscono gli sviluppatori per soddisfare i requisiti del cliente.
  • Metriche, che servono a controllare che i criteri sviluppati corrispondano ai fattori specificati. Vengono utilizzate dagli auditors e/o dagli addetti alle verifiche.

Modello di McCall (1977)

Il Triangolo della Qualità secondo McCAll.

Il Triangolo della Qualità secondo McCAll.


I Fattori di Qualità nel Modello di McCall

Uso del prodotto

  • Correttezza
  • Affidabilità
  • Usabilità
  • Integrità
  • Efficienza

Revisione del prodotto

  • Manutenibilità
  • Flessibilità
  • Testabilità

Transizione del prodotto

  • Portabilità
  • Riusabilità
  • Interoperabilità

Modello di McCall (1977)

Uso del Prodotto: ciò che emerge quando si tiene il software in esercizio; i fattori di qualità che riguardano questo punto sono:

  • correctness (does it do what I want?): correttezza, almeno come la vede l’utente;
  • reliability (does it do accurately all the time?): affidabilità;
  • efficiency (will it run on my hardware as well as it can?): efficienza;
  • integrity (is it secure?): integrità, sicurezza; non ha nulla a che fare con l’affidabilità, pensiamo all’integrità dei dati, delle business rules, etc.;
  • usability (can I run it?): usabilità.

Modello di McCall (1977) (segue)

Revisione del Prodotto: ciò che emerge quando si modifica il software; i fattori di qualità che riguardano questo punto sono:

  • maintainability (can I fix it?): manutenibilità;
  • flexibility (can I change it?): flessibilità;
  • testability (can I test it?): testabilità;

Transizione del Prodotto: ciò che emerge quando si cambia piattaforma tecnologica; i fattori di qualità che riguardano questo punto sono:

  • portability (is it possible to use it on another machine?): portabilità;
  • reusability (is it possible to reuse some of the software?): riusabilità;
  • interoperability (is it possible to interface it with another system?): interoperabilità.

Fattori di Qualità come funzioni di Criteri

I fattori del Modello sono espressi in funzione di ulteriori caratteristiche di più basso livello (dette Criteri).

Ad esempio:

  • Correttezza = f (tracciabilità, coerenza, completezza)
  • Affidabilità = f (tolleranza all’errore, coerenza, accuratezza, semplicità)
  • Usabilità = f (operabilità, addestramento, comunicabilità)

Fattori di Qualità come funzioni di criteri (segue)

CORRETTEZZA
La correttezza del software è definibile come il grado di adesione alle sue specifiche e agli standard definiti sia nel processo produttivo che nel suo dominio di applicazione.

Correttezza = f (tracciabilità, coerenza, completezza)

Tracciabilità: il grado di reperibilità delle varie specifiche richieste dal software all’interno del codice, sia nell’ambiente di sviluppo che in fase di esercizio;
Coerenza: quegli attributi che si riferiscono all’uniformità delle tecniche utilizzate e delle notazioni adottate nei diversi componenti software, dai requisiti al codice (pensiamo a grandi sistemi, sviluppati da più gruppi oppure alle successive evoluzioni o operazioni di modifica);
Completezza: è la capacità del software di soddisfare tutti i requisiti per cui è stato sviluppato.

Fattori di qualità come funzioni di criteri (segue)

AFFIDABILITA’
L’affidabilità è definibile come la capacità del software di eseguire le sue funzioni senza insuccessi in uno specificato periodo di tempo (per insuccesso si intende anche il venir meno a livelli di precisione desiderati).

Affidabilità = f (tolleranza all’errore, coerenza, accuratezza, semplicità)

Tolleranza all’errore: il grado di affidabilità dei risultati ottenuti dal software in presenza di condizioni non normali;
Accuratezza: attributi che si riferiscono alla precisione nei calcoli e nei risultati in output;
Semplicità: se il software implementa le sue funzioni in maniera chiara e comprensibile.

Fattori di qualità come funzioni di criteri (segue)

EFFICIENZA
È il livello di utilizzo di risorse da parte del software (es. tempi di elaborazione e di comunicazione, spazio di memoria, ecc.);

Efficienza = f (efficienza di esecuzione, efficienza di memorizzazione).

Efficienza di esecuzione: il tempo impiegato per svolgere il compito richiesto;
Efficienza di memorizzazione: la quantità di spazio occupato in memoria dai dati.

Fattori di qualità come funzioni di criteri

INTEGRITA’
è il livello di capacità del software di operare senza insuccessi dovuti ad accessi non autorizzati a codice e/o dati in uno specificato periodo di tempo.

Integrità = f (controllo accessi, revisione accessi)

Controllo Accessi: quegli attributi del software che si riferiscono al controllo degli accessi ai dati ed al software;
Revisione Accessi: quegli attributi del software che consentono la revisione (riorganizzazione) degli accessi ai dati ed al software.

Fattori di qualità come funzioni di criteri (segue)

USABILITA’= f (operabilità, addestramento, comunicabilità)
è lo sforzo necessario per usare il software (addestramento ed esecuzione) (ad esempio familiarizzazione, preparazione degli input, esecuzione, interpretazione degli output).

Operabilità: quegli attributi del software che si riferiscono alla semplicità delle operazioni e delle procedure necessarie al controllo dell’attivazione ed esecuzione del software;
Addestramento: quegli attributi del software che ne consentono la familiarizzazione e ne supportano la transizione dal vecchio ambiente al nuovo sistema;
Comunicabilità: quegli attributi del software che supportano una agevole assimilazione degli inputs e degli outputs utili (interazione uomo macchina).

Fattori di qualità come funzioni di criteri (segue)

MANUTENIBILITA’
È definita come lo sforzo necessario per trovare e correggere un errore all’interno del codice dopo il rilascio in esercizio al cliente;

Manutenibilità = f (coerenza, semplicità, concisione, modularità, auto documentazione).

Concisione: la quantità di codice necessaria per adempiere ad una certa funzione;
Modularità: il grado di indipendenza dei vari moduli operanti all’interno del software;
Auto documentazione: la capacità del codice di spiegare le funzioni implementate.

Fattori di qualità come funzioni di criteri (segue)

PORTABILITA’
È la capacità di adattamento del software ad operare su nuovi ambienti di lavoro (nuovo hardware, software, configurazioni).

Portabilità = f (modularità, auto documentazione, indipendenza dalla macchina, indipendenza dal software).

Indipendenza dalla macchina: gli attributi che definiscono l’indipendenza del software dalla piattaforma hardware.
Indipendenza dal software: gli attributi che definiscono il grado di indipendenza del software dall’ambiente software in cui opera, quindi indipendenza dal sistema operativo, dai drivers, utility, ecc..

Fattori di qualità come funzioni di criteri (segue)

TESTABILITA’
E’ la facilità con cui è possibile effettuare il testing sull’applicazione;

Testabilità = f (semplicità,modularità, strumentazione, auto documentazione).

Strumentazione
È la facilità con cui è possibile monitorare il funzionamento del software e quindi verificarne possibili errori.

Le metriche nel Modello di McCall

McCall completò il quadro con un numero incredibile di metriche:

  • 25 per le specifiche,
  • 108 per la progettazione,
  • 157 per la codifica.

ed associando ad ogni fattore di qualità una valutazione data da una funzione lineare delle metriche interessate:

Fi= a0+ a1m1+ … + akmk

gli ai esprimono la rilevanza (peso) di ciascuna metrica ai fini della valutazione del fattore (sono ottenuti per analogia con altri progetti di caratteristiche simili);
ogni mi è normalizzato sull’intervallo [0,1].

Sinergie e Conflitti fra Fattori di Qualità

Esistono sinergie e conflitti fra i diversi fattori di qualità, da tenere in considerazione in sede di definizione dei requisiti di qualità e di sviluppo di un sistema software.


Le Viste Logiche nel Modello di McCall

Relazione fra attributi della Vista Utente e della Vista Sviluppatore nel Modello di McCall.

Relazione fra attributi della Vista Utente e della Vista Sviluppatore nel Modello di McCall.


I Livelli nel Modello di Boehm

Il Modello di Qualità di Boehm.

Il Modello di Qualità di Boehm.


Limiti dei modelli di McCall e Boehm

Le caratteristiche sono in genere proprietà astratte misurabili solo attraverso indicatori e metriche. Non sempre l’andamento di queste grandezze è in correlazione perfettamente lineare con le caratteristiche che devono stimare;

È difficile che le caratteristiche e sottocaratteristiche siano sempre prive di sovrapposizioni;

Manca in ogni caso il legame esplicito tra il modello qualitativo e “come” fare poi del buon software.

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion