43
UNIVERSITÀ DEGLI STUDI DEL MOLISE Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Relatore Prof. Fausto Fasano Candidato Nicola Del Gobbo 118360 Generazione automatica delle checklist di ispezione tramite user profiling

Automatic generation of inspection checklist by user profiling

Embed Size (px)

Citation preview

UNIVERSITÀ DEGLI STUDI DEL MOLISE

Facoltà di Scienze Matematiche, Fisiche e NaturaliCorso di Laurea in Informatica

Relatore Prof. Fausto Fasano

CandidatoNicola Del Gobbo

118360

Generazione automatica delle checklist di ispezione tramite user profiling

2Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Il processo di sviluppo software

• Attività strutturali.

• Attività di supporto (“ombrello”).

Processo di sviluppo software

Attività strutturali

Attività “ombrello” Ispezioni software

3Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Le ispezioni software

• Processo altamente rigoroso introdotto da Michael

Fagan nel 1976.

• Scopo: identificare i difetti e verificare che l’artefatto

abbia determinate caratteristiche.

4Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Una nuova idea: la Pre Ispezione

Creazione dell’artefatto

softwarePre Ispezione

Ispezione dell’artefatto

software

5Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Le fasi della Pre Ispezione

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

6Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Pre Ispezione: Data Collection

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

7Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Pre Ispezione: Profiling

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

8Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Pre Ispezione: Selection

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

9Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Pre Ispezione: Checklist Generation

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

10Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Pre Ispezione: Light Inspection

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

11Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

EPit: un tool per il processo di Pre Ispezione

• Deve supportare in pieno tutte le fasi della Pre Ispezione.

• Nell’ambito delle ispezioni si occupa del code inspection.

• Artefatto: codice sorgente di tipo Java.

• EPit (Eclipse Pre Inspection Tool) plug-in dell’IDE Eclipse.

12Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Profilo di un programmatore

Numero di errori presente

Tipo di errore

Layout

Bugs generati

13Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Data Mining: una visione generale sul processo

Dati grezzi Dati aggregati e puliti

Dati trasformati

Classificazione e validazione

 

14Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Learning model scelti(1)

• Problema di classificazione.

• Principio guida: “Simplicity First”.

• Sperimentazioni.

Naïve Bayes Decision tree Bayesian network

15Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Learning model scelti(2)

Risultati della tenfold cross-validation

Risultati della threefold cross-validation

16Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

EPit: data mining al lavoro(1)

Version Control System

Bug Track System

Software Inspection System

Elenco di risorse (codice sorgente) e bug associati

CVS – Git – SVN

Bugzilla – JIRA

SmartBear

17Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

EPit: data mining al lavoro(2)

Elenco di risorse (codice sorgente) e bug associati

Codice sorgente Tool automatico di ispezione

Checklist

72 Domande divise per 11 categorie:

• MODULARITY DEFECT (MD) • COMMENT DEFECT (CM) • LAYOUT DEFECT (LD) • NAMING CONVENTION (NC) • COMPUTATION COMPLEXITY DEFECT (CC) • COMPARISON RELATIONAL DEFECT (CRD)• CONTROL FLOW DEFECT (CF)• CLASS DESIGN DEFECT (CD) • VARIABLE ATTRIBUTE AND CONSTANT DEFECT (VC)• MODULE INTERFACE DEFECT (MI) • METHODS DEFECT (FD)

18Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

EPit: data mining al lavoro(3)

Elenco di risorse (codice sorgente) e bug associati

Estrazione delle informazioni dell’eventuale bug collegato

19Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

EPit: data mining al lavoro(4)

20Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

EPit: data mining al lavoro()

Codice sorgente

Istanza da classificare

21Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

EPit: data mining al lavoro(6)

Dati di training

Istanza da classificare

?Classificatore

Yes

No

Checklist

22Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

EPit: un esempio di utilizzo

• Installazione

• Configurazione

• Profiling

• Generazione di checklist

• Gestione delle checklist

23Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Installazione(1)

• it.unimol.checkstyle_5.3.3.jar

• it.unimol.core.epit_1.0.0.jar

• it.unimol.ui.epit_1.0.0.jar

• org.apache.commons.io_2.0.1.jar

• weka_3.6.4.jar

24Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Installazione(2)

25Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Installazione(3)

26Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Installazione(4)

27Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Configurazione(1)

28Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Configurazione(2)

29Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Configurazione(3)

30Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Configurazione(4)

31Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Configurazione(5)

32Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Configurazione(6)

33Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Configurazione(7)

34Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Configurazione(8)

35Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Creazione del profilo(1)

36Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Creazione del profilo(2)

37Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Generazione delle checklist(1)

38Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Generazione delle checklist(2)

39Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Gestione delle checklist(1)

40Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Gestione delle checklist(2)

41Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Gestione delle checklist(3)

42Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo

Conclusioni e lavori futuri

• La classificazione è stata corretta nel 77% dei casi.

• Diminuzione densità di errori = risarmio potenziale compreso tra il 15-40%

• Sperimentazione in un ambiente reale.

• EPit: oltre il linguaggio Java.

• EPit: usare i dati di impiego dell’IDE per creare il profilo.

• EPit: migliorare l’efficienza dei modelli usati.

• EPit: maggiore usabilità (utilizzo di marker sul codice sorgente).

• Pre Ispezione: processo applicabile per qualsiasi tipo di artefatto software?

GRAZIE A TUTTI PER L’ATTENZIONE

”Stay hungry. Stay Foolish.”cit.(Steve Jobs)