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
Scarica

Analisi delle Tecniche di Software Fault Prediction