SlideShare a Scribd company logo
1 of 17
Download to read offline
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

Similar to Csmr13c.ppt

Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...CSCJournals
 
A Simplified Model for Evaluating Software Reliability at the Developmental S...
A Simplified Model for Evaluating Software Reliability at the Developmental S...A Simplified Model for Evaluating Software Reliability at the Developmental S...
A Simplified Model for Evaluating Software Reliability at the Developmental S...Waqas Tariq
 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLSSBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLScsandit
 
Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...Daphne Smith
 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS cscpconf
 
Coevolution of Second-order-mutant
Coevolution of Second-order-mutant Coevolution of Second-order-mutant
Coevolution of Second-order-mutant IJECEIAES
 
DEFECT PREDICTION USING ORDER STATISTICS
DEFECT PREDICTION USING ORDER STATISTICSDEFECT PREDICTION USING ORDER STATISTICS
DEFECT PREDICTION USING ORDER STATISTICSIAEME Publication
 
An Essay Concerning Human Understanding Of Genetic Programming
An Essay Concerning Human Understanding Of Genetic ProgrammingAn Essay Concerning Human Understanding Of Genetic Programming
An Essay Concerning Human Understanding Of Genetic ProgrammingJennifer Roman
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingJaguaraci Silva
 
Milestone One Company Identification You have been hired as a.docx
Milestone One Company Identification You have been hired as a.docxMilestone One Company Identification You have been hired as a.docx
Milestone One Company Identification You have been hired as a.docxARIV4
 
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALEDETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALEijseajournal
 
Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories ijseajournal
 
Supporting the analysis of bug prevalence in software product lines with prod...
Supporting the analysis of bug prevalence in software product lines with prod...Supporting the analysis of bug prevalence in software product lines with prod...
Supporting the analysis of bug prevalence in software product lines with prod...Thiago Burgos
 

Similar to Csmr13c.ppt (20)

Ppap13a.ppt
Ppap13a.pptPpap13a.ppt
Ppap13a.ppt
 
Wcre11a.ppt
Wcre11a.pptWcre11a.ppt
Wcre11a.ppt
 
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
 
A Simplified Model for Evaluating Software Reliability at the Developmental S...
A Simplified Model for Evaluating Software Reliability at the Developmental S...A Simplified Model for Evaluating Software Reliability at the Developmental S...
A Simplified Model for Evaluating Software Reliability at the Developmental S...
 
الواجججج
الواججججالواجججج
الواجججج
 
Csmr12.ppt
Csmr12.pptCsmr12.ppt
Csmr12.ppt
 
Csmr11a.ppt
Csmr11a.pptCsmr11a.ppt
Csmr11a.ppt
 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLSSBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
 
Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...
 
M018147883
M018147883M018147883
M018147883
 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
 
Coevolution of Second-order-mutant
Coevolution of Second-order-mutant Coevolution of Second-order-mutant
Coevolution of Second-order-mutant
 
DEFECT PREDICTION USING ORDER STATISTICS
DEFECT PREDICTION USING ORDER STATISTICSDEFECT PREDICTION USING ORDER STATISTICS
DEFECT PREDICTION USING ORDER STATISTICS
 
SAIConference_PAPER
SAIConference_PAPERSAIConference_PAPER
SAIConference_PAPER
 
An Essay Concerning Human Understanding Of Genetic Programming
An Essay Concerning Human Understanding Of Genetic ProgrammingAn Essay Concerning Human Understanding Of Genetic Programming
An Essay Concerning Human Understanding Of Genetic Programming
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software Testing
 
Milestone One Company Identification You have been hired as a.docx
Milestone One Company Identification You have been hired as a.docxMilestone One Company Identification You have been hired as a.docx
Milestone One Company Identification You have been hired as a.docx
 
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALEDETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
 
Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories
 
Supporting the analysis of bug prevalence in software product lines with prod...
Supporting the analysis of bug prevalence in software product lines with prod...Supporting the analysis of bug prevalence in software product lines with prod...
Supporting the analysis of bug prevalence in software product lines with prod...
 

More from Yann-Gaël Guéhéneuc

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesYann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6Yann-Gaël Guéhéneuc
 

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

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
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 Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

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.