Automatic generation of inspection checklist by user profiling
-
Upload
nicola-del-gobbo -
Category
Technology
-
view
60 -
download
0
Transcript of 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
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?