SlideShare a Scribd company logo
1 of 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
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 2
Il processo di sviluppo software
• Attività strutturali.
• Attività di supporto (“ombrello”).
Processo di sviluppo
software
Attività strutturali
Attività
“ombrello” Ispezioni software
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 3
Le ispezioni software
• Processo altamente rigoroso introdotto da Michael
Fagan nel 1976.
• Scopo: identificare i difetti e verificare che l’artefatto
abbia determinate caratteristiche.
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 4
Una nuova idea: la Pre Ispezione
Creazione
dell’artefatto
software
Pre Ispezione
Ispezione
dell’artefatto
software
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 5
Le fasi della Pre Ispezione
Data
Collection
Profiling Selection
Checklist
Generation
Light
Inspection
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 6
Pre Ispezione: Data Collection
Data
Collection
Profiling Selection
Checklist
Generation
Light
Inspection
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 7
Pre Ispezione: Profiling
Data
Collection
Profiling Selection
Checklist
Generation
Light
Inspection
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 8
Pre Ispezione: Selection
Data
Collection
Profiling Selection
Checklist
Generation
Light
Inspection
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 9
Pre Ispezione: Checklist Generation
Data
Collection
Profiling Selection
Checklist
Generation
Light
Inspection
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 10
Pre Ispezione: Light Inspection
Data
Collection
Profiling Selection
Checklist
Generation
Light
Inspection
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 11
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.
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 12
Profilo di un programmatore
Numero di errori presente
Tipo di errore
Layout
Bugs generati
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 13
Data Mining: una visione generale sul processo
Dati grezzi Dati
aggregati e
puliti
Dati
trasformati
Classificazione e
validazione
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 14
Learning model scelti(1)
• Problema di classificazione.
• Principio guida: “Simplicity First”.
• Sperimentazioni.
Naïve Bayes Decision tree Bayesian network
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 15
Learning model scelti(2)
Istanze correttamente
classificate in %
Istanze non correttamente
classificate in %
Decision tree 68,75 31,25
Naive Bayes 75 25
Bayesian Network 81,25 18,75
Istanze correttamente
classificate in %
Istanze non correttamente
classificate in %
Decision tree 81,25 18,75
Naive Bayes 75 25
Bayesian Network 81,25 18,75
Risultati della tenfold cross-validation
Risultati della threefold cross-validation
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 16
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
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 17
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)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 18
EPit: data mining al lavoro(3)
Errore sui
commenti
Errore sul nome
delle variabili
Errore di codice
duplicato
Errore sul
metodo clone
Numero di un
certo tipo di errori 0 3 1 0
Elenco di risorse (codice
sorgente) e bug associati
Estrazione delle informazioni
dell’eventuale bug collegato
Errore sui
commenti
Errore sul nome
delle variabili
Errore di codice
duplicato
Errore sul
metodo clone
Severity
0 3 1 0 minor
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 19
EPit: data mining al lavoro(4)
Errore sui
commenti
Errore sul nome
delle variabili
Errore di codice
duplicato
Errore sul
metodo clone
Severity
0 3 1 0 minor
Errore sui
commenti
Errore sul nome
delle variabili
Errore sul
metodo clone
Severity Errore di codice
duplicato
0 3 0 minor yes
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 20
EPit: data mining al lavoro()
Errore sui
commenti
Errore sul nome
delle variabili
Errore sul
metodo clone
Severity Errore di codice
duplicato
1 2 0 trivial ?
Codice sorgente
Istanza da classificare
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 21
EPit: data mining al lavoro(6)
Dati di training
Istanza da classificare
?
Classificatore
Yes
No
Checklist
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 22
EPit: un esempio di utilizzo
• Installazione
• Configurazione
• Profiling
• Generazione di checklist
• Gestione delle checklist
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 23
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
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 24
Installazione(2)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 25
Installazione(3)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 26
Installazione(4)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 27
Configurazione(1)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 28
Configurazione(2)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 29
Configurazione(3)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 30
Configurazione(4)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 31
Configurazione(5)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 32
Configurazione(6)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 33
Configurazione(7)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 34
Configurazione(8)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 35
Creazione del profilo(1)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 36
Creazione del profilo(2)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 37
Generazione delle checklist(1)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 38
Generazione delle checklist(2)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 39
Gestione delle checklist(1)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 40
Gestione delle checklist(2)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 41
Gestione delle checklist(3)
Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 42
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)

More Related Content

Viewers also liked

Hvordan fylle institusjonelle arkiv
Hvordan fylle institusjonelle arkivHvordan fylle institusjonelle arkiv
Hvordan fylle institusjonelle arkivTanja Strøm
 
It's All Hallway! An Unconference Approach to Professional Development
It's All Hallway! An Unconference Approach to Professional DevelopmentIt's All Hallway! An Unconference Approach to Professional Development
It's All Hallway! An Unconference Approach to Professional DevelopmentLisa Chow
 
Steve Dickman CBT Advisors Moderator Slides For Wolfe Personalized Med Panel ...
Steve Dickman CBT Advisors Moderator Slides For Wolfe Personalized Med Panel ...Steve Dickman CBT Advisors Moderator Slides For Wolfe Personalized Med Panel ...
Steve Dickman CBT Advisors Moderator Slides For Wolfe Personalized Med Panel ...CBTAdvisors
 
DiffCalculus August 8, 2012
DiffCalculus August 8, 2012DiffCalculus August 8, 2012
DiffCalculus August 8, 2012Carlos Vázquez
 
Marking a mark: assessment for learning
Marking a mark: assessment for learningMarking a mark: assessment for learning
Marking a mark: assessment for learningJo Webb
 
Achieve and Maintain 5-Star Ratings for Health Peformance
Achieve and Maintain 5-Star Ratings for Health PeformanceAchieve and Maintain 5-Star Ratings for Health Peformance
Achieve and Maintain 5-Star Ratings for Health PeformanceMobile PRM
 
Logika Informatika
Logika InformatikaLogika Informatika
Logika Informatikaandrewaja
 
Benefits of Certifications by Corporations
Benefits of Certifications by CorporationsBenefits of Certifications by Corporations
Benefits of Certifications by CorporationsNational University
 
23204916
2320491623204916
23204916radgirl
 
Leadership and Career Development for the New Information Professional
Leadership and Career Development for the New Information ProfessionalLeadership and Career Development for the New Information Professional
Leadership and Career Development for the New Information ProfessionalLisa Chow
 
RememberItNow Presentation to U.S. Office of eHealth Initiatives
RememberItNow Presentation to U.S. Office of eHealth InitiativesRememberItNow Presentation to U.S. Office of eHealth Initiatives
RememberItNow Presentation to U.S. Office of eHealth InitiativesMobile PRM
 
DiffCalculus August 7, 2012
DiffCalculus August 7, 2012DiffCalculus August 7, 2012
DiffCalculus August 7, 2012Carlos Vázquez
 

Viewers also liked (20)

CHAMPS LEYSIN 2014
CHAMPS LEYSIN 2014CHAMPS LEYSIN 2014
CHAMPS LEYSIN 2014
 
Hvordan fylle institusjonelle arkiv
Hvordan fylle institusjonelle arkivHvordan fylle institusjonelle arkiv
Hvordan fylle institusjonelle arkiv
 
It's All Hallway! An Unconference Approach to Professional Development
It's All Hallway! An Unconference Approach to Professional DevelopmentIt's All Hallway! An Unconference Approach to Professional Development
It's All Hallway! An Unconference Approach to Professional Development
 
Steve Dickman CBT Advisors Moderator Slides For Wolfe Personalized Med Panel ...
Steve Dickman CBT Advisors Moderator Slides For Wolfe Personalized Med Panel ...Steve Dickman CBT Advisors Moderator Slides For Wolfe Personalized Med Panel ...
Steve Dickman CBT Advisors Moderator Slides For Wolfe Personalized Med Panel ...
 
DiffCalculus August 8, 2012
DiffCalculus August 8, 2012DiffCalculus August 8, 2012
DiffCalculus August 8, 2012
 
Sistek chandlersoe may2010
Sistek chandlersoe may2010Sistek chandlersoe may2010
Sistek chandlersoe may2010
 
Marking a mark: assessment for learning
Marking a mark: assessment for learningMarking a mark: assessment for learning
Marking a mark: assessment for learning
 
Achieve and Maintain 5-Star Ratings for Health Peformance
Achieve and Maintain 5-Star Ratings for Health PeformanceAchieve and Maintain 5-Star Ratings for Health Peformance
Achieve and Maintain 5-Star Ratings for Health Peformance
 
Logika Informatika
Logika InformatikaLogika Informatika
Logika Informatika
 
Benefits of Certifications by Corporations
Benefits of Certifications by CorporationsBenefits of Certifications by Corporations
Benefits of Certifications by Corporations
 
23204916
2320491623204916
23204916
 
Leadership and Career Development for the New Information Professional
Leadership and Career Development for the New Information ProfessionalLeadership and Career Development for the New Information Professional
Leadership and Career Development for the New Information Professional
 
RememberItNow Presentation to U.S. Office of eHealth Initiatives
RememberItNow Presentation to U.S. Office of eHealth InitiativesRememberItNow Presentation to U.S. Office of eHealth Initiatives
RememberItNow Presentation to U.S. Office of eHealth Initiatives
 
Teacher Duma Cornel Lucian Romania present #edtech20 project in connecting ...
Teacher Duma Cornel Lucian Romania present #edtech20 project  in  connecting ...Teacher Duma Cornel Lucian Romania present #edtech20 project  in  connecting ...
Teacher Duma Cornel Lucian Romania present #edtech20 project in connecting ...
 
Perimetro Di Contatto
Perimetro Di ContattoPerimetro Di Contatto
Perimetro Di Contatto
 
ap và_thuc_hanh_kinh_te_vi_moasdf
ap và_thuc_hanh_kinh_te_vi_moasdfap và_thuc_hanh_kinh_te_vi_moasdf
ap và_thuc_hanh_kinh_te_vi_moasdf
 
U R A Brand! 1
U R A Brand! 1U R A Brand! 1
U R A Brand! 1
 
Lighthouse Inc.
Lighthouse Inc.Lighthouse Inc.
Lighthouse Inc.
 
Maria Seredyszyn Hames , School And Students
Maria Seredyszyn Hames , School And StudentsMaria Seredyszyn Hames , School And Students
Maria Seredyszyn Hames , School And Students
 
DiffCalculus August 7, 2012
DiffCalculus August 7, 2012DiffCalculus August 7, 2012
DiffCalculus August 7, 2012
 

Similar to Automatic generation of inspection checklist by user profiling

Progettare applicazioni con il modeling project di Visual Studio 2010
Progettare applicazioni con il modeling project di Visual Studio 2010Progettare applicazioni con il modeling project di Visual Studio 2010
Progettare applicazioni con il modeling project di Visual Studio 2010Michele Aponte
 
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...IBM Italia Web Team
 
Data Analysis & Machine Learning
Data Analysis & Machine LearningData Analysis & Machine Learning
Data Analysis & Machine LearningCaffeina
 
Panzera Eugenio, Laiolo Sergio, Agilent - Minitab nella produzione di Agilen...
Panzera Eugenio, Laiolo Sergio, Agilent  - Minitab nella produzione di Agilen...Panzera Eugenio, Laiolo Sergio, Agilent  - Minitab nella produzione di Agilen...
Panzera Eugenio, Laiolo Sergio, Agilent - Minitab nella produzione di Agilen...GMSL S.r.l.
 
Produzione software - La qualità
Produzione software - La qualitàProduzione software - La qualità
Produzione software - La qualitàGemax Consulting
 
AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreManuel Scapolan
 
TDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaTDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaFilippo Liverani
 
Nord-Est Italy Seminars 2012
Nord-Est Italy Seminars 2012Nord-Est Italy Seminars 2012
Nord-Est Italy Seminars 2012alexzio
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTMatteo Gentile
 
Tdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaTdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaCodemotion
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Davide Bravin
 
Extended summary of "Opening the Blackbox of VirusTotal: Analyzing Online Phi...
Extended summary of "Opening the Blackbox of VirusTotal: Analyzing Online Phi...Extended summary of "Opening the Blackbox of VirusTotal: Analyzing Online Phi...
Extended summary of "Opening the Blackbox of VirusTotal: Analyzing Online Phi...Matteo Makovec
 
Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...Università degli Studi di Trieste
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingGiuliaMilan4
 

Similar to Automatic generation of inspection checklist by user profiling (20)

Antivirus & Antivirus Evasion
Antivirus & Antivirus EvasionAntivirus & Antivirus Evasion
Antivirus & Antivirus Evasion
 
Progettare applicazioni con il modeling project di Visual Studio 2010
Progettare applicazioni con il modeling project di Visual Studio 2010Progettare applicazioni con il modeling project di Visual Studio 2010
Progettare applicazioni con il modeling project di Visual Studio 2010
 
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
 
Data Analysis & Machine Learning
Data Analysis & Machine LearningData Analysis & Machine Learning
Data Analysis & Machine Learning
 
Panzera Eugenio, Laiolo Sergio, Agilent - Minitab nella produzione di Agilen...
Panzera Eugenio, Laiolo Sergio, Agilent  - Minitab nella produzione di Agilen...Panzera Eugenio, Laiolo Sergio, Agilent  - Minitab nella produzione di Agilen...
Panzera Eugenio, Laiolo Sergio, Agilent - Minitab nella produzione di Agilen...
 
Produzione software - La qualità
Produzione software - La qualitàProduzione software - La qualità
Produzione software - La qualità
 
AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatore
 
Open Bqr
Open BqrOpen Bqr
Open Bqr
 
Open Bqr
Open BqrOpen Bqr
Open Bqr
 
Software Testing Forum 2012 - Polarion e TRS SpA
Software Testing Forum 2012 - Polarion e TRS SpASoftware Testing Forum 2012 - Polarion e TRS SpA
Software Testing Forum 2012 - Polarion e TRS SpA
 
TDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaTDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastruttura
 
Nord-Est Italy Seminars 2012
Nord-Est Italy Seminars 2012Nord-Est Italy Seminars 2012
Nord-Est Italy Seminars 2012
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICT
 
Tdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaTdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastruttura
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
 
Extended summary of "Opening the Blackbox of VirusTotal: Analyzing Online Phi...
Extended summary of "Opening the Blackbox of VirusTotal: Analyzing Online Phi...Extended summary of "Opening the Blackbox of VirusTotal: Analyzing Online Phi...
Extended summary of "Opening the Blackbox of VirusTotal: Analyzing Online Phi...
 
Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishing
 
Owasp parte1-rel1.1
Owasp parte1-rel1.1Owasp parte1-rel1.1
Owasp parte1-rel1.1
 
Piattini2018 definitivo
Piattini2018 definitivoPiattini2018 definitivo
Piattini2018 definitivo
 

More from Nicola Del Gobbo

More from Nicola Del Gobbo (9)

Next Generation N-API
Next Generation N-APINext Generation N-API
Next Generation N-API
 
Nodejs overview
Nodejs overviewNodejs overview
Nodejs overview
 
Nodejs Native Add-Ons from zero to hero
Nodejs Native Add-Ons from zero to heroNodejs Native Add-Ons from zero to hero
Nodejs Native Add-Ons from zero to hero
 
Nodejs from zero to hero
Nodejs from zero to heroNodejs from zero to hero
Nodejs from zero to hero
 
Expressjs from-zero-to-hero
Expressjs from-zero-to-heroExpressjs from-zero-to-hero
Expressjs from-zero-to-hero
 
Introduzione a Node.js
Introduzione a Node.jsIntroduzione a Node.js
Introduzione a Node.js
 
Node js with steroids
Node js with steroidsNode js with steroids
Node js with steroids
 
Lexgenda Documenti d’archivio e nuove tecnologie
Lexgenda Documenti d’archivio e nuove tecnologieLexgenda Documenti d’archivio e nuove tecnologie
Lexgenda Documenti d’archivio e nuove tecnologie
 
Lexgenda
LexgendaLexgenda
Lexgenda
 

Automatic generation of inspection checklist by user profiling

  • 1. 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
  • 2. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 2 Il processo di sviluppo software • Attività strutturali. • Attività di supporto (“ombrello”). Processo di sviluppo software Attività strutturali Attività “ombrello” Ispezioni software
  • 3. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 3 Le ispezioni software • Processo altamente rigoroso introdotto da Michael Fagan nel 1976. • Scopo: identificare i difetti e verificare che l’artefatto abbia determinate caratteristiche.
  • 4. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 4 Una nuova idea: la Pre Ispezione Creazione dell’artefatto software Pre Ispezione Ispezione dell’artefatto software
  • 5. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 5 Le fasi della Pre Ispezione Data Collection Profiling Selection Checklist Generation Light Inspection
  • 6. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 6 Pre Ispezione: Data Collection Data Collection Profiling Selection Checklist Generation Light Inspection
  • 7. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 7 Pre Ispezione: Profiling Data Collection Profiling Selection Checklist Generation Light Inspection
  • 8. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 8 Pre Ispezione: Selection Data Collection Profiling Selection Checklist Generation Light Inspection
  • 9. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 9 Pre Ispezione: Checklist Generation Data Collection Profiling Selection Checklist Generation Light Inspection
  • 10. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 10 Pre Ispezione: Light Inspection Data Collection Profiling Selection Checklist Generation Light Inspection
  • 11. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 11 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.
  • 12. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 12 Profilo di un programmatore Numero di errori presente Tipo di errore Layout Bugs generati
  • 13. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 13 Data Mining: una visione generale sul processo Dati grezzi Dati aggregati e puliti Dati trasformati Classificazione e validazione
  • 14. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 14 Learning model scelti(1) • Problema di classificazione. • Principio guida: “Simplicity First”. • Sperimentazioni. Naïve Bayes Decision tree Bayesian network
  • 15. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 15 Learning model scelti(2) Istanze correttamente classificate in % Istanze non correttamente classificate in % Decision tree 68,75 31,25 Naive Bayes 75 25 Bayesian Network 81,25 18,75 Istanze correttamente classificate in % Istanze non correttamente classificate in % Decision tree 81,25 18,75 Naive Bayes 75 25 Bayesian Network 81,25 18,75 Risultati della tenfold cross-validation Risultati della threefold cross-validation
  • 16. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 16 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
  • 17. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 17 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)
  • 18. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 18 EPit: data mining al lavoro(3) Errore sui commenti Errore sul nome delle variabili Errore di codice duplicato Errore sul metodo clone Numero di un certo tipo di errori 0 3 1 0 Elenco di risorse (codice sorgente) e bug associati Estrazione delle informazioni dell’eventuale bug collegato Errore sui commenti Errore sul nome delle variabili Errore di codice duplicato Errore sul metodo clone Severity 0 3 1 0 minor
  • 19. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 19 EPit: data mining al lavoro(4) Errore sui commenti Errore sul nome delle variabili Errore di codice duplicato Errore sul metodo clone Severity 0 3 1 0 minor Errore sui commenti Errore sul nome delle variabili Errore sul metodo clone Severity Errore di codice duplicato 0 3 0 minor yes
  • 20. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 20 EPit: data mining al lavoro() Errore sui commenti Errore sul nome delle variabili Errore sul metodo clone Severity Errore di codice duplicato 1 2 0 trivial ? Codice sorgente Istanza da classificare
  • 21. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 21 EPit: data mining al lavoro(6) Dati di training Istanza da classificare ? Classificatore Yes No Checklist
  • 22. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 22 EPit: un esempio di utilizzo • Installazione • Configurazione • Profiling • Generazione di checklist • Gestione delle checklist
  • 23. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 23 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
  • 24. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 24 Installazione(2)
  • 25. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 25 Installazione(3)
  • 26. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 26 Installazione(4)
  • 27. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 27 Configurazione(1)
  • 28. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 28 Configurazione(2)
  • 29. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 29 Configurazione(3)
  • 30. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 30 Configurazione(4)
  • 31. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 31 Configurazione(5)
  • 32. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 32 Configurazione(6)
  • 33. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 33 Configurazione(7)
  • 34. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 34 Configurazione(8)
  • 35. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 35 Creazione del profilo(1)
  • 36. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 36 Creazione del profilo(2)
  • 37. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 37 Generazione delle checklist(1)
  • 38. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 38 Generazione delle checklist(2)
  • 39. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 39 Gestione delle checklist(1)
  • 40. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 40 Gestione delle checklist(2)
  • 41. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 41 Gestione delle checklist(3)
  • 42. Generazione automatica delle checklist di ispezione tramite user profiling – Nicola Del Gobbo 42 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?
  • 43. GRAZIE A TUTTI PER L’ATTENZIONE ”Stay hungry. Stay Foolish.”cit.(Steve Jobs)