Giuseppe Santucci Seminario Fondamenti della teoria della misura & richiami elementari di statistica descrittiva ed inferenziale FTM.1 Un libro di riferimento • Metrics and Models In Software Quality Engineering Second Edition • Stephen H.Kan • Addison Wesley - 2003 FTM.2 Perchè si misura ? • “Non puoi controllare ciò che non puoi misurare” [T. De Marco, 1982] • Le misure, nel campo dell’ingegneria si effettuano per i seguenti obbiettivi: – Forze, pesi, lunghezze, etc. ingegneria “classica” – verificare l'aderenza di alcuni parametri di qualità a dei valori di riferimento (esterni/interni) – rilevare delle deviazioni relative alla pianificazione temporale/ allocazione di risorse – raccogliere vari indici di produttività – validare l'effetto di strategie tese a migliorare un processo (qualità/ produttività / aderenza alla pianificazione / controllo dei costi/ usabilità) • In sintesi si misura per controllare e prendere decisioni FTM.3 Definizioni, Definizioni operative e misure... • Prima di entrare nel merito delle varie misure è opportuno richiamare alcune nozioni di base della Teoria della Misura, spesso confuse o ignorate • Analizziamo la seguente teoria: più è rigorosa la parte finale del processo di produzione del sw più è alta la qualità del sw presso il cliente • per poter accettare/respingere l'affermazione abbiamo bisogno di alcune definizioni: – processo di produzione: <progetto, ... ,integrazione, ... ,test di accettazione> – definiamo parte finale del processo l'integrazione con il relativo test (dopo le modifiche sono fortemente controllate) FTM.4 ...Definizioni, Definizioni operative e misure... • rigoroso può essere definito come: aderente alla documentazione dei processi (manuale qualità) ma ciò è ancora vago ed abbiamo bisogno di alcuni indicatori: – ad esempio, se è prevista una ispezione del codice; una definizione operativa potrebbe essere relativa alla percentuale di codice effettivamente ispezionato – relativamente alla qualità di una ispezione potremmo utilizzare operativamente una scala di Likert a 5 valori (1=ispezione di bassa qualità ... 5=veramente efficace) – la rigorosità del test potrebbe essere operativamente associata alla percentuale di linee di codice testate e la sua efficacia al numero di difetti rimossi per KLOC • per la qualità del sw presso il cliente potremmo usare: il numero di difetti per KLOC trovati durante il test di sistema FTM.5 ...Definizioni, Definizioni operative e misure... Ora è possibile riformulare la frase di prima tramite le seguenti tre ipotesi: 1. maggiore è la percentuale di linee di codice testate minore è il numero di errori per KLOC trovati durante il test di sistema 2. maggiore è l'efficacia delle ispezioni minore è il numero di errori per KLOC trovati durante il test di sistema 3. maggiore è l'efficacia del test, in termini di errori trovati, minore è il numero di errori per KLOC trovati durante il test di sistema FTM.6 ...Definizioni, Definizioni operative e misure... • Per validare le ipotesi è necessario introdurre l'unità di analisi (componente o progetto), effettuare analisi statistiche per validare le ipotesi (e.g., analisi della varianza), validare gli indicatori scelti, ovvero effettuare ed interpretare delle misure • Ad esempio se ottenessimo i seguenti dati tramite 9 esperimenti (3 al 50%, 3 al 70%, 3 al 90%) : • Copertura linee di codice 50% 70% 90% Media degli errori trovati durante il test 20/KLOC 15/KLOC 12/KLOC • Senza una corretta analisi dei dati quale l'analisi della varianza (ANOVA) non potremmo essere sicuri della significatività statistica di quanto ottenuto • Ad esempio se 20 è la media di {19 20 21}, 15 di {15 15 15}, e 12 di {11 12 13} ci sentiremmo abbastanza sicuri • Se invece 20 è la media di {10 10 40}, 15 di {1 4 40} e 12 di {3 3 30}... • Vedremo la cosa in dettaglio FTM.7 ...Definizioni, Definizioni operative e misure • L'esempio porta a capire l'importanza delle misure nonchè la necessità di vari livelli di astrazione: Teoria Concetti Mondo astratto Proposizioni Definizioni Ipotesi Definizioni operative Analisi dei dati Misure Mondo empirico FTM.8 • Teoria – un insieme di PROPOSIZIONI relative a CONCETTI • Proposizione – viene fromalizzata tramite delle DEFINIZIONI – da luogo ad una o più IPOTESI empiriche • Ipotesi – per essere validata necessita di misure, fromalizzate tramite DEFINIZIONI OPERATIVE • Analisi dei dati – parte finale del processo, teso a validare la teoria. Si sostanzia effettuando delle MISURE nel mondo reale FTM.9 Scale di una misura(1) • Scala Nominale - Insieme predefinito non ordinato di valori distinti – esempio: regione italiana – operatori ammisibili { = , !=} • Scala Ordinale - Insieme predefinito ordinato (ordinamento totale) di valori distinti – esempio: livelli CMM – operatori ammissibili { = , !=, >, < } – N.B. NON è possibile confrontare l'entità delle differenze: il livello 3 CMM è maggiore del livello 2 ma non è noto DI QUANTO – N.B. NON è possibile fare paragoni: non è possibile dire che la differenza tra 1 e 2 è la stessa che esiste tra 3 e 4 – In alcuni casi (scale di Likert) è assunta l'ipotesi di equidistanza per fare la media tra valori differenti. ATTENZIONE alle conseguenze: • Scala di Likert a 5 valori sui risultati di una nuova terapia sperimentale: (1-guarito perfettamente , 2-complicazioni lievi, 3-complicazioni medie, 4-complicazioni gravi, 5-morto) – 50 guariti perfettamente e 50 morti ---> complicazioni medie... FTM.10 Scala di una misura(2) • Scala per Intervalli - In questo caso è nota la differenza esatta tra due valori – – – – – esempio: temperatura in gradi (C o F) richiede una definizione PRECISA dell'unità di misura adoperata valori interi o reali operatori ammissibili { = , !=, < , >, +, - } N.B. La presenza di uno zero arbitrario NON autorizza a fare ipotesi di rapporti: posso dire che tra 80°F e 20° F ci sono 60° di differenza, NON che 80°F è 4 volte più caldo di 20°F • Scala Razionale - Scala per intervalli in cui è definito in modo non arbitrario uno zero – esempio: temperatura in gradi Kelvin (zero assoluto!) – operatori ammissibili { = , !=, < , >, +, -, x, /} – 90°K è 3 volte maggiore di 30°K • Tranne pochi casi, tutte le scale per intervalli sono scale razionali • Ovviamente valgono le seguenti relazioni ISA: • S. Razionale -> S. Intervalli -> S. Ordinale-> S. Nominale FTM.11 Tipi di misura: rapporti e proporzioni • Rapporto - Risultato di una divisione tra due valori che vengono da due dominii distinti e mutuamente esclusivi. Il risultato della divisione è moltiplicato per 100 – esempio: (numero maschi/numero femmine) x 100 – può assumere valori sotto e sopra il 100 – esempio sw: persone addette al test/ persone addette allo sviluppo • Proporzione - Risultato di una divisione tra due valori in cui il dividendo contribuisce al valore del divisore, e.g., a/(a+b) – esempio: numero utenti soddisfatti/numero utenti – assume valori compresi tra 0 ed 1 – spesso il denominatore è composto da vari elementi per i quali si calcolano le varie proporzioni: • a+b+c=N ; a/N + b/N + c/N =1 – una Frazione è una proporzione tra reali. FTM.12 Tipi di misura: percentuale • Percentuale - Una proporzione o frazione espressa normalizzando il denominatore a 100. – esempio: i difetti presenti nei requisiti erano il 15%, nel progetto il 25%, nella codifica il 60% – vanno usate con criterio, indicando i valori coinvolti ed evitandone l'uso quando gli elementi sono meno di 50-30 (da la falsa impressione di una grossa quantità di dati) – esempio: i difetti presenti nel progetto erano 20, di cui 3 nei requisiti, 5 nel progetto e 12 nella codifica – esempio: i difetti presenti nel progetto erano 200, di cui il 25% (50) nei requisiti, il 15%(30) nel progetto ed 60% (120) nella codifica FTM.13 Tipi di misura: andamento • Andamento (rate) - Indica, al contrario di rapporti, proporzioni e percentuali, un valore associato alla dinamica di un fenomeno. Tipicamente (ma non sempre) è la misura del cambiamento di una quantità (y) rispetto all'unità di un'altra quantità (x) da cui dipende. Quasi sempre x è il tempo. – esempio: negli studi demografici si parla andamento approssimato (crude) delle nascite in un certo anno calcolandolo con la seguente formula: (N/P)*k N=nascite nell'anno osservato P= popolazione (calcolata a metà dell'anno) k=costante, tipicamente 1000 FTM.14 Tipi di misura: andamento • è presente il concetto di "esposizione al rischio", ovvero il fatto che gli elementi del denominatore possono "diventare" o "produrre" elementi nel numeratore • considerando tale fattore, la formula di prima può essere migliorata sostituendo a P P' il numero delle donne tra i 15 e 44 anni (andamento della fertilità): (N/P')*k • andamento dei difetti=(D/OFE) *k dove – D=difetti osservati nel periodo di rifermento e – OFE =Opportunities For Error: possibili punti in cui possono essere "generati" errori • esempio sw: andamento dei difetti: (D/KLOC)* 1000 dove • D=difetti osservati nel periodo di rifermento (anno, mese) • N.B. è un andamento "crude" perchè le KLOC non concidono direttamente con le OFE in quanto a volte un errore coinvolge più linee di codice (o una linea di codice genera + errori) FTM.15 Richiami di statistica descrittiva • Data una popolazione di N elementi su cui si effettua una misura (e.g., il peso delle persone in italia) {x1,...,xn}, si definiscono i seguenti parametri: • media m= (x1+ x2+... +xn)/N • varianza var=[(x1-m)2+ (x2-m)2 +...(xn-m)2]/N • deviazione standard σ=var1/2 • spesso la varianza si indica con σ2 • tipicamente gli N elementi si distribuiscono secondo una distribuzione normale (o gaussiana) FTM.16 Distribuzione normale P μ-1.96σ μ-σ μ μ+σ μ+1.96σ X 68.26% dei dati 95% dei dati è usuale centrare la gaussiana sull'asse Y ponendo X=X-m FTM.17 Qualità di una misura: Affidabilità • Le misure, a loro volta, posseggono delle qualità che, in alcuni casi, è possibile quantificare in modo formale. • Affidabilità (reliability). L'affidabilità è relativa ai valori che si ottengono effettuando più volte la stessa misura. Se i valori ottenuti sono vicini tra loro la metrica è affidabile. Tipicamente si caratterizza questa qualità analizzando la varianza σ2 di misure ripetute. Più piccolo è questo valore più la metrica è affidabile. Una possibile alternativa è l'indice di variazione che "normalizza" rispetto alla media: σ/media. FTM.18 Qualità di una misura(2) • Validità (validity). La validità indica se la metrica misura effettivamente cosa vogliamo misurare. Per misure poco astratte (peso, volume) la validità coincide con l'accuratezza. Si noti che anche per misure poco astratte i concetti di affidabilità e validità sono differenti: un orologio fermo è perfettamente affidabile ma ha una validità molto ridotta... • Per concetti astratti la validità di una misura può essere molto complessa a valutarsi (e.g., la religiosità di una comunità misurata tramite le presenze in chiesa). FTM.19 Affidabilità e validità di una misura Affidabile ma non valida Valida ma non affidabile Affidabile e Valida FTM.20 Errori di misura (1) • Gli errori che possono verificarsi durante una misura sono di due tipi, sistematici e casuali. Gli errori sistematici si verificano in modo costante. Si pensi, per esempio, ad una bilancia per pesare le persone tarata male che aggiunge sistematicamente 1 kg al peso reale: – misura=peso reale + 1kg + variazione casuale ovvero M= T + s + e • la misura non è valida – se s non è presente, ovvero che ci sono solo errori casuali la formula vale: – M= T + e – il contributo medio di un fenomeno casuale è nullo (valore atteso E(e)=0) e, quindi, la media di infinite misure E(M)=T e quindi la misura è valida. • una tipica tecnica che sfrutta questo principio è quella di ripetere la misura N volte e farne la media • QUINDI – Gli errori sistematici influenzano la validità – Gli errori casuali influenzano l'affidabilità FTM.21 Analisi della varianza ANOVA • Quasi sempre il tentativo di dimostrare una ipotesi si riduce a cercare una relazione tra due variabili: se modifico A allora B cambia (in un certo modo) • Ad esempio: cerco di dimostrare che se aumento la proporzione KT di linee di codice testate l'andamento dei difetti DR nel primo anno dopo il rilascio diminuisce • proporzione KT=KLOC testate/KLOC (per comodità la esprimo come percentuale) • andamento DR=(D/KLOC)*k (poniamo k=1) FTM.22 Variabili dipendenti ed indipendenti • In queste analisi si indicano col nome indipendenti le variabili che vengono manipolate per verificare una ipotesi e col nome dipendenti le variabili che vengono solo osservate e che dipendono (si spera) da quelle manipolate. • Nel nostro esempio • KT=variabile indipendente • DR=variabile dipendente FTM.23 Il nostro insieme campione • Assumiamo, per semplicità espositiva, che nella sw house osservata si conducano attività di test per tre differenti percentuali prefissate: • 50 % 70% 90% • e che, per ciascuna di esse, siano stati osservati per un anno 5 pacchetti software. • Calcoliamo la media di DR ed otteniamo la seguente tabella FTM.24 Significatività statistica: p-value – – – – KT 50% 70% 90% DR 20 15 12 • Il problema è: le medie sono differenti ma questo accade perchè effettivamente esiste una relazione tra KT e DR oppure i dati vengono così, "per caso"? • il p-value indica la probabilità che i dati analizzati non siano significativi, ovvero che non rappresentino correttamente la popolazione osservata FTM.25 Valori comuni del p-value • Un p-value pari a 0.05 ci dice che c'è la possibilità del 5% che la relazione trovata tra le due variabili sia casuale • In altre parole, assumendo che non esista ALCUNA relazione tra TK e DR un p-value di 0.05 ci dice che ogni 20 analisi otterremo per caso questa "finta" relazione • 0.05 è considerato un valore di confine ed in letteratura si comincia a prendere in considerazione la validità di una analisi per p<=0.01. Se p<=0.005 l'analisi è classificata statisticamente significativa e per p<=0.001 altamente significativa • Ovviamente sono solo valori arbitrari, anche se largamente utilizzati FTM.26 Richiami di concetti statistici di base (statistica inferenziale) • Si analizza una popolazione di M elementi (M non è noto) tramite un campione di N elementi {x1,...,xn}, e si definiscono i seguenti parametri: • media m= (x1+ x2+... +xn)/N • varianza var=[(x1-m)2+ (x2-m)2 +...(xn-m)2]/(N-1) • deviazione standard σ=var1/2 • spesso la varianza si indica con σ2 • tipicamente gli elementi del campione si distribuiscono secondo una distribuzione normale (o gaussiana) • o, se così non è, si assume che lo sia.... • analisi Montecarlo... FTM.27 Qual'è il problema? • Stiamo lavorando con qualla che viene chiamata statistica inferenziale (vs descrittiva) ovvero stiamo cercando di inferire delle proprietà usando un campione dei dati. • La caratterizzazione statistica del nostro campione (in particolare la media) differisce da quella dei dati reali • All'aumentare della dimensione del campione la differenza tende a diminuire • Ma come varia questa differenza? FTM.28 Intervallo di confidenza • Sotto l'assunzione di distribuzione normale è possibile stimare la probabilità che la media di un campione di dimensione N si discosti più di una certa quantità dalla media "vera" • Lo scarto è legato alla probabilità di errore che siamo disposti a sopportare ed è direttamente proporzionale alla s del campione ed inversamente proporzionale al numero di campioni N1/2 • Un parametro tipico è il 95% (p=0.05) ed i risultati numerici ci dicono che nel 95% dei casi un campione mostrerà uno scostamento dalla media "vera" inferiore a: – – – – 2.77*σ/N1/2 per N=5 2.26*σ/N1/2 per N=10 2.09*σ/N1/2 per N=40 1.96*σ/N1/2 per N "grande" • N.B. Per dimezzare l'intervallo di confidenza occorre quadriplicare il numero dei campioni FTM.29 Intervallo di confidenza 1.96*σ/Ν1/2 per N "grande" 95% dei dati m-1.96 σ m m+1.96 σ FTM.30 t-Test • Utilizzando l'intervallo di confidenza è possibile ipotizzare se due campioni abbiano potenzialmente o meno la stessa media (sempre rispetto a p) cm2 due medie cm1 cm1 cm1 cm2 cm2 due intervalli di confidenza che potenzialmente sottointendono una media comune due intervalli di confidenza che potenzialmente NON sottointendono una media comune FTM.31 Esercizio 1 • Sia data la metrica RU="richieste utente" definita come segue: numero di richieste di chiarimento nei primi 6 mesi di utilizzo del sw /KLOC • Il sw è stato installato presso 5 clienti esono stati rilevati i seguenti valori: • RU1=20 RU2= 21 RU3=23 RU4=15 RU5=21 • 1) Indicare le scale del dividendo e del divisore • 2) indicare il tipo di misura • 3) calcolare i seguenti parametri: – m – σ – intervallo di confidenza (p=0.05) FTM.32 Esercizio 1 (soluzione) 1. Scale • • 2. numero di richieste di chiarimento : scala razionale (interi) KLOC: scala razionale (reali) La misura è un andamento (crude): 3. calcolare i seguenti parametri: m =(20+21+23+15+21)/5=20 2 σ =[(20−20)2+(20−21)2+(20−23)2+(15−20)2+(21−20)2]/4=9 σ =3 intervallo di confidenza =20 +/- 2.77*3/51/2 ovvero: [16.3, 23.7] FTM.33 Torniamo al nostro problema • • • • KT 50% 70% 90% DR 20 15 12 • Quindi i valori medi di DR sono affetti da un certo errore ed è possibile che le medie della popolazione complessiva (tutti i programmi sw del mondo) siano uguali, ovvero che calcolando l'andamento di DR su un numero molto più alto di casi si scopra che KT non abbia nessuna influenza su DR • l'ipotesi che le medie "vere" siano uguali (e quindi che le differenze osservate siano casuali) è detta ipotesi nulla FTM.34 Anova • Utilizzando l'intervallo di confidenza siamo in grado di stimare la variazione della media rispetto a quella vera (sempre rispetto ad un p-value) • quindi se le variazioni che osserviamo nelle medie sono maggiori di quanto ci aspettiamo questo implica che le differenze tra le medie sono significative • ANOVA estende il t-Test ad f fattori e calcola il seguente valore: • F=(variazioni osservate nelle medie)/(variazioni attese nelle medie) • F=1 implica che l'ipotesi nulla è valida • F>>1 indica che le variazioni osservate sono indice di qualcosa • (il quanto F debba essere maggiore di 1 è legato a σ) • il p-value ci indica la probabilità che il tutto avvenga per caso FTM.35 Altamente Significativo FTM.36 Per nulla Significativo FTM.37 Esempio finale • Nella software house ACME i programmi vengono sviluppati da due gruppi di programmatori: – Gruppo A, programmatori che hanno seguito un corso di interazione uomo macchina – Gruppo B, programmatori che NON hanno seguito un corso di interazione uomo macchina • Vengono selezionati 5 programmi prodotti dal gruppo A e 5 programmi prodotti dal gruppo B • Ogni programma viene sperimentato da 20 utenti • Un help desk della ACME raccoglie statistiche sulle richieste di aiuto da parte degli utenti relativamente a problemi di UTILIZZO dei programmi • I responsabili del sistema qualità della ditta calcolano la seguente metrica IU=“incomprensioni utente" definita come segue: numero di richieste relative al funzionamento dell’ interfaccia utente nei primi 6 mesi di utilizzo del sw /KLOC • l'ipotesi che le medie "vere" siano uguali (e quindi che le differenze osservate siano casuali) è detta ipotesi nulla FTM.38 … Esempio finale • I dati raccolti sono i seguenti: • • • • • P1_a P2_a P3_a P4_a P5_a • • • • • P1_b P2_b P3_b P4_b P5_b FTM.39