La Misurazione nel Software PDF
Document Details
Uploaded by RejoicingZombie2780
Università degli Studi di Bari
Tags
Related
Summary
This document provides an overview of software measurement, including various measurement scales, concepts, entities, attributes, quantitative and qualitative approaches.
Full Transcript
La Misurazione nel Software Approfondimenti: Fenton, “Software Metrics a rigorous and practical approach” Capitolo 1,2,3. Concetti Generali Perchè misurare? … ð Quattro motivi principali per misurare pr...
La Misurazione nel Software Approfondimenti: Fenton, “Software Metrics a rigorous and practical approach” Capitolo 1,2,3. Concetti Generali Perchè misurare? … ð Quattro motivi principali per misurare processi, prodotti o risorse software: ð Caratterizzare. Comprendere i processi, i prodotti, le risorse, gli ambienti e stabilire baselines (valori soglia) di confronto per le valutazioni future. ð Valutare. Determinare lo stato di avanzamento rispetto ai piani di progetto; stabilire il raggiungimento degli obiettivi di qualità e valutare l’impatto dei miglioramenti di processo e delle tecnologie sui prodotti e sui processi stessi 2 Concetti Generali … Perchè misurare? q Fare previsioni. In modo da poter pianificare opportunamente. Comprendere le relazioni/interdipendenze tra processi e prodotti; e costruire modelli basate su tali relazioni in modo che i valori che osserviamo per alcuni attributi possano essere utilizzati per predire gli altri. È il punto di partenza per estrapolare e identificare tendenze, stime di costo, tempo e qualità; diagnosticare i trade-off basati su dati storici q Migliorare. raccogliere informazioni quantitative per identificare le inefficienze e altre opportunità per migliorare la qualità dei prodotti e le prestazioni di processo. Le misure aiutano a pianificare e monitorare gli sforzi di miglioramento 3 Concetti Generali Elementi della misurazione ð Misurazione: processo attraverso cui numeri e simboli sono assegnati agli attributi di entità del mondo reale in modo da caratterizzare gli attributi attraverso regole chiaramente specificate. ð Abbiamo bisogno di: q Entità (oggetto di interesse) q Attributi (caratteristiche delle entità) q Regole/Metriche (e scale) per assegnare i valori agli attributi ð Perchè si possa misurare è necessario: q Chiaramente identificare le entità e gli attributi che saranno presi in considerazione e le regole usate per assegnare valori a ciascun attributo 4 Concetti Generali Elementi della misurazione: Entità ð Elementi del mondo reale che desideriamo misurare q Products; processes, resources q Artifacts, activities, agents q Organizations, environments, constraints ð Entità possono anche essere gruppi o insiemi di altre entità q subprocesses, flowpaths, by-products 5 Concetti Generali Elementi della misurazione: Attributi ð Caratteristiche o proprietà delle entità q Person (entity) § Characteristics: height, color of eyes, IQ, age, years of experience … q Software (entity) § Characteristics: size, cost, elapsed time, effort, response time, transaction rates, number of defects … ð L’arte della misurazione consiste nel decidere quali attributi usare in modo da fornire una chiara idea delle entità considerate 6 Concetti Generali Ciascuna entità è legata agli attributi che caratterizzano l’entità e alle misure che possono esser usate per quantificare gli attributi stessi 7 Concetti Generali 8 Concetti Generali DIB 9 Scale di Misurazione Concetti Generali Scale di Misurazione… ð La scala di misurazione fornisce i valori e le unità per descrivere gli attributi q Person § height: 68 inches § weight: 163 pounds § Eyes: brown § Disposition: aggressive q Software Project: § Produce 30 000 LOC § Planned completion date: August 30 § Use: 11 345 staff hrs of effort § Application type: real time command and control ð Ovunque si effettui una misurazione e qualunque sia la sua forma, richiede sempre che vi siano delle scale ben definite per rilevare e registrare i valori misurati 11 Concetti Generali … Scale di Misurazione … ð Nominale: ogni valore della scala rappresenta una classe o una categoria di appartenenza q Non c’è ordinamento tra i valori q Non c’è significato di grandezza associato ad ogni classe ð Le scale nominali pongono gli elementi in uno schema di classificazione (categorie di appartenenza). Le classi non sono ordinate anche se sono numerate (solo per scopi di identificazione) da 1-n. Phase in which a fault is injected m1 m2 1 if specification fault A if specification fault 2 if design fault D if design fault 3 if code fault C if code fault 12 Concetti Generali … Scale di Misurazione … ð Ordinale: Oltre ad essere nominale esprime un ordine (ascendente o discendente) tra tutti i possibili valori dell’osservabile. La distanza tra un elemento e l’altro della scala non ha significato. q Le classi di appartenenza dei valori sono ordinate rispetto all’attributo q I valori esprimono solo un punteggio (rank), pertanto non ha senso applicare su essi gli operatori aritmetici Complexity of a Software Module m1 m2 M3 not a valid measure! 1 if simple 1 simple 1 simple 2 if moderate 100 moderate 3 moderate 3 if high 1000 high 2 high 4 if incomprehensible 11000 incomprehensible 4 incomprehensible 13 Concetti Generali … Scale di Misurazione … ð Intervallo: L’intervallo esprime sia l’ordinamento, sia la misura dell’intervallo che separa le classi della scala q Preserva l’ordine come per una scala ordinale q Preserva differenze ma non i rapporti (divisioni). Pertanto, Ai valori di questa scala sono applicabili somma e sottrazione; non hanno senso la moltiplicazioni e la divisione q Non c’è un origine nella scala (valore di zero assoluto) § If the temperature reaches 40°C today and 20°C yesterday, we cannot say that it was twice as warm today as it was yesterday. § The interval from moving from one degree to another is the same, and each degree is considered a class related to heat: Moving from 20-> 21 °C increases the heat the same way that moving from 40 ->41°C. § Since there is no true-zero value on the scale, however we cannot say that it is 50% hotter today than yesterday ð Eg.: clock times, calendar dates, temperature in °C or °F 14 Concetti Generali … Scale di Misurazione … ð Ratio: aggiunge un origine alla scala (un elemento zero - null) q Preserva l’ordinamento, la dimensione degli intervalli, il rapporto tra entità (come nelle scale precedenti) q (in piu) Esiste un elemento zero significativo, che indica l’assenza di quell’attributo q Il valore della misura, a partire da zero, deve aumentare di intervalli uguali, detti unità della misura q Tutte le operazioni aritmetiche sono significative q Due scale ratio M ed M’ sullo stesso attributo (es.dimensione) sono convertibili con la relazione M=a*M’ essendo “a” una costante § From Feet to Inches: I=12*F § From KLOC to LOC: KLOC=1000*LOC § M= LOC; M’=length as number of characters -> M’=a*M where a=average number of characters per LOC ð Eg. Productivity, defect density, integration cost, development cost, effort, etc. ð Esempio: la dimensione di un programma misurata in LOC è una scala Ratio (m1); la dimensione in KLOC è un’altra scala ratio (m2); m2=1000*m1 15 Concetti Generali … Scale di Misurazione … ð Assoluta: caso particolare della scala ratio dove l’unico moltiplicatore ammissibile è 1. q La misurazione nella scala assoluta è fatta semplicemente “conteggiando” gli elementi di una entità (es. Nr. Persone in un aula) q L’attributo ha sempre forma del tipo “numero di occorrenze di x in una entità” q Esiste solo un modo per mappare la misurazione: contando q Tutte le operazioni aritmetiche sono significative ð Eg. Number of failures observed during integration testing; number of people working on a software project; number of design defects; … 16 Concetti Generali … Scale di Misurazione 17 Scale delle Misure e Significatività delle Misurazioni DIB 18 Concetti Generali Significatività delle Funzioni Statistiche ð Ha significato applicare una funzione statistica ad un tipo di scala se le affermazioni dedotte dall’applicazioni delle funzioni sono invarianti rispetto alla scala utilizzata. Tipo scala Funzione statistica significativa Nominale Moda Ordinale Moda Mediana Intervallo Moda Mediana Media Ratio Tutte le funzioni DIB 19 Concetti Generali Funzioni Statistiche ðData una lista di valori: q Media : la somma dei valori diviso per il numero di valori nella lista q Mediana : il valore centrale nella lista ordinata q Moda : il valore che si presenta più frequentemente nella lista ðEsempio: 2,2,4,5,5,8,8,10,11,11,11,15,16 q Media : 9.1 q Mediana : 8 q Moda : 11 Concetti Generali Esempio : Classificazione dei problemi ð La moda è sempre valida; sia che le due scale fossero nominali sia che fossero ordinali Osservabile Classe (lettera) Classe (numeri) X1 A 1 X2 B 5 X3 B 5 X4 C 3 X5 B 5 Moda B(X2, X3, X5) 5(X2, X3, X5) DIB 21 Concetti Generali Esempio: Comprensibilità dei programmi ð La mediana sarebbe valida se le due scale fossero ordinali, non lo sarebbe se fossero nominali Osservazione Comprensibilità Comprensibilità X1 Banale 1 X2 Moderato 4 X3 Semplice 3 X4 Moderato 4 X5 Incomprensibile 10 Moda Moderato(X2,X4) 4(X2,X4) Mediana Semplice(X3)/Indeterm. 3(X3)/Indeterminata DIB 22 Concetti Generali Le scale di misurazione possono cambiare man mano che si matura esperienza ð Measurements can progress from lower to higher scales as societies, organizations and practices mature ð Look for opportunities that allow to evolve measurement practices toward scales that provide greater information 23 Concetti Generali Misure Soggettive e Oggettive … ð Quando si misurano gli attributi di entità ci sforziamo di manterere le misurazioni il piu possibile oggettive q Durante il processo di misurazione, assicuriamo che persone diverse producano le stesse misure, indipendentemente dal fatto che stanno misurando prodotti, processi o risorse. q Alcune misure sono più soggettive di altre ð Misure Soggettive: dipendono dal misuratore, sono strettamente legate al contesto in cui sono rilevate q Possono variare al variare del misuratore e dipendere dalla sua opinione § Programmer experience (high, medium, low) § Quality of requirements (1-5 scale) ð Misure Oggettive: q Sono indipendenti dal misuratore. Rilevate oggettivamente, indipendentement sulla entità, e dunque il valore non è influenzato § Development time § Number of LOC of a program / module § Number of defects § Productivity 24 Concetti Generali … Misure Soggettive e Oggettive … ð Al fine di “limitare e contenere” la soggettività delle misure soggettive si definisce e associa un Modello Descrittivo, alla metrica. q Ogni valore della scala è definito con una descrizione testuale per meglio chiarire e spiegare i range dei valori e ridurre la interpretazione soggettiva delle informazioni. q Criticality of requirements (1-5 point scale) § 1. not important (it does not impact on any user) § 2. low importance (impacts on few users) § 3. average importance (impacts on several users but does not determine consequences if it is not respected) § 4. important (impacts on several users and determines consequences if it is not respected) § 5. critical (if it is not respected, the system cannot be used) 25 Concetti Generali … Misure Soggettive e Oggettive ð In caso di misure Oggettive è necessario fornire un Modello Quantitativo (equazioni, modello di calcolo, formula) associato alla metrica q Non conformance = (nr of violations / nr of times the techniques have been applied) * 100 q Temperature Range § Low: in summer between 8-12 °C; in winter from -X to 11°C § High: in summer above 13°C; in winter from 12°C and above 26 Concetti Generali Misure Dirette (osservate) e Indirette (calcolate) ð Una volta ottenuto il modello delle entità e degli attributi implicati (i.e. come gli attributi sono mappati e usati per misurare una specifica entità) è possibile definire le misure sulla base del modello q Measure height in cm q Measure dimension of a room in square metres q Measure dimension of a program in LOC ð Misurazione diretta di un attributo di una entità non implica altri attributi o caratteristiche in quanto è rilevato/osservato direttamente q Length of source code (measured by lines of code) q Duration of testing phase (measured by elapsed time in hrs) q Number of defects discovered during the testing process (measured by counting the defects) q Time a programmer spends on a project (measured by months worked) ð Misurazione indiretta implica che un attributo sia misurato combinando misure in relazione tra loro. Necessità di un modello di calcolo (Modello Quantitativo) q Programmer productivity: LOC produced / person months of effort q Module defect density: number of defects / module size q System spoilage: effort spent for fixing defects / total project effort 27 Concetti Generali Riepilogando: Modelli Descrittivi ð Ogni valore del Range della misura è definito con una descrizione testuale. ð Esempi q Tipo di Test può assumere i seguenti valori: § Test strutturale, in caso di componente ad alta complessità procedurale, usa la struttura interna del codice § Test per valori limite, in caso di componenti che hanno bassa complessità procedurale, usa le specifiche della componente che tratta come una black - box q Criticità della Richiesta può assumere uno dei valori del seguente punteggio(soggettivo) 1. Non Importante, anche se non è rispettata non danneggia alcun utente 2. Scarsamente Importante,impatta su pochi utenti 3. Mediamente Importante, impatta su molti utenti, ma non è dannosa se non è rispettata. 4. Importante, impatta su molti utenti ed è dannosa se non è rispettata. 5. Critica, se non è rispettata il sistema non si può utilizzare DIB 28 Concetti Generali Modelli Quantitativi ð Il valore di una misura è calcolato da altre attraverso uno dei seguenti modelli quantitativi q Calcolo con equazione q Trasformazione con corrispondenze tabulari q Calcolo Statistico ð Esempi: q Non Conformità = (Numero di violazioni/numero di applicazioni delle tecniche)*100 q Media dei voti degli studenti di ITPS iscritti al terzo anno DIB 29 La Qualità è Relativa DIB 30 Concetti Generali Modello per la Valutazione secondo la ISO IEC 14598 Supera i requisiti Livello previsto Valore misurato Soddisfacente Area di accettazione Livello peggiore Area di rigetto Inaccettabile Scale della metrica DIB 31 Concetti Generali Soglie dei Valori ð Per soddisfare gli obiettivi di qualità richiesti le misure rilevate sui prodotti e sui processi devono raggiungere predefinite soglie ð Le soglie da raggiungere sono dipendenti dal contesto di esecuzione del processo e dal committente del prodotto ð Normalmente si definisce q un intervallo di successo entro i quali il processo od il prodotto si considera abbia raggiunto l’obiettivo: Smin; Smax q Una soglia di insuccesso al di sotto della quale il processo od il prodotto è rigettato: Srigetto DIB 32 Concetti Generali Miglioramento dei Processi e dei Prodotti ð Se si è raggiunti la soglia di insuccesso è indispensabile individuare ed eseguire iniziative di miglioramento ð Se si è nell’intervallo di successo il management può decidere: q di migliorare il processo per far salire le soglie verso Smax q di stringere l’intervallo di successo per aumentare la capacità del processo ð Se si sono raggiunte per tutte le misure le soglie massime ed i processi sono stabili il management può decidere di far salire il loro valore per indurre maggiore maturità del contesto di esecuzione DIB 33