Top Banner
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
43

Automatic generation of inspection checklist by user profiling

Aug 12, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Automatic generation of inspection checklist by user profiling

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

Page 2: Automatic generation of inspection checklist by 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

Page 3: Automatic generation of inspection checklist by user profiling

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.

Page 4: Automatic generation of inspection checklist by user profiling

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

Page 5: Automatic generation of inspection checklist by user profiling

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

Le fasi della Pre Ispezione

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

Page 6: Automatic generation of inspection checklist by user profiling

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

Pre Ispezione: Data Collection

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

Page 7: Automatic generation of inspection checklist by user profiling

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

Pre Ispezione: Profiling

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

Page 8: Automatic generation of inspection checklist by user profiling

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

Pre Ispezione: Selection

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

Page 9: Automatic generation of inspection checklist by user profiling

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

Pre Ispezione: Checklist Generation

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

Page 10: Automatic generation of inspection checklist by user profiling

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

Pre Ispezione: Light Inspection

Data Collection Profiling Selection Checklist

GenerationLight

Inspection

Page 11: Automatic generation of inspection checklist by user profiling

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.

Page 12: Automatic generation of inspection checklist by user profiling

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

Page 13: Automatic generation of inspection checklist by user profiling

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

 

Page 14: Automatic generation of inspection checklist by user profiling

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

Page 15: Automatic generation of inspection checklist by user profiling

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

Page 16: Automatic generation of inspection checklist by user profiling

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

Page 17: Automatic generation of inspection checklist by user profiling

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)

Page 18: Automatic generation of inspection checklist by user profiling

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

Page 19: Automatic generation of inspection checklist by user profiling

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

EPit: data mining al lavoro(4)

Page 20: Automatic generation of inspection checklist by user profiling

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

EPit: data mining al lavoro()

Codice sorgente

Istanza da classificare

Page 21: Automatic generation of inspection checklist by user profiling

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

Page 22: Automatic generation of inspection checklist by user profiling

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

Page 23: Automatic generation of inspection checklist by user profiling

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

Page 24: Automatic generation of inspection checklist by user profiling

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

Installazione(2)

Page 25: Automatic generation of inspection checklist by user profiling

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

Installazione(3)

Page 26: Automatic generation of inspection checklist by user profiling

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

Installazione(4)

Page 27: Automatic generation of inspection checklist by user profiling

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

Configurazione(1)

Page 28: Automatic generation of inspection checklist by user profiling

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

Configurazione(2)

Page 29: Automatic generation of inspection checklist by user profiling

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

Configurazione(3)

Page 30: Automatic generation of inspection checklist by user profiling

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

Configurazione(4)

Page 31: Automatic generation of inspection checklist by user profiling

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

Configurazione(5)

Page 32: Automatic generation of inspection checklist by user profiling

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

Configurazione(6)

Page 33: Automatic generation of inspection checklist by user profiling

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

Configurazione(7)

Page 34: Automatic generation of inspection checklist by user profiling

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

Configurazione(8)

Page 35: Automatic generation of inspection checklist by user profiling

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

Creazione del profilo(1)

Page 36: Automatic generation of inspection checklist by user profiling

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

Creazione del profilo(2)

Page 37: Automatic generation of inspection checklist by user profiling

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

Generazione delle checklist(1)

Page 38: Automatic generation of inspection checklist by user profiling

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

Generazione delle checklist(2)

Page 39: Automatic generation of inspection checklist by user profiling

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

Gestione delle checklist(1)

Page 40: Automatic generation of inspection checklist by user profiling

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

Gestione delle checklist(2)

Page 41: Automatic generation of inspection checklist by user profiling

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

Gestione delle checklist(3)

Page 42: Automatic generation of inspection checklist by user profiling

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?

Page 43: Automatic generation of inspection checklist by user profiling

GRAZIE A TUTTI PER L’ATTENZIONE

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