SlideShare a Scribd company logo
Jaafar, YannGuéhéneuc,
Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel, and
Bram Adams
Université de Montréal
École Polytechnique de Montréal
Quebec Canada

1
1. Introduction
2. Related Work
3. Problem Statement
4. Empirical Study
5. Research Questions
6. Results
7. Ongoing Work
8. Conclusion
2
Programs evolve continuously, requiring constant maintenance and development.
Features are added and faults are fixed. Programs become more complex over
time and thus, harder to maintain.
This decay could be detected by measuring the instability of the program, a poor
code quality and a high fault rates..

3
Change-Log Approaches[1] use process metrics extracted from the versioning
system, assuming that recently or frequently changed classes are the most
probable source of faults.
Code-Metrics approaches[2] use source code metrics, assuming that complex
or larger classes are more fault-prone.
Ostrand et al. [3] found that 20% of classes contains 80% of faults. At the same
time, these 20% of classes accounted for 50% of the source code.
Assuming that all classes are considered to have the same likelihood for faultproneness is not realistic.
Not all classes are there to last forever, some are meant for experimentation, so
it could be expected that they have more faults.
[1] A. E. Hassan, “Predicting faults using the complexity of code changes,” in

Proceedings of the 31st International Conference on Software Engineering, 2009.
[2] R. Moser, W. Pedrycz, and G. Succi, “A comparative analysis of the efficiency of
change metrics and static code attributes for defect prediction,” in Proceedings of

the 30th international conference on Software engineering, 2008
[3] T. Ostrand, E. Weyuker, and R. Bell, “Predicting the location and number of
faults in large software systems,” Software Engineering, IEEE Transactions, 2005.
4
Most previous fault prediction approaches were proposed to analyse faultproneness using complexity code metrics and-or change metrics.
Classes that exhibit similar evolution profiles, are considered as co-evolved
classes, may have interdependencies among them.
However, it is not clear how classes with similare evolution behavior are linked
with faults. Indeed, evolution studies out there did not link different evolution
behavior to faults.
How we can relate the evolution of classes in object-oriented programs with
fault-proneness.

5
In JFreeChart, we find that ChartPanel.java and CombinedDomainXYPlot.java were
introduced, changed and renamed in the same versions but in different periods and by
different developers.
The bugID195003710 reported “ a bug either in ChartPanel or CombinedDomainXYPlot
when trying to zoom in/out on the range axis”.

6
We classify classes according to their class-profiles. We report three types of class
evolution:
Short-lived classes: They have a very short lifetime, i.e., they exist only during one
version of the program.
Persistent classes: They never disappear after their first introduction into the
program.
Transient classes: They appear and disappear many times during the program
lifetime.
Co-evolved classes: They have the same evolution profile and are related by static
relationships.

7
Given several versions of a program, we extracted their class diagrams using
an existing tool PADL [3].
We identified class renamings, class changes, and fault fixing using two
previous approaches: ADvISE [4] and Macocha [5].
We created the set of class-profiles that describes the evolution of each class in
the program.
[3] Y.-G. Guéhéneuc and G. Antoniol, “DeMIMA: A multilayered
framework for design pattern identification,” Transactions on Software
Engineering (TSE), vol. 34, no. 5, pp. 667–684, 2008.
[4] S. Hassaine, Yann-Ga¨el, S. Hamel, and A. Giuliano, “Advise:
Architectural decay in software evolution,” in Proc. 16th European
Conference on Software Maintenance and Reengineering, 2012.
[5] F. Jaafar, Y. Guéhéneuc, S. Hamel, and G. Antoniol, “An exploratory
study of macro co-changes,” in Working Conference on Reverse

Engineering (WCRE). IEEE, 2011,
8
9
RQ1: What is the relation between class lifetime and fault-proneness?
We group classes according to their profiles through the program lifespan, by
considering the renaming, refactoring, and structural changes of classes, to determine
how class lifetime are related to fault-proneness.
RQ2 :What is the relation between class co-evolution and fault-proneness?
We check if the proportion of faults fixed by maintaining co-evolved classes are
significantly more than faults fixed using not co-evolved classes.

10
We use Fisher’s exact test and the Chi-Square test
to check two hypothesis. We also compute the odds
ratio [20] that indicates the likelihood for an event to
occur.
HRQ10: There is no statistically significant difference between proportions of
faults carried by Persistent, Shortlived, and Transient classes in ArgoUML,
JFreeChart, and XercesJ.
HRQ20: There is no statistically significant difference between proportions of
faults involving co-evolved classes or not co-evolved classes in the three
programs.

11
12
13
14
We found that Persistent classes are significantly less fault-prone than Shortlived and Transient classes.
Faults fixed by maintaining co-evolved classes are significantly more than
faults fixed using not co-evolved classes.
Special attention must be given to these entities to keep the design intact
during program evolution because they could have a negative impact on the
fault-proneness of the program.

15
Relating class lifetime and change-proneness.
Using these results to improve faults detection tools.
Prevent change in co-evolved classes.
Identifying the lifetime followed by classes belonged to design motifs such as design
patterns and anti-patterns.

16
We provide empirical evidence of the relationships between class
evolution and fault proneness.
We showed that Persistent classes are significantly less fault-prone than
other classes and that faults fixed by maintaining co-evolved classes are
significantly more than faults fixed using not co-evolved classes.
We provide a basis for future research to understand the causes and the
eventual consequences of these findings.

17

More Related Content

DOCX
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
PDF
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
PDF
Advanced Survival Analysis
PDF
Predicting Fault-Prone Files using Machine Learning
PDF
SGSS_Fault_Management_Analysis_IVV.Forquer.Okel
PDF
M018147883
PDF
A Microservice Architecture for the Design of Computer-Interpretable Guidelin...
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Advanced Survival Analysis
Predicting Fault-Prone Files using Machine Learning
SGSS_Fault_Management_Analysis_IVV.Forquer.Okel
M018147883
A Microservice Architecture for the Design of Computer-Interpretable Guidelin...

Viewers also liked (6)

PPT
Coralerp weaving
PDF
HP Pro x2 612 G1
PDF
Notebook HP EliteBook Folio 1040 G1
PPTX
Redes sociales youtube
PDF
Self-introduction
PPT
IS740 Chapter 04
Coralerp weaving
HP Pro x2 612 G1
Notebook HP EliteBook Folio 1040 G1
Redes sociales youtube
Self-introduction
IS740 Chapter 04
Ad

Similar to Csmr13c.ppt (20)

PDF
PDF
Thesis+of+fehmi+jaafar.ppt
PDF
EVALUATION OF SOFTWARE DEGRADATION AND FORECASTING FUTURE DEVELOPMENT NEEDS I...
PDF
Using Fuzzy Clustering and Software Metrics to Predict Faults in large Indust...
PDF
Contributors to Reduce Maintainability Cost at the Software Implementation Phase
PDF
EVALUATION AND STUDY OF SOFTWARE DEGRADATION IN THE EVOLUTION OF SIX VERSIONS...
PDF
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
PDF
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
PDF
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
PDF
J034057065
PDF
1841 1843
PDF
1841 1843
PDF
A defect prediction model based on the relationships between developers and c...
PDF
Software Defect Prediction Using Local and Global Analysis
PDF
An Empirical Study for Defect Prediction using Clustering
PDF
F017652530
PDF
A Review on Software Fault Detection and Prevention Mechanism in Software Dev...
PPTX
PDF
DEFECT PREDICTION USING ORDER STATISTICS
PDF
SOFTWARE CODE MAINTAINABILITY: A LITERATURE REVIEW
Thesis+of+fehmi+jaafar.ppt
EVALUATION OF SOFTWARE DEGRADATION AND FORECASTING FUTURE DEVELOPMENT NEEDS I...
Using Fuzzy Clustering and Software Metrics to Predict Faults in large Indust...
Contributors to Reduce Maintainability Cost at the Software Implementation Phase
EVALUATION AND STUDY OF SOFTWARE DEGRADATION IN THE EVOLUTION OF SIX VERSIONS...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
J034057065
1841 1843
1841 1843
A defect prediction model based on the relationships between developers and c...
Software Defect Prediction Using Local and Global Analysis
An Empirical Study for Defect Prediction using Clustering
F017652530
A Review on Software Fault Detection and Prevention Mechanism in Software Dev...
DEFECT PREDICTION USING ORDER STATISTICS
SOFTWARE CODE MAINTAINABILITY: A LITERATURE REVIEW
Ad

More from Ptidej Team (20)

PDF
From IoT to Software Miniaturisation
PDF
Presentation
PDF
Presentation
PDF
Presentation
PDF
Presentation by Lionel Briand
PDF
Manel Abdellatif
PDF
Azadeh Kermansaravi
PDF
Mouna Abidi
PDF
CSED - Manel Grichi
PDF
Cristiano Politowski
PDF
Will io t trigger the next software crisis
PDF
PDF
Thesis+of+laleh+eshkevari.ppt
PDF
Thesis+of+nesrine+abdelkafi.ppt
PDF
Medicine15.ppt
PDF
Qrs17b.ppt
PDF
Icpc11c.ppt
PDF
Icsme16.ppt
PDF
Msr17a.ppt
PDF
Icsoc15.ppt
From IoT to Software Miniaturisation
Presentation
Presentation
Presentation
Presentation by Lionel Briand
Manel Abdellatif
Azadeh Kermansaravi
Mouna Abidi
CSED - Manel Grichi
Cristiano Politowski
Will io t trigger the next software crisis
Thesis+of+laleh+eshkevari.ppt
Thesis+of+nesrine+abdelkafi.ppt
Medicine15.ppt
Qrs17b.ppt
Icpc11c.ppt
Icsme16.ppt
Msr17a.ppt
Icsoc15.ppt

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Empathic Computing: Creating Shared Understanding
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Machine learning based COVID-19 study performance prediction
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Spectroscopy.pptx food analysis technology
PDF
Spectral efficient network and resource selection model in 5G networks
Cloud computing and distributed systems.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Advanced methodologies resolving dimensionality complications for autism neur...
Mobile App Security Testing_ A Comprehensive Guide.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Understanding_Digital_Forensics_Presentation.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
NewMind AI Weekly Chronicles - August'25 Week I
Network Security Unit 5.pdf for BCA BBA.
Empathic Computing: Creating Shared Understanding
The AUB Centre for AI in Media Proposal.docx
MYSQL Presentation for SQL database connectivity
Machine learning based COVID-19 study performance prediction
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Spectroscopy.pptx food analysis technology
Spectral efficient network and resource selection model in 5G networks

Csmr13c.ppt

  • 1. Jaafar, YannGuéhéneuc, Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel, and Bram Adams Université de Montréal École Polytechnique de Montréal Quebec Canada 1
  • 2. 1. Introduction 2. Related Work 3. Problem Statement 4. Empirical Study 5. Research Questions 6. Results 7. Ongoing Work 8. Conclusion 2
  • 3. Programs evolve continuously, requiring constant maintenance and development. Features are added and faults are fixed. Programs become more complex over time and thus, harder to maintain. This decay could be detected by measuring the instability of the program, a poor code quality and a high fault rates.. 3
  • 4. Change-Log Approaches[1] use process metrics extracted from the versioning system, assuming that recently or frequently changed classes are the most probable source of faults. Code-Metrics approaches[2] use source code metrics, assuming that complex or larger classes are more fault-prone. Ostrand et al. [3] found that 20% of classes contains 80% of faults. At the same time, these 20% of classes accounted for 50% of the source code. Assuming that all classes are considered to have the same likelihood for faultproneness is not realistic. Not all classes are there to last forever, some are meant for experimentation, so it could be expected that they have more faults. [1] A. E. Hassan, “Predicting faults using the complexity of code changes,” in Proceedings of the 31st International Conference on Software Engineering, 2009. [2] R. Moser, W. Pedrycz, and G. Succi, “A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction,” in Proceedings of the 30th international conference on Software engineering, 2008 [3] T. Ostrand, E. Weyuker, and R. Bell, “Predicting the location and number of faults in large software systems,” Software Engineering, IEEE Transactions, 2005. 4
  • 5. Most previous fault prediction approaches were proposed to analyse faultproneness using complexity code metrics and-or change metrics. Classes that exhibit similar evolution profiles, are considered as co-evolved classes, may have interdependencies among them. However, it is not clear how classes with similare evolution behavior are linked with faults. Indeed, evolution studies out there did not link different evolution behavior to faults. How we can relate the evolution of classes in object-oriented programs with fault-proneness. 5
  • 6. In JFreeChart, we find that ChartPanel.java and CombinedDomainXYPlot.java were introduced, changed and renamed in the same versions but in different periods and by different developers. The bugID195003710 reported “ a bug either in ChartPanel or CombinedDomainXYPlot when trying to zoom in/out on the range axis”. 6
  • 7. We classify classes according to their class-profiles. We report three types of class evolution: Short-lived classes: They have a very short lifetime, i.e., they exist only during one version of the program. Persistent classes: They never disappear after their first introduction into the program. Transient classes: They appear and disappear many times during the program lifetime. Co-evolved classes: They have the same evolution profile and are related by static relationships. 7
  • 8. Given several versions of a program, we extracted their class diagrams using an existing tool PADL [3]. We identified class renamings, class changes, and fault fixing using two previous approaches: ADvISE [4] and Macocha [5]. We created the set of class-profiles that describes the evolution of each class in the program. [3] Y.-G. Guéhéneuc and G. Antoniol, “DeMIMA: A multilayered framework for design pattern identification,” Transactions on Software Engineering (TSE), vol. 34, no. 5, pp. 667–684, 2008. [4] S. Hassaine, Yann-Ga¨el, S. Hamel, and A. Giuliano, “Advise: Architectural decay in software evolution,” in Proc. 16th European Conference on Software Maintenance and Reengineering, 2012. [5] F. Jaafar, Y. Guéhéneuc, S. Hamel, and G. Antoniol, “An exploratory study of macro co-changes,” in Working Conference on Reverse Engineering (WCRE). IEEE, 2011, 8
  • 9. 9
  • 10. RQ1: What is the relation between class lifetime and fault-proneness? We group classes according to their profiles through the program lifespan, by considering the renaming, refactoring, and structural changes of classes, to determine how class lifetime are related to fault-proneness. RQ2 :What is the relation between class co-evolution and fault-proneness? We check if the proportion of faults fixed by maintaining co-evolved classes are significantly more than faults fixed using not co-evolved classes. 10
  • 11. We use Fisher’s exact test and the Chi-Square test to check two hypothesis. We also compute the odds ratio [20] that indicates the likelihood for an event to occur. HRQ10: There is no statistically significant difference between proportions of faults carried by Persistent, Shortlived, and Transient classes in ArgoUML, JFreeChart, and XercesJ. HRQ20: There is no statistically significant difference between proportions of faults involving co-evolved classes or not co-evolved classes in the three programs. 11
  • 12. 12
  • 13. 13
  • 14. 14
  • 15. We found that Persistent classes are significantly less fault-prone than Shortlived and Transient classes. Faults fixed by maintaining co-evolved classes are significantly more than faults fixed using not co-evolved classes. Special attention must be given to these entities to keep the design intact during program evolution because they could have a negative impact on the fault-proneness of the program. 15
  • 16. Relating class lifetime and change-proneness. Using these results to improve faults detection tools. Prevent change in co-evolved classes. Identifying the lifetime followed by classes belonged to design motifs such as design patterns and anti-patterns. 16
  • 17. We provide empirical evidence of the relationships between class evolution and fault proneness. We showed that Persistent classes are significantly less fault-prone than other classes and that faults fixed by maintaining co-evolved classes are significantly more than faults fixed using not co-evolved classes. We provide a basis for future research to understand the causes and the eventual consequences of these findings. 17