View
77
Download
3
Category
Preview:
Citation preview
Perché e come si valuta la Qualità del Software
Giuseppe Visaggio Dipartimento di Informatica
SER&Practices s.r.l. InnovaPuglia 19 Giugno 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.
Perché e come si valuta la Qualità del Software
3
1. La qualità come valore.
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.
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.
Perché e come si valuta la Qualità del Software
6
Le parti interessate e i loro punti di vista
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.
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.
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.
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à.
Perché e come si valuta la Qualità del Software
11
La qualità nel tempo
Perché e come si valuta la Qualità del Software
12
2. La valutazione della qualità dei prodotti.
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
Perché e come si valuta la Qualità del Software
14
Dai requisiti alle misure di qualità
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
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à.
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
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
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.
Perché e come si valuta la Qualità del Software
20
Implementazione delle tecniche: Ispezione
Perché e come si valuta la Qualità del Software
21
Implementazione delle tecniche: Test
21
Perché e come si valuta la Qualità del Software
22
Implementazione delle tecniche: verifica automatica
22
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
Perché e come si valuta la Qualità del Software
24
3. La valutazione della qualità dei processi.
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.
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.
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)
Perché e come si valuta la Qualità del Software
28
SEPRM
28
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
Perché e come si valuta la Qualità del Software
30
Modello di capitalizzazione dell’esperienza
Perché e come si valuta la Qualità del Software
31
4. Un ecosistema incentrato sulla qualità.
Perché e come si valuta la Qualità del Software
32
Mappa degli organismi per la qualità
Perché e come si valuta la Qualità del Software
33
5. Una possibile strategia per potenziare l’ecosistema.
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.
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.
Perché e come si valuta la Qualità del Software
36
Accelerazione del percorso
Perché e come si valuta la Qualità del Software
37
6. Un caso di studio.
Recommended