Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction tesi di laurea Analisi delle Tecniche di Software Fault Prediction Anno Accademico 2010/2011 relatore Ch.mo prof. Stefano Russo correlatore Ch.mo prof. Roberto Pietrantuono candidato Gianluigi Di Capua Matr. 534/2514 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction Obiettivi Analizzare gli studi condotti in letteratura sulle tecniche di fault prediction nei sistemi software Individuare caratteristiche comuni e generali, se presenti, applicabili nella totalità dei casi in base alle informazioni ottenute Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction Contesto La fault prediction rappresenta un campo di ricerca importante dell’ Ingegneria del Software Essa aiuta : A migliorare la qualità del software Ad abbassare i costi: Focus sui moduli software più critici Pianificazione dell’allocazione delle risorse ottimale A evitare costose rielaborazioni Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction L’indagine La documentazione su cui è basato lo studio consiste in un insieme di 31 studi empirici(da un set iniziale di 58) Sono stati utilizzati due approcci differenti di analisi : 1. Analisi rispetto a dimensioni singole 2. Analisi incrociate Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction Le dimensioni Dimensioni estrapolate dagli studi considerati ai fini della nostra indagine: Anni di pubblicazione Citazioni Tipologie di metriche considerate Selezione delle metriche Tecniche statistiche utilizzate Numero di campioni testati Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction Analisi rispetto alla singola dimensione Anni di pubblicazione Citazioni 12 3% 3% 36% 10 3% 8 29% 6 11 4 2 26% 1980-1985 1986-1990 2001-2005 2006-2011 7 4 3 3 3 0 1991-1995 1996-2000 0--10 11-30 31-60 61-- 101-- oltre 100 200 200 CITAZIONI Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction Tipologie di metriche considerate Selezione delle metriche 20 20 20 16 18 16 13 14 14 12 14 12 10 8 18 18 11 10 8 6 5 6 6 4 4 2 2 0 0 METRICHE OO METRICS HALSTEAD METRICS ALTRE COMPLEXITY METRICS SIZE METRICS METRICHE SELEZIONATE METRICHE NON SELEZIONATE SELEZIONE DELLE METRICHE Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction Tecniche statistiche utilizzate Numero di campioni testati 20 16 15 9 10 5 16% 19% 7 5 4 2 4 4 16% 1 49% 0 TECNICHE STATISTICHE LINEAR REGRESSION PCA NAIVE - BAYES DECISION TREE ALTRE LOGISTIC REGRESSION STEPWISE REGRESSION BAYESIAN NETWORK NEURAL NETWORK 0--100 501--1000 101--500 OLTRE 1000 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction Analisi incrociate : 4 casi da studiare • Anni di pubblicazione – Tipologie di metriche considerate 10 9 9 8 7 6 7 5 5 4 3 2 1 0 4 4 4 4 3 3 2 2 1 1 0 0 0 0 OO METRICS COMPLEXITY METRICS 1980-1985 2 0 1986-1990 0 1 1 0 0 0 HALSTEAD METRICS 1991-1995 1 1 1 SIZE METRICS 1996-2000 2001-2005 0 0 ALTRE 2006-2011 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction • Anni di pubblicazione – Tecniche statistiche utilizzate 7 6 6 5 5 5 4 4 4 3 3 3 3 2 22 22 2 1 1 1 1 1 1 1 1 1 00000000 000 00000 00 000000 1986-1990 1991-1995 0 0 0000 0 0 0 0 1980-1985 1996-2000 2001-2005 LINEAR REGRESSION LOGISTIC REGRESSION PCA STEPWISE REGRESSION NAIVE BAYES BAYESIAN NETWORK DECISION TREE NEURAL NETWORK ALTRE 2006-2011 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction • Tipologie di metriche considerate – Selezione delle metriche 16 15 14 12 10 9 8 7 6 6 5 5 4 4 3 2 2 0 0 OO METRICS COMPLEXITY METRICS HALSTEAD METRICS METRICHE SELEZIONATE SIZE METRICS METRICHE NON SELEZIONATE ALTRE Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction • Tipologie di metriche considerate – Tecniche statistiche utilizzate 14 12 12 10 8 7 6 6 6 5 4 4 3 2 2 4 3 1 3 2 1 2 1 0 3 3 2 2 1 0 1 2 2 1 2 1 0 2 2 22 1 2 2 1 0 1 00 000 0 OO METRICS COMPLEXITY METRICS LINEAR REGRESSION STEPWISE REGRESSION DECISION TREE HALSTEAD METRICS LOGISTIC REGRESSION NAIVE - BAYES NEURAL NETWORK SIZE METRICS PCA BAYESIAN NETWORK ALTRE ALTRE Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi delle Tecniche di Software Fault Prediction Conclusioni Direzioni Future Ampia considerazione delle metriche Object – Oriented Analisi di studi empirici che adoperano tecniche di validazione Predominanza di studi empirici effettuanti la selezione delle metriche Vasto utilizzo della tecnica statistica Logistic Regression Elevato numero di studi oscillanti fra i 101 e i 500 campioni testati Valutazione di tecniche statistiche non analizzate