Misurazione del software. Misurazione. Misurazione del software. UniPD /13 - Ingegneria del Software mod. B 1. Misurare. IS Misura e metrica

Documenti analoghi
IS Corso di Ingegneria del Software 1

Misurazione del software

18/05/2014. Università di Ferrara Corso di Ingegneria del Software AA 2013/2014

Misurazione del software

Misurazioni. Misurazione del software. Scienza e misura. IS Misura e metrica. Misurare. Finalità della misura. Limiti intrinseci della misura

Metodi e obiettivi di quantificazione

Verifica parte IV. Rif. Ghezzi et al

Qualità del software. Qualità: intuizione iniziale. Qualità del software. Qualità: una definizione. IS Sistema qualità

Qualità del software. Qualità del software. Qualità: intuizione iniziale. IS Glossario 10. IS Glossario 9

Qualità del software. Qualità del software. Glossario. IS Glossario. Qualità: intuizione iniziale

SCD IS. Documentazione. Domande ricorrenti 1. Valutazione quantitativa 1. Perché documentare... UniPD Ingegneria del Software mod.

SCD IS. Documentazione. Domande ricorrenti 1. Cosa documentare. Come documentare. Perché documentare 3. Domande ricorrenti 2. Perché documentare

Verifica e validazione: introduzione

Qualità del software. Tecniche di Programmazione 2009/10. Giovanni A. Cignoni contenuti. definizione di qualità

SCD IS. Documentazione. Documentazione. Perché documentare... Valutazione quantitativa 1. Domande ricorrenti 1. Perché documentare

SCD IS. Documentazione. Documentazione. Valutazione quantitativa 1. Domande ricorrenti 1. Modello a V. Perché documentare

ITIS A. Volta Flavia Lollis pag. 1

IS Corso di Ingegneria del Software 1

IS Corso di Ingegneria del Software 1

IS Corso di Ingegneria del Software 1

Qualità del software. Qualità del software. IS Corso di Ingegneria del Software 1. Contenuti. IS Qualità: una definizione.

IS Corso di Ingegneria del Software 1

Verifica e validazione: introduzione

software Progettazione software IS Corso di Ingegneria del Software 1 Contenuti Progettare prima di produrre Dall analisi alla progettazione

Collaudo del software

Qualità. del software. Contenuti. Qualità: intuizione iniziale. Qualità del software. IS Qualità: una definizione. IS Ingegneria del Software 1

Qualità del software. Qualità: intuizione iniziale. Contenuti. Qualità del software. IS Qualità: una definizione

Un Sistema Basato sulla Conoscenza per il Calcolo dei Function Point. Extended Abstract

Progettazione software

Il ciclo di vita del software

Progettazione software

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

Gestione di progetto: pianificazione

Corso di Ingegneria del Software. Metriche Parte II

Verifica e validazione: introduzione

Indice Capitolo 1 Capitolo 2 Capitolo 3 Capitolo 4 Capitolo 5 Capitolo 6

Metriche basate sulla LOC

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Verifica e validazione: introduzione

Gestione di progetto. Cosa è un progetto? Gestione di progetto. Fondamenti di gestione. Ruoli

SEERP. Quality Report

Breve cenno della psicofisica

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010

Gestione di progetto. Gestione di progetto. Fondamenti di gestione. Cosa è un progetto? Ruoli

Costi. Studio di fattibilità Progetto di massima. 5. Progetto di massima. M.Rumor. Studio di fattibilità. Studio di fattibilità Progetto di massima

Introduzione. Contenuti da Cap. 1 Ghezzi et al.

Gestione di progetto. Gestione di progetto. Criticità. Fondamenti. Fattori di rischio. IS Ingegneria del Software 1

MATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari

Materiale didattico. Sommario

IS Corso di Ingegneria del Software 1

La fase di Progettazione

PROGRAMMAZIONE INFORMATICA SECONDO BIENNIO. Liceo Scientifico opzione Scienze Applicate

Docenti Marco Cirrito, Pier Luigi Girelli. Disciplina. OBIETTIVI MINIMI (necessari al passaggio alla classe successiva)

Collaudo del software

ISTITUZIONE SCOLASTICA DI ISTRUZIONE TECNICA LYCÉE TECHNIQUE PROGRAMMAZIONE EDUCATIVA E DIDATTICA ANNUALE PER COMPETENZE A.S.

La programmazione nel linguaggio JavaScript. Il programma

Corso di Ingegneria del Software. I costi del software

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

Qualità del software. Qualità del software. IS Corso di Ingegneria del Software 1. Contenuti. Qualità: una definizione.

Misure Elettroniche (e Strumentazione)

ISTITUTO COMPRENSIVO SAN VENANZO PROGRAMMAZIONE ANNUALE MATEMATICA CLASSE III SECONDARIA I GRADO LIVELLI DI COMPETENZE I QUADRIMESTRE

Ingegneria del Software 22a. Progettazione delle prove. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria Economica: i modelli per una nuova progettualità

Istituto di Istruzione Superiorevia Salvini 24 Roma Liceo M. Azzarita Liceo delle scienze applicate Materia:Informatica Programmazione a.s.

Modellazione di sistemi ingegneristici (parte 2 di 2)

SCD IS. Accertamento di qualità. Accertamento di qualità. UniPD /10 - Ingegneria del Software mod. B 1. Premesse 1. Premesse 2.

Automatic generation of test cases

Introduzione alla programmazione strutturata

Sistemi Informativi I Function Point Analisys

Misura della performance di ciascun modello: tasso di errore sul test set

Questi appunti costituiscono soltanto una traccia sintetica del Corso di Laboratorio di Fisica, a prescindere dalle opportune spiegazioni e dai

Grandezze fisiche e loro misura

Modularizzazione del software

Il ciclo di vita del SW

IS Corso di Ingegneria del Software 1

Grandezze fisiche e loro misura

Modelli e Metodi per la Simulazione (MMS)

prot: GU del: 08/11/2018 Dipartimento Trasformazione Digitale

Il ciclo di vita del SW

Gestione di progetto. Cosa è un progetto? Gestione di progetto. Fondamenti di gestione. Criticità

CALCOLO DELL ERRORE E VALUTAZIONE DI UN METODO ANALITICO

IE FISICA Verifica 10 gennaio 2015 tutti gli esercizi e tutte le domande

Introduzione a Planguage precisare i requisiti

Alberi di Regressione

3. Ciclo di Vita e Processi di Sviluppo

***************** AvvioModoRiscaldamentoForzato L Utente attiva la modalità di ripristino veloce della temperatura.

Problemi, istanze, soluzioni

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Caratteristiche di un linguaggio ad alto livello

Di cosa parliamo oggi?

Indice Premessa Cenni storici delle misure

SCD IS. Processi Software. UniPD Ingegneria del Software mod. A 1. Parole chiave 3. Modelli di ciclo di vita.

Da: Stefano Tonchia Università di Udine Progettare e gestire il sistema aziendale di misurazione delle prestazioni.

Corso di Informatica

14. Verifica e Validazione

La misurazione dei sistemi di Data Warehouse

Transcript:

Misurare Misurazione del software Ingegneria del Software V. Ambriola, G.A. Cignoni, C. Montangero, L. Semini Aggiornamenti di: T. Vardanega (UNIPD) Un attività quotidiana Grandezze fisiche: massa, lunghezza, velocità Grandezze economiche: prezzi, indici (inflazione, PIL, AEX),.. Di tutto di più: gradimento, reddito, caratteristiche fisiche, Misurare per conoscere Misurare per giudicare L effetto di semplificazione e imprecisione Dipartimento di Informatica, Università di Pisa 1/36 Dipartimento di Informatica, Università di Pisa 2/36 Scienza e misura Misura e metrica 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 Limiti intrinseci della misura Approssimazione nella misura di realtà fisiche Astrazione nella misura di valutazione o di stima Misurazione 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 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 3/36 Dipartimento di Informatica, Università di Pisa 4/36 UniPD - 2012/13 - Ingegneria del Software mod. B 1

Indicatori Le metriche nella produzione Per caratteristiche difficilmente misurabili La misura desiderata può essere ottenuta indirettamente a partire da altre misure ottenute tramite stime o predizioni Metriche usate per stimare caratteristiche Identificare gli attributi misurabili Determinare gli indicatori per le caratteristiche non misurabili Metrica secondo il glossario SWE di IEEE Misura quantitativa del grado di possesso di uno specifico attributo da parte di un sistema, componente, processo Strumenti di valutazione e controllo Entità da misurare Processi insiemi correlati di procedure astratte Progetti attività concrete legate a tempo e risorse Prodotti beni e servizi in uscita dai progetti Risorse elementi impiegati e consumati dal progetto Categorie di attributi Interni misurabili rispetto alle entità Esterni misurabili rispetto all ambiente Dipartimento di Informatica, Università di Pisa 5/36 Dipartimento di Informatica, Università di Pisa 6/36 Processo di misurazione 1 Processo di misurazione 2 Obiettivi Valutare la qualità di un prodotto o di un processo A posteriori: per verifica di conformità A priori: per stima di opportunità o fattibilità Quantificare i miglioramenti prestazionali Per fini di Software Process Improvement Motivazioni "If you cannot measure it, you cannot improve it" Lord William Thomson Kelvin (1824-1907) You can't control what you can't measure Tom de Marco (1940, -) software engineering author Strategie e discipline (Come definire) Cosa misurare O/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 Come misurare Linee guida (p.es. Practical Software Measurement) Cosa e perché CMMI Dipartimento di Informatica, Università di Pisa 7/36 Dipartimento di Informatica, Università di Pisa 8/36 UniPD - 2012/13 - Ingegneria del Software mod. B 2

Visione globale di O/IEC 15939 Come capire i bisogni informativi Dipartimento di Informatica, Università di Pisa 9/36 Secondo O 15939 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 Dipartimento di Informatica, Università di Pisa 10/36 Esempio (livello 2 di CMMI) Lead time Requirements Management Quanto le pratiche in uso aderiscono a quelle di riferimento Quanto i prodotti del progetto soddisfano i requisiti Risk analysis Quali rischi gravano attualmente sul progetto e quanto Configuration Management 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 Quality Assurance Quanto le pratiche in uso aderiscono a quelle di riferimento Quanto i prodotti del progetto soddisfano le aspettative Dipartimento di Informatica, Università di Pisa 11/36 Metrica di project management Misura il tempo di calendario che intercorre tra un ordine di sviluppo e la relativa consegna Dipartimento di Informatica, Università di Pisa 12/36 UniPD - 2012/13 - Ingegneria del Software mod. B 3

Metriche software Linee di codice sorgente (SLOC) Problema aperto Il software è difficile da misurare Il software ha caratteristiche multiformi Le tecnologie cambiano rapidamente L ambiente di esecuzione ha una grande influenza Tipi di metriche Del prodotto in sé Delle sue funzionalità Del suo comportamento quanto è grande cosa deve fare cosa succede e quando 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 Dipartimento di Informatica, Università di Pisa 13/36 Dipartimento di Informatica, Università di Pisa 14/36 Software Science 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 Limiti Adatta solo ai primi linguaggi di programmazione Oggi è statisticamente inefficace Dipartimento di Informatica, Università di Pisa 15/36 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 log 2 n1 + n2 log 2 n2 tipicamente si ha N = (N1+N2) * Il volume V di un programma V = (N1+N2) log 2 (n1+n2) V varia al variare del linguaggio di programmazione Halstead assegna un valore (livello) I come costante di linguaggio ma la ricerca ha mostrato che essa dipende anche dal programmatore Dipartimento di Informatica, Università di Pisa 16/36 UniPD - 2012/13 - Ingegneria del Software mod. B 4

Complessità ciclomatica 1 Complessità ciclomatica 2 Proposta da Thomas McCabe nel 1976 Indipendente dal linguaggio di programmazione Complessità del flusso di controllo Funzione dei possibili cammini indipendenti all interno di un singolo sottoprogramma Misurazione astratta di un attributo significativo del codice Limiti Fallibilità dimostrata Nonostante ciò ancora largamente usata Costosa da applicare prima di progettare il codice in dettaglio Il valore rilevato va confrontato con soglie prefissate 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 Dipartimento di Informatica, Università di Pisa 17/36 Dipartimento di Informatica, Università di Pisa 18/36 Complessità ciclomatica 3 Complessità ciclomatica 4 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 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 19/36 Dipartimento di Informatica, Università di Pisa 20/36 UniPD - 2012/13 - Ingegneria del Software mod. B 5

Complessità ciclomatica 5 Esempio 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 21/36 public void isvalidsearchcriteria(searchcriteria s) { if(s!=null) { return true; } else { CC = 2 return false; } } Per approfondire: http://www.aivosto.com/project/help/pm-complexity.html Dipartimento di Informatica, Università di Pisa 22/36 Osservazioni empiriche Function Point 1 Probabilità di malfunzionamento Complessità ciclomatica 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/ Dipartimento di Informatica, Università di Pisa 23/36 Dipartimento di Informatica, Università di Pisa 24/36 UniPD - 2012/13 - Ingegneria del Software mod. B 6

Function Point 2 Function Point 3 Componenti misurate External Input (EI) External Output (EO) Definizione Processo elementare a seguito del quale dati entrano nella componente misurata Processo elementare a seguito del quale dati escono dalla componente Complessità Componente Bassa Media Alta EI 3 4 6 Totale External Inquiry (EQ) Processo elementare per il quale specifici dati interni sono richiesti alla componente e da essa emessi EO 4 5 7 Internal Logical File (ILF) External Interface File (EIF) Gruppo di dati correlati interni alla componente e alimentati tramite EI Gruppo di dati correlati esterni alla componente e usati come riferimento EQ 3 4 6 ILF 7 10 15 EIF 5 7 10 Dipartimento di Informatica, Università di Pisa 25/36 Dipartimento di Informatica, Università di Pisa 26/36 Object point Standard per misure funzionali 1 Boehm et al., 1995, insieme a COCOMO 2.0 Conteggio delle componenti Tipo semplice medio difficile Screen 1 2 3 Report 2 5 8 3GL Component - - 10 Fattore di aggiustamento rispetto alla percentuale di riuso O/IEC 14143 Functional size measurement Definire la terminologia del settore Definire i criteri per valutare le metriche funzionali Definire i criteri per accreditare i professionisti che le usano Concetti definiti 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 Dipartimento di Informatica, Università di Pisa 27/36 Dipartimento di Informatica, Università di Pisa 28/36 UniPD - 2012/13 - Ingegneria del Software mod. B 7

Standard per misure funzionali 2 Misure interne ed esterne Le metriche tecniche dipendono dalla tecnologia Che è variabile nel tempo! Utili come vista interna per stimare il costo di produzione O/IEC 14143 (functional size measurement) aiuta a orientarsi verso metriche funzionali 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 A meno delle richieste esplicite di cambiamento Esempi di misure interne Numero di requisiti, loro volatilità Function Points, Use Case Points Coesione, accoppiamento, fan-in / fan-out SLoC, complessità ciclomatica Livello di copertura delle prove Esempi di misure esterne O/IEC 9126-1 Dipartimento di Informatica, Università di Pisa 29/36 Dipartimento di Informatica, Università di Pisa 30/36 Metriche per software OO Metrica per i metodi Occorrono metriche dedicate 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 Un metodo è sostanzialmente procedurale 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 Dipartimento di Informatica, Università di Pisa 31/36 Dipartimento di Informatica, Università di Pisa 32/36 UniPD - 2012/13 - Ingegneria del Software mod. B 8

Metrica per le classi Metrica per i sistemi Complessità di una classe 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 33/36 Proprietà della metrica per le classi Considera solo la parte locale della classe Considera la complessità dell uso delle classi negli attributi Complessità del sistema Metriche utilizzabili come fattori d influenza NC NRC NLC Numero totale di classi Numero di classi radice Numero di classi foglia Dipartimento di Informatica, Università di Pisa 34/36 Qualità delle metriche Riferimenti Precisione In termini di esattezza e ripetibilità rispetto ai valori prodotti SLOC e McCabe sì FP 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 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/ Dipartimento di Informatica, Università di Pisa 35/36 Dipartimento di Informatica, Università di Pisa 36/36 UniPD - 2012/13 - Ingegneria del Software mod. B 9