SlideShare a Scribd company logo
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 Techniques
iosrjce
 
Concepts of JetBrains MPS
Concepts of JetBrains MPSConcepts of JetBrains MPS
Concepts of JetBrains MPS
Vaclav Pech
 
Core java part1
Core java  part1Core java  part1
Core java part1
VenkataBolagani
 
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 Project
James Griffin
 
OOPS_Unit_1
OOPS_Unit_1OOPS_Unit_1
OOPS_Unit_1
Shipra Swati
 
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
IRJET 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 mapping
ijseajournal
 
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
IRJET Journal
 
Oop
OopOop
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 Software
dgarijo
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
Tao 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 Engineering
Tao 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 Security
Tao 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 Families
Mohamed 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 analytics
source{d}
 
Machine programming
Machine programmingMachine programming
Machine programming
DESMOND 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 Applications
Gábor Szárnyas
 
Software Security Assurance for DevOps
Software Security Assurance for DevOpsSoftware Security Assurance for DevOps
Software Security Assurance for DevOps
Black Duck by Synopsys
 
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
 
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
Nikos Katirtzis
 
Software system design sample
Software system design sampleSoftware system design sample
Software system design sample
Norman K Ma
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
MikhailVladimirov
 
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 Challenges
TriTAUG
 

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 - 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...
 
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
 
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 Miniaturisation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
Ptidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
Ptidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
Ptidej Team
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
Ptidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
Ptidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
Ptidej 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 crisis
Ptidej Team
 
MIPA
MIPAMIPA
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
Ptidej Team
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
Ptidej Team
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
Ptidej Team
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
Ptidej Team
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
Ptidej Team
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
Ptidej Team
 
Thesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptThesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.ppt
Ptidej Team
 
Icsoc16b.ppt
Icsoc16b.pptIcsoc16b.ppt
Icsoc16b.ppt
Ptidej 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

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 

Recently uploaded (20)

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 

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