SlideShare a Scribd company logo
1 of 80
Download to read offline
Software Evolution and Defects from a Controlled,
Multiple, Industrial Case Study
Aiko Yamashita, S. Amirhossein Abtahizadeh, Foutse Khomh, Yann-Gaël Guéhéneuc 

Centrum Wiskunde & Informatica

Oslo and Akershus University College of Applied Sciences

Polytechnique Montréal
Data Showcase - MSR 2017 - Buenos Aires, Argentina
Moderator Factors in Software Engineering
Researcher
Software Project
Moderator Factors in Software Engineering
Researcher
Software Project
System
Project context
Tasks
Source
code
Daily interviews
Audio files/notes
Subversion
database
Programming
Skill
Defects*
Development
Technology
Change
Size**
Effort**
Maintenance outcomes
Eclipse
activity
logs
Trac (Issue tracker),
Acceptance test
reports
Open interviews
Audio files/notes
Variables
of interest
Data
sources
Moderator
variables
Code smells
(num. smells**
smell density**)
Maintainability
perception*
Maintenance
problems**
Think aloud
Video files/notes
Study
diary
Learning Effect
Moderator Factors in Software Engineering
Researcher
Software Project
System
Project context
Tasks
Source
code
Daily interviews
Audio files/notes
Subversion
database
Programming
Skill
Defects*
Development
Technology
Change
Size**
Effort**
Maintenance outcomes
Eclipse
activity
logs
Trac (Issue tracker),
Acceptance test
reports
Open interviews
Audio files/notes
Variables
of interest
Data
sources
Moderator
variables
Code smells
(num. smells**
smell density**)
Maintainability
perception*
Maintenance
problems**
Think aloud
Video files/notes
Study
diary
Learning Effect
Task and learning effect
• Simula Experiment• Software Replicability• 4 Norwegian firms
Java Applications with near same functionality
A DB C
Study 1
Task and learning effect
Task and learning effect
•Simula multiple case study
• Software Maintainability
• 2 European firms
Study 2
Task and learning effect
Task 3.
New Reporting
functionality
Task 1. Replacing external data source
✔
Task 2.
New authentication
mechanism
System!
Control over task•Simula multiple case study
• Software Maintainability
• 2 European firms
Study 2
Task and learning effect
DCBA
Developer
System
Control over learning effect
Task 3.
New Reporting
functionality
Task 1. Replacing external data source
✔
Task 2.
New authentication
mechanism
System!
Control over task•Simula multiple case study
• Software Maintainability
• 2 European firms
Study 2
Programming skills
Programming skills
“Construction and Validation of an Instrument

for Measuring Programming Skill”

(Bergersen et. al. 2014)
Control over programming skills
Programming skills
• Measurement instrument based
on combination of speed and
correctness.
“Construction and Validation of an Instrument

for Measuring Programming Skill”

(Bergersen et. al. 2014)
Control over programming skills
Programming skills
• Measurement instrument based
on combination of speed and
correctness.
• The Rasch measurement model
was used.
“Construction and Validation of an Instrument

for Measuring Programming Skill”

(Bergersen et. al. 2014)
Control over programming skills
Programming skills
• Measurement instrument based
on combination of speed and
correctness.
• The Rasch measurement model
was used.
• Sixty-five professional developers
from eight countries participated
in validating the instrument
“Construction and Validation of an Instrument

for Measuring Programming Skill”

(Bergersen et. al. 2014)
Control over programming skills
Programming skills
• Measurement instrument based
on combination of speed and
correctness.
• The Rasch measurement model
was used.
• Sixty-five professional developers
from eight countries participated
in validating the instrument
• They solved 19 Java
programming tasks over two days
“Construction and Validation of an Instrument

for Measuring Programming Skill”

(Bergersen et. al. 2014)
Control over programming skills
Programming skills
• Measurement instrument based
on combination of speed and
correctness.
• The Rasch measurement model
was used.
• Sixty-five professional developers
from eight countries participated
in validating the instrument
• They solved 19 Java
programming tasks over two days
• Six of the participants who
scored better than average skill
were selected
“Construction and Validation of an Instrument

for Measuring Programming Skill”

(Bergersen et. al. 2014)
Control over programming skills
Variables and Data Sources
System
Project context
Tasks
Source
code
Daily interviews
Audio files/notes
Subversion
database
Programming
Skill
Defects*
Development
Technology
Change
Size**
Effort**
Maintenance outcomes
Think aloud
Video files/notes
Task
progress
sheets
Eclipse
activity
logs
Trac (Issue tracker),
Acceptance test
reports
Open interviews
Audio files/notes
Variables
of interest
Data
sources
Moderator
variables
Code smells
(num. smells**
smell density**)
** System and file level
* Only at system level
Maintainability
perception*
Maintenance
problems**
Think aloud
Video files/notes
Study
diary
Task
Dates+
Figure from [1]
[1] Yamashita, 2012: “Assessing the capability of code smells to support software maintainability
assessments: Empirical inquiry and methodological approach” PhD Thesis
Source Code**
Java Applications with near same functionality
A DB C
**Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
Source Code**
• Java, Javascript, SQL, HTML, XML.
Java Applications with near same functionality
A DB C
**Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
Source Code**
• Java, Javascript, SQL, HTML, XML.
• Developed by 4 Norwegian companies based on same specification
Java Applications with near same functionality
A DB C
**Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
Source Code**
• Java, Javascript, SQL, HTML, XML.
• Developed by 4 Norwegian companies based on same specification
• Result from experiment reported by Anda et al., (2008): “Variability and
Reproducibility in Software Engineering: A Study of Four Companies
that Developed the Same System”
Java Applications with near same functionality
A DB C
**Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
Code smells and evolution data**
**Available at https://zenodo.org/record/293719
Code smells and evolution data**
Code Smells:
**Available at https://zenodo.org/record/293719
Code smells and evolution data**
Code Smells:
• Tools for Code Smells: Borland Together and InCode
**Available at https://zenodo.org/record/293719
Code smells and evolution data**
Code Smells:
• Tools for Code Smells: Borland Together and InCode
• Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional
branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class,
Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes,
Use of implementation instead of interface, and Interface Segregation Principle (ISP)
Violation
**Available at https://zenodo.org/record/293719
Code smells and evolution data**
Code Smells:
• Tools for Code Smells: Borland Together and InCode
• Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional
branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class,
Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes,
Use of implementation instead of interface, and Interface Segregation Principle (ISP)
Violation
• Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions)
**Available at https://zenodo.org/record/293719
Code smells and evolution data**
Code Smells:
• Tools for Code Smells: Borland Together and InCode
• Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional
branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class,
Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes,
Use of implementation instead of interface, and Interface Segregation Principle (ISP)
Violation
• Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions)
Code Evolution:
**Available at https://zenodo.org/record/293719
Code smells and evolution data**
Code Smells:
• Tools for Code Smells: Borland Together and InCode
• Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional
branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class,
Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes,
Use of implementation instead of interface, and Interface Segregation Principle (ISP)
Violation
• Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions)
Code Evolution:
• Tool for changes: Custom written code with SVNKit
**Available at https://zenodo.org/record/293719
Code smells and evolution data**
Code Smells:
• Tools for Code Smells: Borland Together and InCode
• Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional
branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class,
Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes,
Use of implementation instead of interface, and Interface Segregation Principle (ISP)
Violation
• Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions)
Code Evolution:
• Tool for changes: Custom written code with SVNKit
• Variables: Programmer, Revision No., Date, Full path, Filename, File extension, System,
Action Type (i.e. Added, Deleted, Modified, Renamed), No. lines added, No. lines
deleted, No. lines changed, and Churn
**Available at https://zenodo.org/record/293719
Code smells and evolution data**
Code Smells:
• Tools for Code Smells: Borland Together and InCode
• Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional
branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class,
Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes,
Use of implementation instead of interface, and Interface Segregation Principle (ISP)
Violation
• Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions)
Code Evolution:
• Tool for changes: Custom written code with SVNKit
• Variables: Programmer, Revision No., Date, Full path, Filename, File extension, System,
Action Type (i.e. Added, Deleted, Modified, Renamed), No. lines added, No. lines
deleted, No. lines changed, and Churn
• File: Changes.xls (includes evolution of all 12 versions)
**Available at https://zenodo.org/record/293719
Software Evolution History**
DCBA
Developer
System
**Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
Software Evolution History**
• 3 projects per system, i.e., 6 developers x 2 systems =
12 projects (cases or evolution histories)
DCBA
Developer
System
**Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
Software Evolution History**
• 3 projects per system, i.e., 6 developers x 2 systems =
12 projects (cases or evolution histories)
• Technologies involved: MySQL, Apache Tomcat, SVN,
Trac, My Eclipse
DCBA
Developer
System
**Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
Software Evolution History**
• 3 projects per system, i.e., 6 developers x 2 systems =
12 projects (cases or evolution histories)
• Technologies involved: MySQL, Apache Tomcat, SVN,
Trac, My Eclipse
• Each project took 3-4 weeks, full-time.
DCBA
Developer
System
**Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
Software Evolution History**
• 3 projects per system, i.e., 6 developers x 2 systems =
12 projects (cases or evolution histories)
• Technologies involved: MySQL, Apache Tomcat, SVN,
Trac, My Eclipse
• Each project took 3-4 weeks, full-time.
• SVN was converted to Git and hosted at Polytechnic of
Montreal.
DCBA
Developer
System
**Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
Defect Data**
++original SVN repo and Trac instances are
available upon request
**Available at https://zenodo.org/record/293719
Defect Data**
• Due to heterogeneity of systems, no common unit testing suit is
available :(
++original SVN repo and Trac instances are
available upon request
**Available at https://zenodo.org/record/293719
Defect Data**
• Due to heterogeneity of systems, no common unit testing suit is
available :(
• 2 rounds of acceptance testing for each of the 12 projects
++original SVN repo and Trac instances are
available upon request
**Available at https://zenodo.org/record/293719
Defect Data**
• Due to heterogeneity of systems, no common unit testing suit is
available :(
• 2 rounds of acceptance testing for each of the 12 projects
• Defects were recorded in Trac after each acceptance testing
++original SVN repo and Trac instances are
available upon request
**Available at https://zenodo.org/record/293719
Defect Data**
• Due to heterogeneity of systems, no common unit testing suit is
available :(
• 2 rounds of acceptance testing for each of the 12 projects
• Defects were recorded in Trac after each acceptance testing
• Trac was too tightly-integrated with SVN, therefore not possible to
install on a server
++
++original SVN repo and Trac instances are
available upon request
**Available at https://zenodo.org/record/293719
Defect Data**
• Due to heterogeneity of systems, no common unit testing suit is
available :(
• 2 rounds of acceptance testing for each of the 12 projects
• Defects were recorded in Trac after each acceptance testing
• Trac was too tightly-integrated with SVN, therefore not possible to
install on a server
++
• 12 reports extracted from Trac:
++original SVN repo and Trac instances are
available upon request
**Available at https://zenodo.org/record/293719
Defect Data**
• Due to heterogeneity of systems, no common unit testing suit is
available :(
• 2 rounds of acceptance testing for each of the 12 projects
• Defects were recorded in Trac after each acceptance testing
• Trac was too tightly-integrated with SVN, therefore not possible to
install on a server
++
• 12 reports extracted from Trac:
Defects_Dev{1/2/3/4/5/6}_Sys{A/B/C/D}.xlsx
++original SVN repo and Trac instances are
available upon request
**Available at https://zenodo.org/record/293719
Defect Data**
• Due to heterogeneity of systems, no common unit testing suit is
available :(
• 2 rounds of acceptance testing for each of the 12 projects
• Defects were recorded in Trac after each acceptance testing
• Trac was too tightly-integrated with SVN, therefore not possible to
install on a server
++
• 12 reports extracted from Trac:
Defects_Dev{1/2/3/4/5/6}_Sys{A/B/C/D}.xlsx
•
++original SVN repo and Trac instances are
available upon request
**Available at https://zenodo.org/record/293719
Task Dates**
**Available at https://zenodo.org/record/293719
Task Dates**
A problem in longitudinal, brown-field study: limits between tasks become “blurry”
**Available at https://zenodo.org/record/293719
Task Dates**
A problem in longitudinal, brown-field study: limits between tasks become “blurry”
Examples:
**Available at https://zenodo.org/record/293719
Task Dates**
A problem in longitudinal, brown-field study: limits between tasks become “blurry”
Examples:
Developer finishes Task 3 in System 1 in the morning, and moves on to
Task 1 for System 2 in the afternoon.
**Available at https://zenodo.org/record/293719
Task Dates**
A problem in longitudinal, brown-field study: limits between tasks become “blurry”
Examples:
Developer finishes Task 3 in System 1 in the morning, and moves on to
Task 1 for System 2 in the afternoon.
Developer was working on Task 2, but then forgot to change something in
Task 1, so switch temporary between tasks.
**Available at https://zenodo.org/record/293719
Task Dates**
A problem in longitudinal, brown-field study: limits between tasks become “blurry”
Examples:
Developer finishes Task 3 in System 1 in the morning, and moves on to
Task 1 for System 2 in the afternoon.
Developer was working on Task 2, but then forgot to change something in
Task 1, so switch temporary between tasks.
We used different sources to estimate the Dates in which a developer was
working on a given System and a given Task.
**Available at https://zenodo.org/record/293719
Task Dates**
A problem in longitudinal, brown-field study: limits between tasks become “blurry”
Examples:
Developer finishes Task 3 in System 1 in the morning, and moves on to
Task 1 for System 2 in the afternoon.
Developer was working on Task 2, but then forgot to change something in
Task 1, so switch temporary between tasks.
We used different sources to estimate the Dates in which a developer was
working on a given System and a given Task.
Project context
Daily interviews
Audio files/notes
Subversion
database
Defects*
Development
Technology
Change
Size**
Effort**
Maintenance outcomes
Think aloud
Video files/notes
Task
progress
sheets
Eclipse
activity
logs
Trac (Issue tracker),
Acceptance test
reports
Open interviews
Audio files/notes
Maintainability
perception*
Maintenance
problems**
oud
/notes
Study
diary
**Available at https://zenodo.org/record/293719
Task Dates**
A problem in longitudinal, brown-field study: limits between tasks become “blurry”
Examples:
Developer finishes Task 3 in System 1 in the morning, and moves on to
Task 1 for System 2 in the afternoon.
Developer was working on Task 2, but then forgot to change something in
Task 1, so switch temporary between tasks.
We used different sources to estimate the Dates in which a developer was
working on a given System and a given Task.
Project context
Daily interviews
Audio files/notes
Subversion
database
Defects*
Development
Technology
Change
Size**
Effort**
Maintenance outcomes
Think aloud
Video files/notes
Task
progress
sheets
Eclipse
activity
logs
Trac (Issue tracker),
Acceptance test
reports
Open interviews
Audio files/notes
Maintainability
perception*
Maintenance
problems**
oud
/notes
Study
diary
**Available at https://zenodo.org/record/293719
Task Dates**
A problem in longitudinal, brown-field study: limits between tasks become “blurry”
Examples:
Developer finishes Task 3 in System 1 in the morning, and moves on to
Task 1 for System 2 in the afternoon.
Developer was working on Task 2, but then forgot to change something in
Task 1, so switch temporary between tasks.
We used different sources to estimate the Dates in which a developer was
working on a given System and a given Task.
Project context
Daily interviews
Audio files/notes
Subversion
database
Defects*
Development
Technology
Change
Size**
Effort**
Maintenance outcomes
Think aloud
Video files/notes
Task
progress
sheets
Eclipse
activity
logs
Trac (Issue tracker),
Acceptance test
reports
Open interviews
Audio files/notes
Maintainability
perception*
Maintenance
problems**
oud
/notes
Study
diary
Task
Dates
**Available at https://zenodo.org/record/293719
Potential usage scenarios
Potential usage scenarios
a) Analysis of “repeated defects” in a
multiple case study
Potential usage scenarios
a) Analysis of “repeated defects” in a
multiple case study
b) Studies on the impact of different
metrics/attributes on software evolution
Potential usage scenarios
a) Analysis of “repeated defects” in a
multiple case study
b) Studies on the impact of different
metrics/attributes on software evolution
c) Further studies on inter-smell relations
Potential usage scenarios
a) Analysis of “repeated defects” in a
multiple case study
b) Studies on the impact of different
metrics/attributes on software evolution
c) Further studies on inter-smell relations
d) Cost-benefit analysis of code smell
removal
Potential usage scenarios
a) Analysis of “repeated defects” in a
multiple case study
b) Studies on the impact of different
metrics/attributes on software evolution
c) Further studies on inter-smell relations
d) Cost-benefit analysis of code smell
removal
e) Benchmarking of diverse tools/
methodologies
Potential usage scenarios
a) Analysis of “repeated defects” in a
multiple case study
b) Studies on the impact of different
metrics/attributes on software evolution
c) Further studies on inter-smell relations
d) Cost-benefit analysis of code smell
removal
e) Benchmarking of diverse tools/
methodologies
f) Task/context extraction, alongside
ideas by [2]
[2] M. Barnett, et al., “Helping Developers Help Themselves: Automatic Decomposition
of Code Review Change-sets,” (ICSE ’15)

What to consider when using the data..
What to consider when using the data..
A. Context of the study
What to consider when using the data..
A. Context of the study
B. Tasks were individual
What to consider when using the data..
A. Context of the study
B. Tasks were individual
C. Time frame is approx. 1-2 sprints
What to consider when using the data..
A. Context of the study
B. Tasks were individual
C. Time frame is approx. 1-2 sprints
D. The age of the systems (+10 years)
What to consider when using the data..
A. Context of the study
B. Tasks were individual
C. Time frame is approx. 1-2 sprints
D. The age of the systems (+10 years)
E. Tool for code smells not available
What to consider when using the data..
A. Context of the study
B. Tasks were individual
C. Time frame is approx. 1-2 sprints
D. The age of the systems (+10 years)
E. Tool for code smells not available
F. No explicit corrective tasks
What to consider when using the data..
A. Context of the study
B. Tasks were individual
C. Time frame is approx. 1-2 sprints
D. The age of the systems (+10 years)
E. Tool for code smells not available
F. No explicit corrective tasks
G. Date accuracy for the tasks
What to consider when using the data..
A. Context of the study
B. Tasks were individual
C. Time frame is approx. 1-2 sprints
D. The age of the systems (+10 years)
E. Tool for code smells not available
F. No explicit corrective tasks
G. Date accuracy for the tasks
H. Not all the commit logs were associated with an issue ID
What to consider when using the data..
A. Context of the study
B. Tasks were individual
C. Time frame is approx. 1-2 sprints
D. The age of the systems (+10 years)
E. Tool for code smells not available
F. No explicit corrective tasks
G. Date accuracy for the tasks
H. Not all the commit logs were associated with an issue ID
I. Consider the trade-off between the degree of realism and the
degree of control in such type of studies
Trade-off between
realism and control
Sample size (Big Data)DataRichness(ThickData)
Low High
Low
High
Trade-off between
realism and control
Sample size (Big Data)DataRichness(ThickData)
Low High
Low
High
Controlled/Lab
Experiments
Trade-off between
realism and control
Sample size (Big Data)DataRichness(ThickData)
Low High
Low
High
Case studies
Controlled/Lab
Experiments
Trade-off between
realism and control
Sample size (Big Data)DataRichness(ThickData)
Low High
Low
High
Case studies
Controlled/Lab
Experiments
Ethnography
Trade-off between
realism and control
Sample size (Big Data)DataRichness(ThickData)
Low High
Low
High
Case studies
Repository
Analysis (OSS)
Controlled/Lab
Experiments
Ethnography
Trade-off between
realism and control
Sample size (Big Data)DataRichness(ThickData)
Low High
Low
High
Case studies
Repository
Analysis (OSS)
Controlled/Lab
Experiments
Our study?
Ethnography
Trade-off between
realism and control
Sample size (Big Data)DataRichness(ThickData)
Low High
Low
High
Case studies
Repository
Analysis (OSS)
Controlled/Lab
Experiments
Our study?
Mega-cross-project
experiments?
Ethnography
Experimental Replication Applied to Case Study [1]
Experimental Replication Applied to Case Study [1]
Context Context
Case 1 Case 2
Literal Replication
≈
Same Tasks
Developers with similar skills
Same project setting
Same technology
Case 2
Code
Smells
System A
Code
Smells
System A
≈
Maintenance
outcomes
Maintenance
outcomes
System ASystem A
Same Systems
Context Context
Case 1 Case 2
Maintenance
outcomes
Theoretical Replication
≠
Same Tasks
Developers with similar skills
Same project setting
Same technology
Case 3
Code
Smells
System A
Code
Smells
System B
≠
Maintenance
outcomes
System BSystem A
Different Systems
Experimental Replication Applied to Case Study [1]
Context Context
Case 1 Case 2
Literal Replication
≈
Same Tasks
Developers with similar skills
Same project setting
Same technology
Case 2
Code
Smells
System A
Code
Smells
System A
≈
Maintenance
outcomes
Maintenance
outcomes
System ASystem A
Same Systems
Context Context
Case 1 Case 2
Maintenance
outcomes
Theoretical Replication
≠
Same Tasks
Developers with similar skills
Same project setting
Same technology
Case 3
Code
Smells
System A
Code
Smells
System B
≠
Maintenance
outcomes
System BSystem A
Different Systems
[1] Yamashita, 2012: “Assessing the capability of code smells to support software maintainability
assessments: Empirical inquiry and methodological approach” PhD Thesis

More Related Content

What's hot

Class Diagram Extraction from Textual Requirements Using NLP Techniques
Class Diagram Extraction from Textual Requirements Using NLP TechniquesClass Diagram Extraction from Textual Requirements Using NLP Techniques
Class Diagram Extraction from Textual Requirements Using NLP Techniquesiosrjce
 
Concepts of JetBrains MPS
Concepts of JetBrains MPSConcepts of JetBrains MPS
Concepts of JetBrains MPSVaclav Pech
 
Butler
ButlerButler
Butleranesah
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)guestebde
 
Intelligent query converter a domain independent interfacefor conversion
Intelligent query converter a domain independent interfacefor conversionIntelligent query converter a domain independent interfacefor conversion
Intelligent query converter a domain independent interfacefor conversionIAEME Publication
 
Encoding and Designing for the Swift Poems Project
Encoding and Designing for the Swift Poems ProjectEncoding and Designing for the Swift Poems Project
Encoding and Designing for the Swift Poems ProjectJames Griffin
 
IRJET- An Efficient Way to Querying XML Database using Natural Language
IRJET-  	  An Efficient Way to Querying XML Database using Natural LanguageIRJET-  	  An Efficient Way to Querying XML Database using Natural Language
IRJET- An Efficient Way to Querying XML Database using Natural LanguageIRJET Journal
 
A novel approach for clone group mapping
A novel approach for clone group mappingA novel approach for clone group mapping
A novel approach for clone group mappingijseajournal
 
IRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine LearningIRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine LearningIRJET Journal
 
Block Library Driven Translation Validation for DataFlow Models in Safety Cri...
Block Library Driven Translation Validation for DataFlow Models in Safety Cri...Block Library Driven Translation Validation for DataFlow Models in Safety Cri...
Block Library Driven Translation Validation for DataFlow Models in Safety Cri...Marc Pantel
 
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...Raffi Khatchadourian
 

What's hot (16)

Istqb ctfl syll 2011
Istqb ctfl syll 2011Istqb ctfl syll 2011
Istqb ctfl syll 2011
 
Class Diagram Extraction from Textual Requirements Using NLP Techniques
Class Diagram Extraction from Textual Requirements Using NLP TechniquesClass Diagram Extraction from Textual Requirements Using NLP Techniques
Class Diagram Extraction from Textual Requirements Using NLP Techniques
 
Concepts of JetBrains MPS
Concepts of JetBrains MPSConcepts of JetBrains MPS
Concepts of JetBrains MPS
 
Core java part1
Core java  part1Core java  part1
Core java part1
 
Butler
ButlerButler
Butler
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
Intelligent query converter a domain independent interfacefor conversion
Intelligent query converter a domain independent interfacefor conversionIntelligent query converter a domain independent interfacefor conversion
Intelligent query converter a domain independent interfacefor conversion
 
Encoding and Designing for the Swift Poems Project
Encoding and Designing for the Swift Poems ProjectEncoding and Designing for the Swift Poems Project
Encoding and Designing for the Swift Poems Project
 
OOPS_Unit_1
OOPS_Unit_1OOPS_Unit_1
OOPS_Unit_1
 
C+++
C+++C+++
C+++
 
IRJET- An Efficient Way to Querying XML Database using Natural Language
IRJET-  	  An Efficient Way to Querying XML Database using Natural LanguageIRJET-  	  An Efficient Way to Querying XML Database using Natural Language
IRJET- An Efficient Way to Querying XML Database using Natural Language
 
A novel approach for clone group mapping
A novel approach for clone group mappingA novel approach for clone group mapping
A novel approach for clone group mapping
 
IRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine LearningIRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine Learning
 
Oop
OopOop
Oop
 
Block Library Driven Translation Validation for DataFlow Models in Safety Cri...
Block Library Driven Translation Validation for DataFlow Models in Safety Cri...Block Library Driven Translation Validation for DataFlow Models in Safety Cri...
Block Library Driven Translation Validation for DataFlow Models in Safety Cri...
 
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
 

Similar to Msr17a.ppt

Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Softwaredgarijo
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesTao Xie
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringTao Xie
 
Software Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecuritySoftware Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecurityTao Xie
 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)dmgerman
 
GPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators FamiliesGPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators FamiliesMohamed BOUSSAA
 
Unlocking Engineering Observability with advanced IT analytics
Unlocking Engineering Observability with advanced IT analyticsUnlocking Engineering Observability with advanced IT analytics
Unlocking Engineering Observability with advanced IT analyticssource{d}
 
Machine programming
Machine programmingMachine programming
Machine programmingDESMOND YUEN
 
Towards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java ApplicationsTowards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java ApplicationsGábor Szárnyas
 
Software Security Assurance for DevOps
Software Security Assurance for DevOpsSoftware Security Assurance for DevOps
Software Security Assurance for DevOpsBlack Duck by Synopsys
 
Improving your team’s source code searching capabilities
Improving your team’s source code searching capabilitiesImproving your team’s source code searching capabilities
Improving your team’s source code searching capabilitiesNikos Katirtzis
 
Improving your team's source code searching capabilities - Voxxed Thessalonik...
Improving your team's source code searching capabilities - Voxxed Thessalonik...Improving your team's source code searching capabilities - Voxxed Thessalonik...
Improving your team's source code searching capabilities - Voxxed Thessalonik...Nikos Katirtzis
 
Software system design sample
Software system design sampleSoftware system design sample
Software system design sampleNorman K Ma
 
What would Jesus Developer do?
What would Jesus Developer do?What would Jesus Developer do?
What would Jesus Developer do?Lukáš Čech
 
Gnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 yearsGnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 yearsGnana Bocha
 
May: Automated Developer Testing: Achievements and Challenges
May: Automated Developer Testing: Achievements and ChallengesMay: Automated Developer Testing: Achievements and Challenges
May: Automated Developer Testing: Achievements and ChallengesTriTAUG
 

Similar to Msr17a.ppt (20)

Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Software
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software Engineering
 
Software Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecuritySoftware Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and Security
 
KeithJohnston06212015
KeithJohnston06212015KeithJohnston06212015
KeithJohnston06212015
 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)
 
GPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators FamiliesGPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators Families
 
Unlocking Engineering Observability with advanced IT analytics
Unlocking Engineering Observability with advanced IT analyticsUnlocking Engineering Observability with advanced IT analytics
Unlocking Engineering Observability with advanced IT analytics
 
Machine programming
Machine programmingMachine programming
Machine programming
 
Towards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java ApplicationsTowards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java Applications
 
Software Security Assurance for DevOps
Software Security Assurance for DevOpsSoftware Security Assurance for DevOps
Software Security Assurance for DevOps
 
Improving your team’s source code searching capabilities
Improving your team’s source code searching capabilitiesImproving your team’s source code searching capabilities
Improving your team’s source code searching capabilities
 
Improving your team's source code searching capabilities - Voxxed Thessalonik...
Improving your team's source code searching capabilities - Voxxed Thessalonik...Improving your team's source code searching capabilities - Voxxed Thessalonik...
Improving your team's source code searching capabilities - Voxxed Thessalonik...
 
Software system design sample
Software system design sampleSoftware system design sample
Software system design sample
 
Neha_Maggu
Neha_MagguNeha_Maggu
Neha_Maggu
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
 
Code Inspection
Code InspectionCode Inspection
Code Inspection
 
What would Jesus Developer do?
What would Jesus Developer do?What would Jesus Developer do?
What would Jesus Developer do?
 
Gnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 yearsGnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 years
 
May: Automated Developer Testing: Achievements and Challenges
May: Automated Developer Testing: Achievements and ChallengesMay: Automated Developer Testing: Achievements and Challenges
May: Automated Developer Testing: Achievements and Challenges
 

More from Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 
Thesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptThesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptPtidej Team
 

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 
Thesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptThesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.ppt
 
Icsoc16b.ppt
Icsoc16b.pptIcsoc16b.ppt
Icsoc16b.ppt
 

Recently uploaded

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

Msr17a.ppt

  • 1. Software Evolution and Defects from a Controlled, Multiple, Industrial Case Study Aiko Yamashita, S. Amirhossein Abtahizadeh, Foutse Khomh, Yann-Gaël Guéhéneuc Centrum Wiskunde & Informatica Oslo and Akershus University College of Applied Sciences Polytechnique Montréal Data Showcase - MSR 2017 - Buenos Aires, Argentina
  • 2. Moderator Factors in Software Engineering Researcher Software Project
  • 3. Moderator Factors in Software Engineering Researcher Software Project System Project context Tasks Source code Daily interviews Audio files/notes Subversion database Programming Skill Defects* Development Technology Change Size** Effort** Maintenance outcomes Eclipse activity logs Trac (Issue tracker), Acceptance test reports Open interviews Audio files/notes Variables of interest Data sources Moderator variables Code smells (num. smells** smell density**) Maintainability perception* Maintenance problems** Think aloud Video files/notes Study diary Learning Effect
  • 4. Moderator Factors in Software Engineering Researcher Software Project System Project context Tasks Source code Daily interviews Audio files/notes Subversion database Programming Skill Defects* Development Technology Change Size** Effort** Maintenance outcomes Eclipse activity logs Trac (Issue tracker), Acceptance test reports Open interviews Audio files/notes Variables of interest Data sources Moderator variables Code smells (num. smells** smell density**) Maintainability perception* Maintenance problems** Think aloud Video files/notes Study diary Learning Effect
  • 6. • Simula Experiment• Software Replicability• 4 Norwegian firms Java Applications with near same functionality A DB C Study 1 Task and learning effect
  • 7. Task and learning effect •Simula multiple case study • Software Maintainability • 2 European firms Study 2
  • 8. Task and learning effect Task 3. New Reporting functionality Task 1. Replacing external data source ✔ Task 2. New authentication mechanism System! Control over task•Simula multiple case study • Software Maintainability • 2 European firms Study 2
  • 9. Task and learning effect DCBA Developer System Control over learning effect Task 3. New Reporting functionality Task 1. Replacing external data source ✔ Task 2. New authentication mechanism System! Control over task•Simula multiple case study • Software Maintainability • 2 European firms Study 2
  • 11. Programming skills “Construction and Validation of an Instrument for Measuring Programming Skill” (Bergersen et. al. 2014) Control over programming skills
  • 12. Programming skills • Measurement instrument based on combination of speed and correctness. “Construction and Validation of an Instrument for Measuring Programming Skill” (Bergersen et. al. 2014) Control over programming skills
  • 13. Programming skills • Measurement instrument based on combination of speed and correctness. • The Rasch measurement model was used. “Construction and Validation of an Instrument for Measuring Programming Skill” (Bergersen et. al. 2014) Control over programming skills
  • 14. Programming skills • Measurement instrument based on combination of speed and correctness. • The Rasch measurement model was used. • Sixty-five professional developers from eight countries participated in validating the instrument “Construction and Validation of an Instrument for Measuring Programming Skill” (Bergersen et. al. 2014) Control over programming skills
  • 15. Programming skills • Measurement instrument based on combination of speed and correctness. • The Rasch measurement model was used. • Sixty-five professional developers from eight countries participated in validating the instrument • They solved 19 Java programming tasks over two days “Construction and Validation of an Instrument for Measuring Programming Skill” (Bergersen et. al. 2014) Control over programming skills
  • 16. Programming skills • Measurement instrument based on combination of speed and correctness. • The Rasch measurement model was used. • Sixty-five professional developers from eight countries participated in validating the instrument • They solved 19 Java programming tasks over two days • Six of the participants who scored better than average skill were selected “Construction and Validation of an Instrument for Measuring Programming Skill” (Bergersen et. al. 2014) Control over programming skills
  • 17. Variables and Data Sources System Project context Tasks Source code Daily interviews Audio files/notes Subversion database Programming Skill Defects* Development Technology Change Size** Effort** Maintenance outcomes Think aloud Video files/notes Task progress sheets Eclipse activity logs Trac (Issue tracker), Acceptance test reports Open interviews Audio files/notes Variables of interest Data sources Moderator variables Code smells (num. smells** smell density**) ** System and file level * Only at system level Maintainability perception* Maintenance problems** Think aloud Video files/notes Study diary Task Dates+ Figure from [1] [1] Yamashita, 2012: “Assessing the capability of code smells to support software maintainability assessments: Empirical inquiry and methodological approach” PhD Thesis
  • 18. Source Code** Java Applications with near same functionality A DB C **Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
  • 19. Source Code** • Java, Javascript, SQL, HTML, XML. Java Applications with near same functionality A DB C **Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
  • 20. Source Code** • Java, Javascript, SQL, HTML, XML. • Developed by 4 Norwegian companies based on same specification Java Applications with near same functionality A DB C **Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
  • 21. Source Code** • Java, Javascript, SQL, HTML, XML. • Developed by 4 Norwegian companies based on same specification • Result from experiment reported by Anda et al., (2008): “Variability and Reproducibility in Software Engineering: A Study of Four Companies that Developed the Same System” Java Applications with near same functionality A DB C **Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
  • 22. Code smells and evolution data** **Available at https://zenodo.org/record/293719
  • 23. Code smells and evolution data** Code Smells: **Available at https://zenodo.org/record/293719
  • 24. Code smells and evolution data** Code Smells: • Tools for Code Smells: Borland Together and InCode **Available at https://zenodo.org/record/293719
  • 25. Code smells and evolution data** Code Smells: • Tools for Code Smells: Borland Together and InCode • Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class, Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes, Use of implementation instead of interface, and Interface Segregation Principle (ISP) Violation **Available at https://zenodo.org/record/293719
  • 26. Code smells and evolution data** Code Smells: • Tools for Code Smells: Borland Together and InCode • Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class, Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes, Use of implementation instead of interface, and Interface Segregation Principle (ISP) Violation • Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions) **Available at https://zenodo.org/record/293719
  • 27. Code smells and evolution data** Code Smells: • Tools for Code Smells: Borland Together and InCode • Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class, Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes, Use of implementation instead of interface, and Interface Segregation Principle (ISP) Violation • Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions) Code Evolution: **Available at https://zenodo.org/record/293719
  • 28. Code smells and evolution data** Code Smells: • Tools for Code Smells: Borland Together and InCode • Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class, Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes, Use of implementation instead of interface, and Interface Segregation Principle (ISP) Violation • Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions) Code Evolution: • Tool for changes: Custom written code with SVNKit **Available at https://zenodo.org/record/293719
  • 29. Code smells and evolution data** Code Smells: • Tools for Code Smells: Borland Together and InCode • Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class, Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes, Use of implementation instead of interface, and Interface Segregation Principle (ISP) Violation • Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions) Code Evolution: • Tool for changes: Custom written code with SVNKit • Variables: Programmer, Revision No., Date, Full path, Filename, File extension, System, Action Type (i.e. Added, Deleted, Modified, Renamed), No. lines added, No. lines deleted, No. lines changed, and Churn **Available at https://zenodo.org/record/293719
  • 30. Code smells and evolution data** Code Smells: • Tools for Code Smells: Borland Together and InCode • Code Smells: Detected Data Class, Data Clumps, Duplicated code in conditional branches, Feature Envy, God (Large) Class, God (Long) Method, Misplaced Class, Refused Bequest, Shotgun Surgery, Temporary variable used for several purposes, Use of implementation instead of interface, and Interface Segregation Principle (ISP) Violation • Files: InitialSmells.xls (1 version), FinalSmells.xls (12 versions) Code Evolution: • Tool for changes: Custom written code with SVNKit • Variables: Programmer, Revision No., Date, Full path, Filename, File extension, System, Action Type (i.e. Added, Deleted, Modified, Renamed), No. lines added, No. lines deleted, No. lines changed, and Churn • File: Changes.xls (includes evolution of all 12 versions) **Available at https://zenodo.org/record/293719
  • 31. Software Evolution History** DCBA Developer System **Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
  • 32. Software Evolution History** • 3 projects per system, i.e., 6 developers x 2 systems = 12 projects (cases or evolution histories) DCBA Developer System **Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
  • 33. Software Evolution History** • 3 projects per system, i.e., 6 developers x 2 systems = 12 projects (cases or evolution histories) • Technologies involved: MySQL, Apache Tomcat, SVN, Trac, My Eclipse DCBA Developer System **Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
  • 34. Software Evolution History** • 3 projects per system, i.e., 6 developers x 2 systems = 12 projects (cases or evolution histories) • Technologies involved: MySQL, Apache Tomcat, SVN, Trac, My Eclipse • Each project took 3-4 weeks, full-time. DCBA Developer System **Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
  • 35. Software Evolution History** • 3 projects per system, i.e., 6 developers x 2 systems = 12 projects (cases or evolution histories) • Technologies involved: MySQL, Apache Tomcat, SVN, Trac, My Eclipse • Each project took 3-4 weeks, full-time. • SVN was converted to Git and hosted at Polytechnic of Montreal. DCBA Developer System **Available at: opendata.soccerlab.polymtl.ca/git/users/root/projects
  • 36. Defect Data** ++original SVN repo and Trac instances are available upon request **Available at https://zenodo.org/record/293719
  • 37. Defect Data** • Due to heterogeneity of systems, no common unit testing suit is available :( ++original SVN repo and Trac instances are available upon request **Available at https://zenodo.org/record/293719
  • 38. Defect Data** • Due to heterogeneity of systems, no common unit testing suit is available :( • 2 rounds of acceptance testing for each of the 12 projects ++original SVN repo and Trac instances are available upon request **Available at https://zenodo.org/record/293719
  • 39. Defect Data** • Due to heterogeneity of systems, no common unit testing suit is available :( • 2 rounds of acceptance testing for each of the 12 projects • Defects were recorded in Trac after each acceptance testing ++original SVN repo and Trac instances are available upon request **Available at https://zenodo.org/record/293719
  • 40. Defect Data** • Due to heterogeneity of systems, no common unit testing suit is available :( • 2 rounds of acceptance testing for each of the 12 projects • Defects were recorded in Trac after each acceptance testing • Trac was too tightly-integrated with SVN, therefore not possible to install on a server ++ ++original SVN repo and Trac instances are available upon request **Available at https://zenodo.org/record/293719
  • 41. Defect Data** • Due to heterogeneity of systems, no common unit testing suit is available :( • 2 rounds of acceptance testing for each of the 12 projects • Defects were recorded in Trac after each acceptance testing • Trac was too tightly-integrated with SVN, therefore not possible to install on a server ++ • 12 reports extracted from Trac: ++original SVN repo and Trac instances are available upon request **Available at https://zenodo.org/record/293719
  • 42. Defect Data** • Due to heterogeneity of systems, no common unit testing suit is available :( • 2 rounds of acceptance testing for each of the 12 projects • Defects were recorded in Trac after each acceptance testing • Trac was too tightly-integrated with SVN, therefore not possible to install on a server ++ • 12 reports extracted from Trac: Defects_Dev{1/2/3/4/5/6}_Sys{A/B/C/D}.xlsx ++original SVN repo and Trac instances are available upon request **Available at https://zenodo.org/record/293719
  • 43. Defect Data** • Due to heterogeneity of systems, no common unit testing suit is available :( • 2 rounds of acceptance testing for each of the 12 projects • Defects were recorded in Trac after each acceptance testing • Trac was too tightly-integrated with SVN, therefore not possible to install on a server ++ • 12 reports extracted from Trac: Defects_Dev{1/2/3/4/5/6}_Sys{A/B/C/D}.xlsx • ++original SVN repo and Trac instances are available upon request **Available at https://zenodo.org/record/293719
  • 44. Task Dates** **Available at https://zenodo.org/record/293719
  • 45. Task Dates** A problem in longitudinal, brown-field study: limits between tasks become “blurry” **Available at https://zenodo.org/record/293719
  • 46. Task Dates** A problem in longitudinal, brown-field study: limits between tasks become “blurry” Examples: **Available at https://zenodo.org/record/293719
  • 47. Task Dates** A problem in longitudinal, brown-field study: limits between tasks become “blurry” Examples: Developer finishes Task 3 in System 1 in the morning, and moves on to Task 1 for System 2 in the afternoon. **Available at https://zenodo.org/record/293719
  • 48. Task Dates** A problem in longitudinal, brown-field study: limits between tasks become “blurry” Examples: Developer finishes Task 3 in System 1 in the morning, and moves on to Task 1 for System 2 in the afternoon. Developer was working on Task 2, but then forgot to change something in Task 1, so switch temporary between tasks. **Available at https://zenodo.org/record/293719
  • 49. Task Dates** A problem in longitudinal, brown-field study: limits between tasks become “blurry” Examples: Developer finishes Task 3 in System 1 in the morning, and moves on to Task 1 for System 2 in the afternoon. Developer was working on Task 2, but then forgot to change something in Task 1, so switch temporary between tasks. We used different sources to estimate the Dates in which a developer was working on a given System and a given Task. **Available at https://zenodo.org/record/293719
  • 50. Task Dates** A problem in longitudinal, brown-field study: limits between tasks become “blurry” Examples: Developer finishes Task 3 in System 1 in the morning, and moves on to Task 1 for System 2 in the afternoon. Developer was working on Task 2, but then forgot to change something in Task 1, so switch temporary between tasks. We used different sources to estimate the Dates in which a developer was working on a given System and a given Task. Project context Daily interviews Audio files/notes Subversion database Defects* Development Technology Change Size** Effort** Maintenance outcomes Think aloud Video files/notes Task progress sheets Eclipse activity logs Trac (Issue tracker), Acceptance test reports Open interviews Audio files/notes Maintainability perception* Maintenance problems** oud /notes Study diary **Available at https://zenodo.org/record/293719
  • 51. Task Dates** A problem in longitudinal, brown-field study: limits between tasks become “blurry” Examples: Developer finishes Task 3 in System 1 in the morning, and moves on to Task 1 for System 2 in the afternoon. Developer was working on Task 2, but then forgot to change something in Task 1, so switch temporary between tasks. We used different sources to estimate the Dates in which a developer was working on a given System and a given Task. Project context Daily interviews Audio files/notes Subversion database Defects* Development Technology Change Size** Effort** Maintenance outcomes Think aloud Video files/notes Task progress sheets Eclipse activity logs Trac (Issue tracker), Acceptance test reports Open interviews Audio files/notes Maintainability perception* Maintenance problems** oud /notes Study diary **Available at https://zenodo.org/record/293719
  • 52. Task Dates** A problem in longitudinal, brown-field study: limits between tasks become “blurry” Examples: Developer finishes Task 3 in System 1 in the morning, and moves on to Task 1 for System 2 in the afternoon. Developer was working on Task 2, but then forgot to change something in Task 1, so switch temporary between tasks. We used different sources to estimate the Dates in which a developer was working on a given System and a given Task. Project context Daily interviews Audio files/notes Subversion database Defects* Development Technology Change Size** Effort** Maintenance outcomes Think aloud Video files/notes Task progress sheets Eclipse activity logs Trac (Issue tracker), Acceptance test reports Open interviews Audio files/notes Maintainability perception* Maintenance problems** oud /notes Study diary Task Dates **Available at https://zenodo.org/record/293719
  • 54. Potential usage scenarios a) Analysis of “repeated defects” in a multiple case study
  • 55. Potential usage scenarios a) Analysis of “repeated defects” in a multiple case study b) Studies on the impact of different metrics/attributes on software evolution
  • 56. Potential usage scenarios a) Analysis of “repeated defects” in a multiple case study b) Studies on the impact of different metrics/attributes on software evolution c) Further studies on inter-smell relations
  • 57. Potential usage scenarios a) Analysis of “repeated defects” in a multiple case study b) Studies on the impact of different metrics/attributes on software evolution c) Further studies on inter-smell relations d) Cost-benefit analysis of code smell removal
  • 58. Potential usage scenarios a) Analysis of “repeated defects” in a multiple case study b) Studies on the impact of different metrics/attributes on software evolution c) Further studies on inter-smell relations d) Cost-benefit analysis of code smell removal e) Benchmarking of diverse tools/ methodologies
  • 59. Potential usage scenarios a) Analysis of “repeated defects” in a multiple case study b) Studies on the impact of different metrics/attributes on software evolution c) Further studies on inter-smell relations d) Cost-benefit analysis of code smell removal e) Benchmarking of diverse tools/ methodologies f) Task/context extraction, alongside ideas by [2] [2] M. Barnett, et al., “Helping Developers Help Themselves: Automatic Decomposition of Code Review Change-sets,” (ICSE ’15)

  • 60. What to consider when using the data..
  • 61. What to consider when using the data.. A. Context of the study
  • 62. What to consider when using the data.. A. Context of the study B. Tasks were individual
  • 63. What to consider when using the data.. A. Context of the study B. Tasks were individual C. Time frame is approx. 1-2 sprints
  • 64. What to consider when using the data.. A. Context of the study B. Tasks were individual C. Time frame is approx. 1-2 sprints D. The age of the systems (+10 years)
  • 65. What to consider when using the data.. A. Context of the study B. Tasks were individual C. Time frame is approx. 1-2 sprints D. The age of the systems (+10 years) E. Tool for code smells not available
  • 66. What to consider when using the data.. A. Context of the study B. Tasks were individual C. Time frame is approx. 1-2 sprints D. The age of the systems (+10 years) E. Tool for code smells not available F. No explicit corrective tasks
  • 67. What to consider when using the data.. A. Context of the study B. Tasks were individual C. Time frame is approx. 1-2 sprints D. The age of the systems (+10 years) E. Tool for code smells not available F. No explicit corrective tasks G. Date accuracy for the tasks
  • 68. What to consider when using the data.. A. Context of the study B. Tasks were individual C. Time frame is approx. 1-2 sprints D. The age of the systems (+10 years) E. Tool for code smells not available F. No explicit corrective tasks G. Date accuracy for the tasks H. Not all the commit logs were associated with an issue ID
  • 69. What to consider when using the data.. A. Context of the study B. Tasks were individual C. Time frame is approx. 1-2 sprints D. The age of the systems (+10 years) E. Tool for code smells not available F. No explicit corrective tasks G. Date accuracy for the tasks H. Not all the commit logs were associated with an issue ID I. Consider the trade-off between the degree of realism and the degree of control in such type of studies
  • 70. Trade-off between realism and control Sample size (Big Data)DataRichness(ThickData) Low High Low High
  • 71. Trade-off between realism and control Sample size (Big Data)DataRichness(ThickData) Low High Low High Controlled/Lab Experiments
  • 72. Trade-off between realism and control Sample size (Big Data)DataRichness(ThickData) Low High Low High Case studies Controlled/Lab Experiments
  • 73. Trade-off between realism and control Sample size (Big Data)DataRichness(ThickData) Low High Low High Case studies Controlled/Lab Experiments Ethnography
  • 74. Trade-off between realism and control Sample size (Big Data)DataRichness(ThickData) Low High Low High Case studies Repository Analysis (OSS) Controlled/Lab Experiments Ethnography
  • 75. Trade-off between realism and control Sample size (Big Data)DataRichness(ThickData) Low High Low High Case studies Repository Analysis (OSS) Controlled/Lab Experiments Our study? Ethnography
  • 76. Trade-off between realism and control Sample size (Big Data)DataRichness(ThickData) Low High Low High Case studies Repository Analysis (OSS) Controlled/Lab Experiments Our study? Mega-cross-project experiments? Ethnography
  • 77.
  • 78. Experimental Replication Applied to Case Study [1]
  • 79. Experimental Replication Applied to Case Study [1] Context Context Case 1 Case 2 Literal Replication ≈ Same Tasks Developers with similar skills Same project setting Same technology Case 2 Code Smells System A Code Smells System A ≈ Maintenance outcomes Maintenance outcomes System ASystem A Same Systems Context Context Case 1 Case 2 Maintenance outcomes Theoretical Replication ≠ Same Tasks Developers with similar skills Same project setting Same technology Case 3 Code Smells System A Code Smells System B ≠ Maintenance outcomes System BSystem A Different Systems
  • 80. Experimental Replication Applied to Case Study [1] Context Context Case 1 Case 2 Literal Replication ≈ Same Tasks Developers with similar skills Same project setting Same technology Case 2 Code Smells System A Code Smells System A ≈ Maintenance outcomes Maintenance outcomes System ASystem A Same Systems Context Context Case 1 Case 2 Maintenance outcomes Theoretical Replication ≠ Same Tasks Developers with similar skills Same project setting Same technology Case 3 Code Smells System A Code Smells System B ≠ Maintenance outcomes System BSystem A Different Systems [1] Yamashita, 2012: “Assessing the capability of code smells to support software maintainability assessments: Empirical inquiry and methodological approach” PhD Thesis