Misurazione del software Misurazione del software IS Misurazione del software IS Scienza e misura Misurazione del software IS Finalità della misura Rendere oggettivi i risultati degli esperimenti effettuati Avere dati da cui ricavare modelli matematici L’oggettività della misura implica ripetibilità, confronto, confidenza Ingegneria del Software V. Ambriola, G.A. Cignoni, C. Montangero, L. Semini Aggiornamenti di: T. Vardanega (UNIPD) 1/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Limiti intrinseci della misura Approssimazione nella misura di realtà fisiche Astrazione nella misura di valutazione o di stima Dipartimento di Informatica, Università di Pisa Misurazione del software IS Misurare Un’attività quotidiana Misurare per conoscere Misurare per giudicare L’effetto di semplificazione e imprecisione Misura e metrica Grandezze fisiche: massa, lunghezza, velocità … Grandezze economiche: prezzi, indici (inflazione, PIL, AEX), .. Di tutto di più: gradimento, reddito, caratteristiche fisiche, … Misurazione UniPD - 2013/14 - Ingegneria del Software mod. B 2/39 Processo che assegna numeri o simboli ad attributi di entità del mondo reale per descriverle secondo regole definite Misura Risultato della misurazione Assegnazione empirica e oggettiva di un valore (numerico o simbolo) a un’entità per caratterizzarne un attributo specifico Metrica = insieme di regole Dipartimento di Informatica, Università di Pisa 3/39 Per fissare le entità da misurare, gli attributi rilevanti, l’unità di misura, la procedura per assegnare e interpretare i valori Dipartimento di Informatica, Università di Pisa 4/39 1 Misurazione del software Misurazione del software IS Indicatori Per caratteristiche difficilmente misurabili Obiettivi della misurazione nel SW La misura desiderata può essere ottenuta indirettamente a partire da altre misure ottenute tramite stime o predizioni Identificare gli attributi misurabili Determinare gli indicatori per le caratteristiche non misurabili Misura quantitativa del grado di possesso di uno specifico attributo da parte di un sistema, componente, processo 5/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Strumenti di valutazione e controllo Entità da misurare Processi Progetti Prodotti Risorse Interni Esterni Dipartimento di Informatica, Università di Pisa UniPD - 2013/14 - Ingegneria del Software mod. B Importanza della misurazione “Misura ciò che è misurabile e rendi misurabile ciò che non lo è” Lord William Thomson Kelvin (1824-1907) “You can't control what you can't measure” 6/39 Galileo Galilei (1564-1642) “If you cannot measure it, you cannot improve it” misurabili rispetto alle entità misurabili rispetto all’ambiente 7/39 Misurazione del software IS Categorie di attributi Se necessario scegliere maggiore effetto per minor costo Dipartimento di Informatica, Università di Pisa insiemi correlati di procedure astratte attività concrete legate a tempo e risorse beni e servizi in uscita dai progetti elementi impiegati e consumati dal progetto In modo proattivo piuttosto che reattivo Decidere quali azioni correttive intraprendere Le metriche nella produzione Progetti – stime, preventivi e consuntivi di costo e di tempo Prodotti – qualità Processi – qualità (capability, maturity), miglioramenti Risorse – consumo Interpretare, cogliere tendenze Metrica secondo il glossario SWE di IEEE Valutare lo stato di Metriche usate per stimare caratteristiche Misurazione del software IS Tom de Marco (1940, -) software engineering author Dipartimento di Informatica, Università di Pisa 8/39 2 Misurazione del software Misurazione del software IS Misurazione del software IS Processo di misurazione Strategie (Come e discipline ISO/IEC 15939 Software Measurement Process Measurement Information Model: descrive i valori di misurazione da produrre e le relazioni tra loro Measurement Process Model: descrive il processo di misurazione misurare Linee guida (p.es. Practical Software Measurement) Cosa e perché CMMI 9/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Secondo ISO 15939 definire) Cosa misurare Come Come capire i bisogni informativi “the information needs are based on goals, constraints, risks, and problems which originate from the technical and mgmt processes” CMMI suggerisce di determinarli nelle seguenti aree Requirements Management Design & Implementation Verification & Validation (V&V) Quality Assurance Configuration Management Project Management Risk analysis & decision analysis Training 11/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Esempio – 1 Visione globale di ISO/IEC 15939 Dipartimento di Informatica, Università di Pisa UniPD - 2013/14 - Ingegneria del Software mod. B 10/39 Per i responsabili di progetto Quale è il costo del processo? Quale è la produttività degli sviluppatori? Quale è la qualità dei prodotti? Per gli sviluppatori Quanto verificabili sono i requisiti? Abbiamo rimosso tutti i difetti? Abbiamo soddisfatto tutti i requisiti? Dipartimento di Informatica, Università di Pisa 12/39 3 Misurazione del software Misurazione del software IS Misurazione del software IS Un semplice modello di produttività Lead time Productivity Metrica di project management Cost Personnel Value HW Time Quality Reliability Money Quantity Defects Size Resources SW Complexity LT : lead time Environmental Constraints WiP : work in progress Problem difficulty Functionality 13/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Misura il tempo di calendario che intercorre tra un ordine di sviluppo e la relativa consegna Misurazione del software IS Esempio – 2 (CMMI level 2) Requirements Management Risk analysis Configuration Management Metriche software Quanto le pratiche in uso aderiscono a quelle di riferimento Quanto i prodotti del progetto soddisfano i requisiti 15/39 Dipartimento di Informatica, Università di Pisa Problema aperto Quali rischi gravano attualmente sul progetto e quanto Il software è difficile da misurare Il software ha caratteristiche multiformi Le tecnologie cambiano rapidamente L’ambiente di esecuzione ha una grande influenza Quale è l’impatto di una data modifica Quale è il grado di integrità delle baseline di progetto Project Management Quanto sono affidabili i preventivi e quanto accurati i consuntivi Quanto efficaci sono le misure correttive quando concretamente adottate Tipi di metriche Quality Assurance Del prodotto in sé Delle sue funzionalità Del suo comportamento quanto è grande cosa deve fare cosa succede e quando Quanto le pratiche in uso aderiscono a quelle di riferimento Quanto i prodotti del progetto soddisfano le aspettative Dipartimento di Informatica, Università di Pisa UniPD - 2013/14 - Ingegneria del Software mod. B 14/39 Dipartimento di Informatica, Università di Pisa 16/39 4 Misurazione del software Misurazione del software IS Misurazione del software IS Linee di codice sorgente (SLOC) La metrica più intuitiva e più usata Conteggio dei costrutti / comandi Semplificato e adattato alle funzionalità degli editor Usata per derivare informazioni di costo e produttività Rapportata alla densità di commenti Limiti Dipendente da sintassi e potenza espressiva del linguaggio Dipendente dallo stile di codifica 17/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Software Science – 2 Unità di misura n1 = numero di operatori distinti usati dal programma n2 = numero di operandi distinti usati dal programma N1 = numero di occorrenze degli operatori N2 = numero di occorrenze degli operandi Per determinare (tra l’altro) * La dimensione N di un programma N = n1 log2 n1 + n2 log2 n2 tipicamente si ha N = (N1+N2) * Il volume V di un programma V = (N1+N2) log2 (n1+n2) V varia al variare del linguaggio di programmazione Halstead assegna un valore (livello) I come costante di linguaggio Dipartimento di Informatica, Università di Pisa 19/39 ma la ricerca ha mostrato che essa dipende anche dal programmatore Misurazione del software IS Software Science – 1 Complessità ciclomatica – 1 Maurice H. Halstead, Elements of Software Science, Elsevier, 1977 Complessità del codice Misura a posteriori (molto più facile che a priori!) Controversa Basata sul numero e sul tipo dei costrutti Basata su elementi di psicologia cognitiva e statistica UniPD - 2013/14 - Ingegneria del Software mod. B Indipendente dal linguaggio di programmazione Complessità del flusso di controllo Adatta solo ai primi linguaggi di programmazione Oggi è statisticamente inefficace Dipartimento di Informatica, Università di Pisa Limiti Proposta da Thomas McCabe nel 1976 Funzione dei possibili cammini indipendenti all’interno di un singolo sottoprogramma Misurazione astratta di un attributo significativo del codice Limiti Fallibilità dimostrata Costosa da applicare prima di progettare il codice in dettaglio 18/39 Nonostante ciò ancora largamente usata Dipartimento di Informatica, Università di Pisa 20/39 5 Misurazione del software Misurazione del software IS Misurazione del software IS Complessità ciclomatica – 2 Il valore rilevato va confrontato con soglie prefissate Complessità ciclomatica – 4 P.es.: [1, 10] complessità bassa; [21, 50] complessità elevata; [51, …) complessità inaccettabile Corrisponde al numero di casi di prova necessari per verificare ogni possibile esito di ogni ramo di decisione della procedura Misura la complessità del flusso di controllo ma non la complessità del flusso dei dati Il grado di fan-in e fan-out applicato ai dati può aiutare a stimare la complessità del flusso dei dati Meglio calcolarlo usando strumenti automatici 21/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Errore in difetto La complessità reale è maggiore di quella misurata Esempio: decisione, v(G) 6 5 2 3 Ma il codice sorgente è offuscato! int _INT = 1; int INT_ = 0; int Int_ ( int _int ) { if (_int == INT_) return _INT; else return _int * Int_ ( _int – _INT ); } Dipartimento di Informatica, Università di Pisa Misurazione del software IS Complessità ciclomatica – 3 Definizione algebrica costruita sopra il grafo di controllo G che descrive una procedura v(G) e n p e n p numero di percorsi lineari in G numero degli archi (flusso) numero dei nodi (espressioni o comandi) numero delle componenti connesse da ogni arco (p 2 per esecuzione sequenziale: 1 predecessore, 1 successore) Esempio: sequenza, v(G) 3 4 2 1 Dipartimento di Informatica, Università di Pisa UniPD - 2013/14 - Ingegneria del Software mod. B 22/39 23/39 Complessità ciclomatica – 5 Errore in eccesso La complessità reale è inferiore a quella misurata Esempio, v(G) 10 2 2 4 switch visto come una sequenza di if annidati v(G) C 1 Dove C è il numero dei casi Dipartimento di Informatica, Università di Pisa 24/39 6 Misurazione del software Misurazione del software IS Misurazione del software IS Function Point – 1 Esempio public void isValidSearchCriteria(SearchCriteria s) { if(s!=null) { return true; } else { CC = 2 return false; } } Allan J. Albrecht e John E. Gaffney, IEEE TSE 1983 Non misura il software ma le sue entità logico-funzionali Dimensione di progetto e di produttività in relazione ai requisiti funzionali Indipendente dal linguaggio di programmazione International Function Point User Group (IFPUG) Conta le funzionalità differenziate per categorie e pesate in base ad attributi del prodotto Misurazioni diverse possono dare risultati diversi Corrispondente interessante negli Use Case Points tynerblain.com/blog/2007/02/12/software-cost-estimation-ucp-1/ Per approfondire: http://www.aivosto.com/project/help/pm-complexity.html 25/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Misurazione del software IS Probabilità di malfunzionamento Osservazioni empiriche Complessità ciclomatica Dipartimento di Informatica, Università di Pisa UniPD - 2013/14 - Ingegneria del Software mod. B 26/39 27/39 Dipartimento di Informatica, Università di Pisa Function Point – 2 Componenti misurate Definizione External Input (EI) Processo elementare a seguito del quale dati entrano nella componente misurata External Output (EO) Processo elementare a seguito del quale dati escono dalla componente External Inquiry (EQ) Processo elementare per il quale specifici dati interni sono richiesti alla componente e da essa emessi Internal Logical File (ILF) Gruppo di dati correlati interni alla componente e alimentati tramite EI External Interface File (EIF) Gruppo di dati correlati esterni alla componente e usati come riferimento Dipartimento di Informatica, Università di Pisa 28/39 7 Misurazione del software Misurazione del software IS Misurazione del software IS Function Point – 3 Standard per misure funzionali – 1 Complessità Componente Totale Bassa Media Alta EI 3 4 6 EO 4 5 7 EQ 3 4 6 ILF 7 10 15 EIF 5 7 10 ISO/IEC 14143 – Functional size measurement Concetti definiti 29/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Definire la terminologia del settore Definire i criteri per valutare le metriche funzionali Definire i criteri per accreditare i professionisti che le usano Accuratezza di una misura funzionale Accuratezza di una metrica funzionale Ripetibilità e riproducibilità di una metrica funzionale Soglia di sensibilità di una metrica funzionale Applicabilità a un dominio funzionale Misurazione del software IS Object point Boehm et al., 1995, insieme a COCOMO 2.0 Conteggio delle componenti Tipo Screen Report 3GL Component semplice 1 2 - medio 2 5 - Standard per misure funzionali – 2 Le metriche tecniche dipendono dalla tecnologia difficile 3 8 10 Dipartimento di Informatica, Università di Pisa UniPD - 2013/14 - Ingegneria del Software mod. B Che è variabile nel tempo! Utili come vista interna per stimare il costo di produzione ISO/IEC 14143 (functional size measurement) aiuta a orientarsi verso metriche funzionali Fattore di aggiustamento rispetto alla percentuale di riuso Che possono fornire valori di misura più significativi Utili come vista esterna per stimare il prezzo di vendita La misurazione è resa indipendente dalla fase del progetto 30/39 31/39 Dipartimento di Informatica, Università di Pisa A meno delle richieste esplicite di cambiamento Dipartimento di Informatica, Università di Pisa 32/39 8 Misurazione del software Misurazione del software IS Misurazione del software IS Misure interne ed esterne Esempi di misure interne Metrica per i metodi Un metodo è sostanzialmente procedurale Numero di requisiti, loro volatilità Function Points, Use Case Points Coesione, accoppiamento, fan-in / fan-out SLoC, complessità ciclomatica Livello di copertura delle prove Si può usare McCabe come metrica di base Corretta per tenere conto di interfacce e variabili locali Complessità di un metodo complessità dell’interfaccia del metodo complessità delle variabili locali complessità ciclomatica del codice peso determinato statisticamente Esempi di misure esterne ISO/IEC 9126-1 33/39 Dipartimento di Informatica, Università di Pisa Misurazione del software IS Misurazione del software IS Metriche per software OO Metrica per le classi Occorrono metriche dedicate 35/39 Dipartimento di Informatica, Università di Pisa Complessità di una classe Le metriche tradizionali non sono accurate Complessità funzionale e complessità strutturale Non linearità del codice ∑ La misura SLOC non funziona! Uso di strutture e funzioni complesse McCabe non funziona come misura assoluta! Metriche per i metodi Metriche per le classi Metriche per i sistemi Dipartimento di Informatica, Università di Pisa UniPD - 2013/14 - Ingegneria del Software mod. B ∑ ∑ 34/39 complessità dell’interfaccia della classe complessità locale complessità locale esterna complessità locale interna complessità degli attributi locali complessità dei metodi locali costante o CC di classe attributo peso determinato statisticamente Dipartimento di Informatica, Università di Pisa 36/39 9 Misurazione del software Misurazione del software IS IS Metrica per i sistemi Proprietà della metrica per le classi Considera solo la parte locale della classe Considera la complessità dell’uso delle classi negli attributi Riferimenti T.J. McCabe, “A Complexity Metric”, IEEE Trans. on Software Engineering, 1976 A.J. Albrecht, J.E. Gaffney. “Software Function, […]: A Software Science Validation”, IEEE Trans. on Software Engineering, 1983 N.E. Fenton, S.L. Pfleeger, “Software Metrics: A Rigorous & Practical Approach, II Ed., Int. Thompson Computer Press, 1997 B. Boehm et al., “Cost Models for Future Software Life Cycle Processes: CoCoMo II”, http://sunset.usc.edu/ Complessità del sistema Metriche utilizzabili come fattori d’influenza NC NRC NLC Numero totale di classi Numero di classi radice Numero di classi foglia 37/39 Dipartimento di Informatica, Università di Pisa Misurazione del software Dipartimento di Informatica, Università di Pisa 39/39 Misurazione del software IS Qualità delle metriche Precisione In termini di esattezza e ripetibilità rispetto ai valori prodotti SLOC e McCabe FP sì no (questione di maturità) Aderenza alla realtà La misura corrisponde all’evidenza sperimentale Quando le metriche sono usate come indicatori Accuratezza Corrispondenza con la percezione o la realtà effettiva Dipartimento di Informatica, Università di Pisa UniPD - 2013/14 - Ingegneria del Software mod. B 38/39 10
© Copyright 2024 Paperzz