PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

37
Perché e come si valuta la Qualità del Software Giuseppe Visaggio Dipartimento di Informatica SER&Practices s.r.l. InnovaPuglia 19 Giugno 2015

Transcript of PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Page 1: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

Giuseppe Visaggio Dipartimento di Informatica

SER&Practices s.r.l. InnovaPuglia 19 Giugno 2015

Page 2: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

2

Sommario

1. La qualità come valore. 2. La valutazione della qualità dei prodotti. 3. La valutazione della qualità dei processi. 4. Un ecosistema incentrato sulla qualità. 5. Una possibile strategia per potenziare.

l’ecosistema. 6. Un caso di studio.

Page 3: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

3

1. La qualità come valore.

Page 4: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

4

Definizione della Qualità

La qualità di una entità è l’insieme delle caratteristiche che tutti i portatori d’interesse desiderano per l’entità.

Le entità della qualità del software sono: Il prodotto; Il processo.

Page 5: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

5

Opinioni frequenti e realtà

Opinioni frequenti L’impegno richiesto per la qualità è eccessivo rispetto ai

ritorni della stessa. Soddisfare le richieste della qualità allunga i tempi di

sviluppo di un software. La qualità richiede prescrizioni vincolanti per tutti gli

sviluppatori. ….

Realtà La qualità è un valore per tutte le parti interessate. La soddisfazione delle richieste della qualità ha un bilancio

positivo sui tempi e sull’economia dello sviluppo. I metodi e le competenze richieste dalla qualità sono le

buone pratiche dell’Ingegneria del Software.

Page 6: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

6

Le parti interessate e i loro punti di vista

Page 7: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

7

I valori per le parti interessate: destinatari

Il miglioramento delle condizione di lavoro di un operatore è strettamente legato alla frequenza dei malfunzionamenti e ai blocchi che questi generano.

Il destinatario dei risultati del software migliora il suo rapporto con i fornitori di servizio se i risultati sono corretti.

Gli utilizzatori migliorano la loro condizione lavorativa se non hanno problemi con i precedenti due stakeholder.

Gli acquirenti ritengono ripagati i loro investimenti se i precedenti stakeholder sono soddisfatti.

Gli amministratori degli acquirenti sono soddisfatti se il software: assolve al suo scopo soddisfacentemente per molto tempo così

che sia sostenibile il suo ammortamento; Ha costi di esercizio relativamente bassi rispetto ai servizi che

fornisce.

Page 8: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

8

I valori per le parti interessate: produttori

Gli sviluppatori lavorano meglio se non sono pressati da malfunzionamenti da riparare tempestivamente e se riescono a soddisfare tempestivamente e con affidabilità le richieste degli utenti.

I manager migliorano la loro condizione lavorativa se i prodotti si adeguano tempestivamente ai cambiamenti del mercato e se gli utenti sono soddisfatti.

Gli amministratori richiedono: La longevità del software per fare rientrare gli investimenti

nella produzione; La manutenibilità per avere margini sui ricavi per

l’assistenza agli utilizzatori; L’adeguabilità del software alle diversità ed alla variabilità

dei mercati per aumentare il vantaggio comparativo.

Page 9: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

9

Bilancio dei tempi e dell’economia

Lo sviluppo di qualità: Richiede più tempo e maggiori costi nella produzione del software. Richiede meno tempo e minori costi nella manutenzione del

software. La manutenzione occupa non meno del 70% del ciclo di vita,

pertanto il bilancio complessivo caratterizzato dall’economia di tempo e di moneta è elevato.

La qualità del prodotto ha come conseguenze: Rallentamento del degrado del prodotto; La longevità dello stesso; Ammortamenti degli investimenti più sostenibili, maggiore Ritorno

degli Investimenti. La qualità del processo ha come conseguenze:

La individuazione degli sprechi e la loro eliminazione; Il controllo dei tempi dello sviluppo, in ogni sua fase; Il controllo dei costi dello sviluppo, in ogni sua fase.

Page 10: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

10

Le competenze e le buone pratiche

Tutto ciò che serve per ottenere la qualità è compreso nei principi, tecnologie e buone pratiche della Ingegneria del Software.

Avere come costume l’applicazione dei metodi, tecniche e pratiche dell’Ingegneria del software alleggerisce il peso delle prescrizioni necessarie per ottenere la qualità.

Page 11: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

11

La qualità nel tempo

Page 12: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

12

2. La valutazione della qualità dei prodotti.

Page 13: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

13

Sistema di riferimento della qualità del prodotto

Con le smart communities si afferma sempre più la qualità sociale che corrisponde al valore per la comunità derivato dall’esercizio del software.

13

Page 14: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

14

Dai requisiti alle misure di qualità

Page 15: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

15

Caratteristiche di qualità Funzionalità. Soddisfazione delle specifiche software in termini di accuratezza,

adeguatezza, interoperabilità, sicurezza e conformità. Affidabilità. Probabilità che un sistema software si comporti secondo le attese e

senza interruzione in un intervallo di tempo. Usabilità. Facilità d’uso del sistema software secondo 5 caratteristiche:

apprendibilità, facilità di apprendimento dell’uso; efficienza, velocità nell’eseguire l’azione richiesta dall’operatore; memorabilità, supporto a ricordare le modalità d’uso per un operatore che non lo usi frequentemente; induzione all’errore, frequenza e severità degli errori compiuti dall’operatore nell’uso; soddisfazione, piacevolezza dell’uso per l’operatore.

Efficienza. Capacità di minimizzare lo spreco di risorse di tutti i tipi durante l’esercizio del software.

Manutenibilità. Capacità di identificare la causa di un malfunzionamento e di eliminarlo, riparabilità, e di aggiungere, eliminare e modificare capacità e funzioni del sistema, evolvibilità.

Portabilità. Capacità del software di essere usato su piattaforme differenti.

15

Page 16: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

16

Aspetti per le caratteristiche e livelli di integrità Secondo il punto di vista della misurazione

ogni caratteristica può avere uno più aspetti: Protezione dai rischi di danni, lesioni o morte; Economico; Sicurezza logica; Ambientale.

Per ogni aspetto un livello di integrità che definisce il rigore e la precisione della misurazione. Richiede una mediazione tra costi e benefici del

livello di integrità.

Page 17: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

17

Esempi di scale di integrità …

ASPETTI di PROTEZIONE LIVELLO CONSEGUENZE 4 Piccoli danni alla proprietà, nessun rischio alle persone 3 Danni alla proprietà, minacce di lesioni alle persone 2 Minacce alla vita delle persone 1 Molte persone possono perdere la vita

ASPETTI ECONOMICI LIVELLO CONSEGUENZE 4 Trascurabili perdite economiche o produzione di valore 3 Significanti perdite economiche 2 Grandi perdite economiche 1 Disastri finanziari

Page 18: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

18

… Esempi di scale di integrità

18

ASPETTI di SICUREZZA LOGICA LIVELLO CONSEGUENZE 4 Nessun rischio prevedibile 3 Protezione contro il rischio di errore 2 Protezione dei dati e servizi critici 1 Protezione dei dati strategici e dei servii

ASPETTI AMBIENTALI LIVELLO CONSEGUENZE 4 Nessun rischio ambientale 3 Polluzione locale 2 Danni all'ambiente recuperabili 1 Danni all'ambiente non recuperabili

Page 19: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

19

Tecniche utilizzabili per la misurazione con diversi livelli di integrità Funzionalità:

Test funzionale o black box; Ispezioni della documentazione guidata da liste di controllo; Test con criteri di copertura a vari livelli (unità, integrazione e sistema).

Affidabilità: Verifica dell'uso di specifiche strutture del linguaggio di programmazione; Verifica di costrutti tolleranti al guasto che sono stati utilizzati nel progetto e nel codice del software; Modelli per il miglioramento dell'affidabilità.

Usabilità: Ispezione delle interfacce utente e della documentazione relativa; Verifica della conformità agli standard d'interfaccia predefiniti; Esecuzione di esperimenti con utilizzatori reali operanti in particolari condizioni d'uso.

Efficienza: Misurazione dei tempi di esecuzione; Test di confronto con uno o più parametri di riferimento; Analisi del progetto per determinare la complessità degli algoritmi utilizzati e test per misurare il loro specifico

contributo sull'efficienza del prodotto. Manutenibilità:

Ispezione della documentazione di sviluppo guidata da liste di controllo; Verifica delle misure rilevate sul codice e delle regole adottate nella programmazione; Analisi della tracciabilità degli elementi della documentazione di sviluppo.

Portabilità: Analisi delle procedure di installazione del software; Verifica delle regole di programmazione utilizzate; Analisi del progetto software.

Page 20: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

20

Implementazione delle tecniche: Ispezione

Page 21: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

21

Implementazione delle tecniche: Test

21

Page 22: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

22

Implementazione delle tecniche: verifica automatica

22

Page 23: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

23

Modalità, principali, con cui applicare le tecniche Verifica della documentazione tecnica e d’uso

di tutti i tipi. Verifica basata sui corsi di addestramento del

fornitore. Revisione della storia operativa del fornitore. Revisione della storia operativa del cliente. Prototipazione. Valutazione del processo di Ingegneria del

Software.

23

Page 24: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

24

3. La valutazione della qualità dei processi.

Page 25: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

25

Scopo della valutazione della qualità dei processi Ottimizzare i costi di sviluppo del

software; Rendere prevedibile lo sviluppo e ciò

permette di fare previsioni corrette circa le risorse di tutti i tipi e, a sua volta, di applicare i principi di project management;

Realizzare il continuo apprendimento dell'organizzazione attraverso la raccolta dell'esperienza.

Page 26: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

26

Caratteristiche da misurare

Adeguatezza delle competenze delle persone impiegate in un'attività.

Sufficienza dei numeri delle persone impiegate rispetto agli obiettivi dell'attività, per ognuna delle competenze necessarie per la stessa attività.

Adeguatezza e sufficienza delle risorse strumentali.

Adeguatezza del budget disponibile per ogni attività.

Produttività. Tempi di esecuzione e tempi di interruzione dei

processi.

Page 27: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

27

Per misurare è necessario formalizzare i processi

p

p1 d1 p2 d2 p3

d0.1

d0.2

p1.1

p1.2

p2.1

p2.2

p2.3

d1.2

d1.1

d2

d2.1

d2.2

p3d3

d3

d3

d0

d0

(a)

(b)

(c)

Page 28: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

28

SEPRM

28

Page 29: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

29

Interazione della qualità del processo con quella del prodotto

La qualità del processo è condizione necessaria per la qualità del prodotto.

29

Page 30: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

30

Modello di capitalizzazione dell’esperienza

Page 31: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

31

4. Un ecosistema incentrato sulla qualità.

Page 32: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

32

Mappa degli organismi per la qualità

Page 33: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

33

5. Una possibile strategia per potenziare l’ecosistema.

Page 34: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

34

Un possibile scenario: flusso principale

1. Il committente chiede: Prodotto; Modello di Qualità da utilizzare per la valutazione della qualità del prodotto; l’impegno sul Livello di Qualità assicurato che avrà il prodotto.

2. I Competitori rispondono con l’Idea Progettuale, Modello di Qualità, Livello di Qualità promesso.

3. Il committente sceglie il suo fornitore sulla base della bontà dell’idea progettuale, dell’integrità e misurabilità del modello di qualità e del Livello di Qualità, oltre che il costo della fornitura.

4. Si sottoscrive il contratto con le clausole che prevedono, tra l’altro, i vincoli di qualità e le relative penali.

5. Alla consegna si collauda il prodotto verificando che la sua conformità al modello di qualità e al livello di qualità sia rispettata; altrimenti scattano le penali.

Page 35: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

35

Conseguenze dello scenario

Le imprese devono basare la loro competitività anche sulla qualità oltre che sul prezzo.

Per assicurare la qualità del prodotto, le imprese devono curare la qualità dei processi.

Per curare la qualità dei processi devono organizzarsi per apprendere continuamente dall’esperienza.

Le imprese si potenziano aumentano il loro

vantaggio comparativo rispetto alla concorrenza globale diventano più competitive si rafforza il sistema industriale locale.

Page 36: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

36

Accelerazione del percorso

Page 37: PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015

Perché e come si valuta la Qualità del Software

37

6. Un caso di studio.