FehmiFehmiFehmiFehmi JaafarJaafarJaafarJaafar, Yann, Yann, Yann, Yann----GaëlGaëlGaëlGaël GuéhéneucGuéhéneucGuéhéneucGuéhéneuc, Sylvie Hamel, and, Sylvie Hamel, and, Sylvie Hamel, and, Sylvie Hamel, and
Bram AdamsBram AdamsBram AdamsBram Adams
Université de Montréal
École Polytechnique de Montréal
Quebec Canada
1
1.1.1.1. IntroductionIntroductionIntroductionIntroduction
2.2.2.2. RelatedRelatedRelatedRelated WorkWorkWorkWork
3.3.3.3. ProblemProblemProblemProblem StatementStatementStatementStatement
4.4.4.4. EmpiricalEmpiricalEmpiricalEmpirical StudyStudyStudyStudy4.4.4.4. EmpiricalEmpiricalEmpiricalEmpirical StudyStudyStudyStudy
5.5.5.5. ResearchResearchResearchResearch QuestionsQuestionsQuestionsQuestions
6.6.6.6. ResultsResultsResultsResults
7.7.7.7. OngoingOngoingOngoingOngoing WorkWorkWorkWork
8.8.8.8. ConclusionConclusionConclusionConclusion
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
Ostrand et al. [3] found that 20% of classes contains 80% of faults. At the same
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 fault-
proneness 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.
4
[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.
Most previous fault prediction approaches were proposed to analyse fault-
proneness 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 evolutionwith 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.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.
7
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.
Given several versions of a program, we extracted their class diagrams using
an existing tool PADL [3].
8
[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,
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.
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.
10
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.
HRQ10: There is no statistically significant difference between proportions of
faults carried by Persistent, Shortlived, and Transient classes in ArgoUML,
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.
11
HRQ20: There is no statistically significant difference between proportions of
faults involving co-evolved classes or not co-evolved classes in the three
programs.
faults carried by Persistent, Shortlived, and Transient classes in ArgoUML,
JFreeChart, and XercesJ.
12
13
14
We found that Persistent classes are significantly less fault-prone than Short-
lived 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.
16
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.
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.
17
We provide a basis for future research to understand the causes and the
eventual consequences of these findings.

More Related Content

PDF
130404 fehmi jaafar - on the relationship between program evolution and fau...
PDF
Csmr13c.ppt
PDF
Ppap13a.ppt
PPTX
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...
PDF
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
PDF
Search-based testing of procedural programs:iterative single-target or multi-...
PDF
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
PDF
Thesis+of+fehmi+jaafar.ppt
130404 fehmi jaafar - on the relationship between program evolution and fau...
Csmr13c.ppt
Ppap13a.ppt
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Search-based testing of procedural programs:iterative single-target or multi-...
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
Thesis+of+fehmi+jaafar.ppt

Similar to Csmr13c.ppt (20)

PDF
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
PDF
EVALUATION OF SOFTWARE DEGRADATION AND FORECASTING FUTURE DEVELOPMENT NEEDS I...
PPTX
PDF
Contributors to Reduce Maintainability Cost at the Software Implementation Phase
PDF
Using Fuzzy Clustering and Software Metrics to Predict Faults in large Indust...
PDF
A Review on Software Fault Detection and Prevention Mechanism in Software Dev...
PDF
F017652530
PDF
Evolutionary Computing Driven Extreme Learning Machine for Objected Oriented ...
PDF
1841 1843
PDF
1841 1843
PDF
An Empirical Study for Defect Prediction using Clustering
PDF
DEFECT PREDICTION USING ORDER STATISTICS
PDF
PDF
Software Defect Prediction Using Local and Global Analysis
PDF
J034057065
PDF
The International Journal of Engineering and Science (IJES)
PDF
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
PDF
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
PDF
Predicting Fault-Prone Files using Machine Learning
PDF
Implementation of reducing features to improve code change based bug predicti...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
EVALUATION OF SOFTWARE DEGRADATION AND FORECASTING FUTURE DEVELOPMENT NEEDS I...
Contributors to Reduce Maintainability Cost at the Software Implementation Phase
Using Fuzzy Clustering and Software Metrics to Predict Faults in large Indust...
A Review on Software Fault Detection and Prevention Mechanism in Software Dev...
F017652530
Evolutionary Computing Driven Extreme Learning Machine for Objected Oriented ...
1841 1843
1841 1843
An Empirical Study for Defect Prediction using Clustering
DEFECT PREDICTION USING ORDER STATISTICS
Software Defect Prediction Using Local and Global Analysis
J034057065
The International Journal of Engineering and Science (IJES)
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
Predicting Fault-Prone Files using Machine Learning
Implementation of reducing features to improve code change based bug predicti...
Ad

More from Yann-Gaël Guéhéneuc (20)

PDF
Rights, Copyrights, and Licences for Software Engineering Research v1.0
PDF
Evolution and Examples of Java Features, from Java 1.7 to Java 24
PDF
Projects Panama, Valhalla, and Babylon: Java is the New Python v0.9
PDF
Consequences and Principles of Software Quality v1.0
PDF
About Empirical Studies on Software Quality
PDF
A (Very) Brief History of Ethics for Software Engineering Research
PDF
Project Manifold (Forwarding and Delegation)
PDF
Reviewing Processes and Tools, Publishers, Open Access
PDF
Custom Annotations in Java with Project Lombok
PDF
Some Pitfalls with Python and Their Possible Solutions v1.0
PDF
Advice for writing a NSERC Discovery grant application v0.5
PDF
Ptidej Architecture, Design, and Implementation in Action v2.1
PDF
Evolution and Examples of Java Features, from Java 1.7 to Java 22
PDF
Consequences and Principles of Software Quality v0.3
PDF
Some Pitfalls with Python and Their Possible Solutions v0.9
PDF
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
PDF
An Explanation of the Halting Problem and Its Consequences
PDF
Are CPUs VMs Like Any Others? v1.0
PDF
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
PDF
Well-known Computer Scientists v1.0.2
Rights, Copyrights, and Licences for Software Engineering Research v1.0
Evolution and Examples of Java Features, from Java 1.7 to Java 24
Projects Panama, Valhalla, and Babylon: Java is the New Python v0.9
Consequences and Principles of Software Quality v1.0
About Empirical Studies on Software Quality
A (Very) Brief History of Ethics for Software Engineering Research
Project Manifold (Forwarding and Delegation)
Reviewing Processes and Tools, Publishers, Open Access
Custom Annotations in Java with Project Lombok
Some Pitfalls with Python and Their Possible Solutions v1.0
Advice for writing a NSERC Discovery grant application v0.5
Ptidej Architecture, Design, and Implementation in Action v2.1
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Consequences and Principles of Software Quality v0.3
Some Pitfalls with Python and Their Possible Solutions v0.9
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Halting Problem and Its Consequences
Are CPUs VMs Like Any Others? v1.0
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Well-known Computer Scientists v1.0.2
Ad

Recently uploaded (20)

PDF
iTop VPN Crack Latest Version Full Key 2025
PDF
DNT Brochure 2025 – ISV Solutions @ D365
PDF
CCleaner 6.39.11548 Crack 2025 License Key
PDF
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
PPTX
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
PDF
Topaz Photo AI Crack New Download (Latest 2025)
PPTX
Download Adobe Photoshop Crack 2025 Free
PDF
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
PDF
Introduction to Ragic - #1 No Code Tool For Digitalizing Your Business Proces...
PDF
Visual explanation of Dijkstra's Algorithm using Python
DOCX
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
PDF
MCP Security Tutorial - Beginner to Advanced
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PPTX
"Secure File Sharing Solutions on AWS".pptx
PPTX
Airline CRS | Airline CRS Systems | CRS System
PDF
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
DOCX
How to Use SharePoint as an ISO-Compliant Document Management System
PDF
Microsoft Office 365 Crack Download Free
PPTX
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
PPTX
Trending Python Topics for Data Visualization in 2025
iTop VPN Crack Latest Version Full Key 2025
DNT Brochure 2025 – ISV Solutions @ D365
CCleaner 6.39.11548 Crack 2025 License Key
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
Topaz Photo AI Crack New Download (Latest 2025)
Download Adobe Photoshop Crack 2025 Free
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
Introduction to Ragic - #1 No Code Tool For Digitalizing Your Business Proces...
Visual explanation of Dijkstra's Algorithm using Python
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
MCP Security Tutorial - Beginner to Advanced
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
"Secure File Sharing Solutions on AWS".pptx
Airline CRS | Airline CRS Systems | CRS System
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
How to Use SharePoint as an ISO-Compliant Document Management System
Microsoft Office 365 Crack Download Free
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
Trending Python Topics for Data Visualization in 2025

Csmr13c.ppt

  • 1. FehmiFehmiFehmiFehmi JaafarJaafarJaafarJaafar, Yann, Yann, Yann, Yann----GaëlGaëlGaëlGaël GuéhéneucGuéhéneucGuéhéneucGuéhéneuc, Sylvie Hamel, and, Sylvie Hamel, and, Sylvie Hamel, and, Sylvie Hamel, and Bram AdamsBram AdamsBram AdamsBram Adams Université de Montréal École Polytechnique de Montréal Quebec Canada 1
  • 2. 1.1.1.1. IntroductionIntroductionIntroductionIntroduction 2.2.2.2. RelatedRelatedRelatedRelated WorkWorkWorkWork 3.3.3.3. ProblemProblemProblemProblem StatementStatementStatementStatement 4.4.4.4. EmpiricalEmpiricalEmpiricalEmpirical StudyStudyStudyStudy4.4.4.4. EmpiricalEmpiricalEmpiricalEmpirical StudyStudyStudyStudy 5.5.5.5. ResearchResearchResearchResearch QuestionsQuestionsQuestionsQuestions 6.6.6.6. ResultsResultsResultsResults 7.7.7.7. OngoingOngoingOngoingOngoing WorkWorkWorkWork 8.8.8.8. ConclusionConclusionConclusionConclusion 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. Ostrand et al. [3] found that 20% of classes contains 80% of faults. At the same 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 fault- proneness 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. 4 [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.
  • 5. Most previous fault prediction approaches were proposed to analyse fault- proneness 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 evolutionwith 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.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. 7 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.
  • 8. Given several versions of a program, we extracted their class diagrams using an existing tool PADL [3]. 8 [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, 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.
  • 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. 10 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.
  • 11. HRQ10: There is no statistically significant difference between proportions of faults carried by Persistent, Shortlived, and Transient classes in ArgoUML, 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. 11 HRQ20: There is no statistically significant difference between proportions of faults involving co-evolved classes or not co-evolved classes in the three programs. faults carried by Persistent, Shortlived, and Transient classes in ArgoUML, JFreeChart, and XercesJ.
  • 12. 12
  • 13. 13
  • 14. 14
  • 15. We found that Persistent classes are significantly less fault-prone than Short- lived 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. 16 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.
  • 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. 17 We provide a basis for future research to understand the causes and the eventual consequences of these findings.