Sei sulla pagina 1di 22

Sottocomitato per la Qualit del Software

Costi della Qualit e della Non Qualit del software

Costi della Qualit e della Non Qualit del software


I costi legati alla qualit del prodotto software
Massimiliano Argiolu Technis Scrl massimiliano.argiolu@formitservizi.com

20 novembre 2006

Massimiliano Argiolu

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Scenario
Rivisitazione dei BP dei clienti correlati alla situazione economica attuale Necessit di allineamento dellIT ai BP dei clienti in termini competitivi rispetto a tempi e costi Necessit di impiantare dei processi IT supportati da indicatori oggettivi (p.e. KPI) per misurare tali processi in accordo con i BP aziendali e/o del cliente Necessit di incrementare la qualit del prodotto software per decrementare i costi dellIT

Massimiliano Argiolu

20 novembre 2006

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Gli obiettivi dell IT


Utilizzare modelli per stabilire relazioni tra IT e BPs per ottimizzare gli effort monitorando costantemente costi e attivit; Utilizzare Cicli di Vita del Software quanto pi efficaci possibile e indicatori di processo e prodotto software per raggiungere gli obiettivi funzionali, qualitativi e il time-tomarket abbattendo i costi; Utilizzare prodotti per automatizzare la (ri)modellazione dei processi e per la rilevazione degli indicatori minimizzando limpatto del cambiamento; Tali prodotti per automatizzare il Ciclo di Vita del Software abbattendo i costi e garantendo nel breve il ROI del loro acquisto, devono essere integrati realmente tra loro.
Massimiliano Argiolu

20 novembre 2006

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Cosa si pu fare ?
Incremento della qualit del prodotto software e dei processi dellIT Certificazione del livello di Qualit del SW sviluppato o acquisito (ISO/IEC 9126:2001, ISO/IEC 25000:2005) Definizione di processi di miglioramento della Qualit del SW (ISO/IEC 9004:2000, ISO/IEC 90003:2003) Riduzione dei costi indiretti di collaudo e manutenzione NB: i costi esposti di seguito sono : di prevenzione (acquisto licenze prodotti) di valutazione (h/u per la rilevazione)
per ridurre i Costi dei difetti Interni ed Esterni !!
Massimiliano Argiolu
4

20 novembre 2006

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Metriche di Processo
La rilevazione di metriche relative ai processi del Ciclo di Vita del Software (ISO/IEC 12207:2003; ISO/IEC 20000:2005) necessaria per rendere pi efficaci ed efficienti tali processi Tali metriche, utilizzate nei contratti di outsourcing, necessitano di unattenta definizione del processo stesso e dellutilizzo di prodotti utilizzabili per qualsiasi tipologia di progetto La definizione del processo relativo al Ciclo di Vita del Software, delle sue metriche e delle modalit di rilevazione (ISO/IEC 14598-1/5) una scelta fatta a livello di progetto e a volte difficilmente attuabile su piccoli progetti Monitorare ed ottimizzare i processi tramite KPIs garantendo il popolamento di un dashboard per il supporto decisionale
Massimiliano Argiolu

20 novembre 2006

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Metriche di Prodotto
Monitoraggio della qualit SW tramite metriche statiche Validazione del SW individuando: Codice inerte Test duplicati SW non testato Copertura topologica del Test Monitorare le metriche tramite unapposito cruscotto profilato per i responsabili Inserimento di requisiti di qualit nelle specifiche tecniche di Outsourcing Uso di set di parametri di soglia differenziati in funzione del contesto Massimiliano Argiolu

20 novembre 2006

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

La norma di Riferimento: UN EN ISO/IEC 9126:2001

La qualit del prodotto software pu essere vista come linsieme di tre aspetti:
Percepita : esprime lefficacia ed efficienza, con cui il software serve le esigenze dellutente, Interna Esterna
ma anche lusabilit del prodotto; : esprime la misura in cui il codice software possiede una serie di attributi, indipendentemente dallambiente di utilizzo; : esprime le prestazioni del software nel suo ambiente di utilizzo.
20 novembre 2006
7

Massimiliano Argiolu

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

I punti di vista della Qualit del Software


Punto di Vista dello sviluppatore Punto di vista del cliente
Correttezza

Manutenibilit Portabilit

Affidabilit Altre

Testabilit

Altre
Massimiliano Argiolu

Performance
20 novembre 2006
8

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

In quali fasi si spende di pi ?

Ripartizione dei costi delle fasi del ciclo di vita del software (fonte CNIPA)

Massimiliano Argiolu

20 novembre 2006

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Esempi di metriche
Metriche Interne

Caratteristica Manutenibilit Manutenibilit Manutenibilit Manutenibilit

Sottocaratteristica Testabilit Modificabilit Modificabilit Analizzabilit

Indicatore Testabilit Strutturazione Codice Inerte Commentosit

Metrica Complessit Ciclomatica di McCabe Complessit Essenziale di McCabe N di moduli o numero di LOC mai richiamate staticamente Percentuale di Commenti presenti nel codice Metrica Numero degli interventi di ripristino in collaudo sullo stesso modulo per la stessa malfunzione. Percentuale di logica percorsa dal test in termini di Branch e/o Path coverage % di casi di test eseguiti in fase di test rispetto a quelli progettati nel Piano di Test % di casi di test eseguiti con successo, rispetto al n di test previsti nel piano di Test % dei casi di test (da piano di testrealizzazione) eseguiti negativamente in collaudo

Caratteristica Affidabilit

Sottocaratteristica Maturit

Indicatore Capacit di controllo dei difetti in collaudo Copertura topologica del Test Copertura del Test Test eseguiti con successo Test falliti in collaudo

Affidabilit

Maturit Accuratezza Accuratezza Accuratezza Accuratezza

Metriche Esterne

Funzionalit Funzionalit Funzionalit

Massimiliano Argiolu

20 novembre 2006

10

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Stima dei costi di manutenzione legati alla Qualit del SW


Attivit legata a parametri oggettivi legati alla rilevazione di metriche di qualit del software Le metriche devono essere differenziate a seconda della tecnologia (p.e. metriche procedurali, metriche OO, ecc.) Rilevate le metriche si applicano algoritmi per calcolare un fattore di penalizzazione da moltiplicarsi alla stima effettuata Applicabilit: Prese in carico di applicazioni Progetti a medio/lungo termine di sviluppo e manutenzione software Progetti di Refactoring
Massimiliano Argiolu

20 novembre 2006

11

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Metrica

Soglia <=70 <=14 >=.25 <=2 <=2 <=1 <=(WMC * Depth) + 1 <=1 =0 >= 75 Penalizzazione 1 1.2 1.5 2.0 3.0
20 novembre 2006
12

Peso 7 3 3 7 3 11 1 9 11 5

Un esempio pratico :
A ciascuna metrica sono associati un valore di soglia ed un peso e il peso qualitativo della classe dato da:

Sum v(G) WMC CD Avg ev(G) CBO Fan In RFC CDC PUB ACCESS LOCM Classe 1 2 Intervallo 0.91-1 0.71-0.90 0.51-0.70 0.31-0.50 0-0.30

PQ step( Mi ) *Fpi
i 1

10

Calcoliamo la sommatoria dei pesi relativi alle metriche: 10

SP Fpi
i 1

Normalizziamo:

PQ CP

SP

4 5

Massimiliano Argiolu

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

La realt del test


Le attivit di Test finiscono sempre Errori troppo presto individuati Il 100% del Test non mai possibile Si necessita di identificare un set di test il pi esaustivo possibile Stabilire un tempo limite che NON sia basato su: La mancanza di tempo I Test casuali

Numero Tests

Gli strumenti di Test Automation sono fondamentali ma non danno una risposta completa !!
Massimiliano Argiolu

20 novembre 2006

13

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Esempi di metriche
Metriche Interne

Caratteristica Manutenibilit Manutenibilit Manutenibilit Manutenibilit

Sottocaratteristica Testabilit Modificabilit Modificabilit Analizzabilit

Indicatore Testabilit Strutturazione Codice Inerte Commentosit

Metrica Complessit Ciclomatica di McCabe Complessit Essenziale di McCabe N di moduli o numero di LOC mai richiamate staticamente Percentuale di Commenti presenti nel codice Metrica Numero degli interventi di ripristino in collaudo sullo stesso modulo per la stessa malfunzione. Percentuale di logica percorsa dal test in termini di Branch e/o Path coverage % di casi di test eseguiti in fase di test rispetto a quelli progettati nel Piano di Test % di casi di test eseguiti con successo, rispetto al n di test previsti nel piano di Test % dei casi di test (da piano di testrealizzazione) eseguiti negativamente in collaudo

Caratteristica Affidabilit

Sottocaratteristica Maturit

Indicatore Capacit di controllo dei difetti in collaudo Copertura topologica del Test Copertura del Test Test eseguiti con successo Test falliti in collaudo

Affidabilit

Maturit Accuratezza Accuratezza Accuratezza Accuratezza

Metriche Esterne

Funzionalit Funzionalit Funzionalit

Massimiliano Argiolu

20 novembre 2006

14

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Considerazioni sulle fasi di test e validazione


Le metriche (esterne) da rilevarsi in queste fasi dipendono dal processo di test utilizzato Senza disquisire sulle tematiche del test si pu asserire che lutilizzo di tali metriche nei processi di miglioramento consente un risparmio significativo che di seguito proveremo a quantificare Esempio di tabella che quantifica i costi di bug fixing in relazione alla fase del ciclo di vita (o di manutenzione) del software (fonte NIST)
Analisi dei requisiti / Disegno dellArchitettura 1X Codifica / Test Unitario 5X Integration / System Test 10X Collaudo / Beta Test 15X Post rilascio

30X

X = Costo di risoluzione di un singolo bug


Massimiliano Argiolu

20 novembre 2006

15

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

un concetto semplice
Prima si individuano gli errori meno costa la loro risoluzione !!

Occorre quindi : Verificare Misurare Validare

Massimiliano Argiolu

20 novembre 2006

16

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

La validazione del Test


Il test una verifica delle funzionalit erogate dal SW rispetto a quanto definito nei requisiti utente/specifiche funzionali Per validarlo occorre misurare come e quanto i Casi di Test sollecitano la logica del codice Misurare la copertura Topologica del Test consente di validare la progettazione del Test
Massimiliano Argiolu

20 novembre 2006

17

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

segue
Le metriche esterne consentono di anticipare lindividuazione degli errori, nel tempo e nelle fasi del ciclo di vita. Lutilizzo di metodi e strumenti sistematici per il testing consente un incremento del 15-20% dei bugs individuati Metriche interne ed esterne combinate consentono di anticipare ancora lindividuazione dei bugs fino ad incrementare la differenza tra C0 e C1 di un ulteriore 5-7%.
Massimiliano Argiolu

20 novembre 2006

18

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Cosa cambia nel ciclo di vita del software ?

Testing Testing

Disegno
Tempo
Massimiliano Argiolu

Codifica Codifica

Rilascio Rilascio

Difetti

Difetti Evitati Difetti

20 novembre 2006

19

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Come riduciamo i costi


I Costi di Valutazione e Prevenzione che purtroppo vengono visti come investimenti per essere valorizzati allottimo dovrebbero essere:

Armonizzati con i processi di gestione del ciclo di vita del software;


Visti dal management come una delle basi per valutare il VOI della Qualit in unazienda; Utilizzati per il miglioramento continuo dei processi e dei prodotti rilasciati conformemente a quanto indicato dalla norma 9000:2000; Utilizzati nelle fasi di Risk Assessment per ottimizzare tali attivit; I costi di prevenzione e valutazione, sono un valore aggiunto il cui ROI non solo nel risparmio di tempo che essi consentono nellesecuzione delle attivit, ma nellintegrazione dei dati per fruire al meglio delle informazioni e di applicarle ai processi di miglioramento.
Massimiliano Argiolu

20 novembre 2006

20

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

e di quanto ?

Fase Produttiva

Abbattimento dei Costi Totali della Fase -10/15 % (mediamente) 0% 20% 20% 0% 40%

Costi di prevenzione

Costi di valutazione

Pianificazione

Costi di acquisto delle licenze dei prodotti necessari 0% 0% -1/2 % -2/5% 0% 0% -5/2% (tendenti a 0% funzione della stabilit del team) -1/2 %

Disegno e Analisi Codifica Verifica e Validazione Documentazione Manutenzione correttiva

Manutenzione evolutiva

20%

Massimiliano Argiolu

20 novembre 2006

21

Sottocomitato per la Qualit del Software


Costi della Qualit e della Non Qualit del software

Domande & Risposte


I costi legati alla qualit del prodotto software
Massimiliano Argiolu Technis Scrl massimiliano.argiolu@formitservizi.com 20 novembre 2006

Massimiliano Argiolu

22