SlideShare a Scribd company logo
1 of 14
Download to read offline
Mining the Relationship betweenMining the Relationship between
AntiAnti--patternspatterns
Dependencies and FaultDependencies and Fault--
PronenessProneness
FehmiFehmi JaafarJaafar,,
Sylvie HamelSylvie Hamel
YannYann--GaGaëëll GuGuééhhééneuc,neuc,
FoutseFoutse KhomhKhomh
2
Anti-patterns describe poor solutions to
design and implementation problems…
…they are not technically incorrect and don't
currently prevent the program from
functioning.
Instead, they indicate weaknesses in design
that may be slowing down development or
increasing the risk of bugs or failures in the
future.
3
Examples of AntiExamples of Anti--patternspatterns
Large controller class, low cohesion,
associated with simple, data-object
classes…
Blob Spaghetti Code
Process oriented methods, object methods with
no parameters, class or global variables utilization,
flow of execution dictated by object
implementation, not by the clients of the objects.
4
MotivationMotivation
Many studies have investigated the
impact of anti-patterns on
•Maintenance [Yamashita, 2013]
•Fault-proneness [Khomh, 2012]
•Change-proneness [Romano, 2012]
-----
5
MotivationMotivation
Yet, classes sharing static
relationships with anti-patterns
have been mostly ignored…
We conjecture that, static and co-change relationships with
anti-patterns can impact the fault-proneness of classes
without anti-patterns.
6
source code
repository
source code
repository
Antipatterns
detection
DECOR
Antipatterns
detection
DECOR
Relationships
retrieval
Macocha
Relationships
retrieval
Macocha
AnalysesAnalyses
ApproachApproach
BugzillaBugzilla
Bug information
Ibdoos
Bug information
Ibdoos
7
Subject systems
# Classes 3,325 1,615 1,191
# Snapshots 4,480 2,010 159,196
Data CollectionData Collection
• Antisingleton
• Blob
• ClassDataShouldBePrivate (CDSBP)
• ComplexClass
• LazyClass
• LongMethod
• MessageChain
• RefusedParameterBequest
• SpaghettiCode
• SpeculativeGenerality
• SwissArmyKnife
• LongParameterList
Anti-patterns detected with DECOR…
CoCo--change and Static relationshipschange and Static relationships
withwith AntipatternsAntipatternsAnti-patterns Systems # of CC # of S.R
13 152
Anti singleton 20 201
18 188
51 304
Blob 36 164
24 93
4 167
CDSBP 0 82
0 113
2 192
ComplexClass 0 146
0 96
42 282
LongMethod 51 314
0 266
12 344
LongParameterList 0 276
0 309
Anti-patterns Systems # of CC # of S.R
48 244
MessageChains 8 196
16 183
47 326
RefusedParentBequest 6 183
25 93
0 0
Spaghetti Code 0 0
0 0
13 128
SpeculativeGenerality 4 139
8 201
20 69
SwissArmyKnife 9 142
18 108
9
Research QuestionsResearch Questions
10
Analysis MethodsAnalysis Methods
HRQ: The proportions of faults carried by classes
having static (resp. Co-change) relationships with
anti-patterns and other classes are the same.
RQ1: Are classes that have staticRQ1: Are classes that have static
relationships with antirelationships with anti--patternspatterns
more faultmore fault--prone than otherprone than other
classes?classes?
Classes with S.R with AP 1062 1003
Classes with S.R with AP and that are not AP 402 600
Other classes 681 579
Classes with S.R with AP 432 226
Classes with S.R with AP and that are not AP. 281 103
Other classes 310 647
Classes with S.R with AP 445 121
Classes with S.R with AP and that are not AP. 262 75
Other classes 126 499
Faults No-Faults Odd Ratios
Total of classes related to AP 1939 1350 2.22
Classes with S.R with AP and that are not AP. 945 778 1.88
Total of other classes 1117 1725 1
P-value = 2.2 e-16
RQ2: Are classes that coRQ2: Are classes that co--changechange
with antiwith anti--patterns more faultpatterns more fault--proneprone
than other classes?than other classes?
Classes co-changing with AP 241 102
Classes co-changing with AP and that are not AP 120 59
Other classes 1502 1480
Classes co-changing with AP 68 26
Classes co-changing with AP and that are not AP 33 10
Other classes 674 847
Classes co-changing with AP 37 21
Classes co-changing with AP and that are not AP 20 12
Other classes 534 599
Faults No-Faults Odd Ratios
Total of classes co-changing with AP 346 149 2.5
Classes co-changing with AP and that are not AP 173 81 2.3
Total of other classes 2710 2926 1
P-value = 2.2 e-16
13
 We found no class having a static dependency (i.e. use, association,
aggregation, and composition relationships) or that co-changed with a
SpaghettiCode.
 We found that classes having static relationships with Blob,
ComplexClass, and SwissArmyKnife are significantly more fault prone
than other classes with similar complexity, change history, and code size.
 Many anti-patterns’ relationships were with classes playing roles in
design patterns.
Some ObservationsSome Observations
Classes that are co-changing with anti-patterns classes are
significantly more fault prone than other classes with similar
complexity, change history, and code size.
14

More Related Content

Similar to Wcre13c.ppt

survey of different data dependence analysis techniques
 survey of different data dependence analysis techniques survey of different data dependence analysis techniques
survey of different data dependence analysis techniquesINFOGAIN PUBLICATION
 
Stochastic methods course syllabus.pdf
Stochastic methods course syllabus.pdfStochastic methods course syllabus.pdf
Stochastic methods course syllabus.pdfAnamikaParagPatel
 
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...CSCJournals
 
Recommender system
Recommender systemRecommender system
Recommender systemBhumi Patel
 
Ontology model for c overflow vulnerabilities attack
Ontology model for c overflow vulnerabilities attackOntology model for c overflow vulnerabilities attack
Ontology model for c overflow vulnerabilities attackNurul Haszeli Ahmad
 
Comparative analysis of algorithms_MADI
Comparative analysis of algorithms_MADIComparative analysis of algorithms_MADI
Comparative analysis of algorithms_MADISayed Rahman
 
Comparative analysis of algorithms classification and methods the presentatio...
Comparative analysis of algorithms classification and methods the presentatio...Comparative analysis of algorithms classification and methods the presentatio...
Comparative analysis of algorithms classification and methods the presentatio...Sayed Rahman
 
Semantic Techniques for Enabling Knowledge Reuse in Conceptual Modelling
Semantic Techniques for Enabling Knowledge Reuse in Conceptual ModellingSemantic Techniques for Enabling Knowledge Reuse in Conceptual Modelling
Semantic Techniques for Enabling Knowledge Reuse in Conceptual ModellingOscar Corcho
 
Rules validation - Copy
Rules validation - CopyRules validation - Copy
Rules validation - CopyHicham Berrada
 
ICIC 2014 New Product Introduction Wiley
ICIC 2014 New Product Introduction WileyICIC 2014 New Product Introduction Wiley
ICIC 2014 New Product Introduction WileyDr. Haxel Consult
 
The effect of number of concepts on readability of schemas 2
The effect of number of concepts on readability of schemas 2The effect of number of concepts on readability of schemas 2
The effect of number of concepts on readability of schemas 2Saman Sara
 
Wcre2009 bettenburg
Wcre2009 bettenburgWcre2009 bettenburg
Wcre2009 bettenburgSAIL_QU
 
Thesis+of+fehmi+jaafar.ppt
Thesis+of+fehmi+jaafar.pptThesis+of+fehmi+jaafar.ppt
Thesis+of+fehmi+jaafar.pptPtidej Team
 
Sentence compression via clustering of dependency graph nodes - NLP-KE 2012
Sentence compression via clustering of dependency graph nodes - NLP-KE 2012Sentence compression via clustering of dependency graph nodes - NLP-KE 2012
Sentence compression via clustering of dependency graph nodes - NLP-KE 2012Ayman El-Kilany
 

Similar to Wcre13c.ppt (20)

scp
scpscp
scp
 
survey of different data dependence analysis techniques
 survey of different data dependence analysis techniques survey of different data dependence analysis techniques
survey of different data dependence analysis techniques
 
Stochastic methods course syllabus.pdf
Stochastic methods course syllabus.pdfStochastic methods course syllabus.pdf
Stochastic methods course syllabus.pdf
 
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
 
2010 03 - rmic 824 master syllabus
2010 03 - rmic 824 master syllabus2010 03 - rmic 824 master syllabus
2010 03 - rmic 824 master syllabus
 
Csmr13c.ppt
Csmr13c.pptCsmr13c.ppt
Csmr13c.ppt
 
Recommender system
Recommender systemRecommender system
Recommender system
 
Suga java training_with_footer
Suga java training_with_footerSuga java training_with_footer
Suga java training_with_footer
 
Ontology model for c overflow vulnerabilities attack
Ontology model for c overflow vulnerabilities attackOntology model for c overflow vulnerabilities attack
Ontology model for c overflow vulnerabilities attack
 
oo testing.pptx
oo testing.pptxoo testing.pptx
oo testing.pptx
 
Comparative analysis of algorithms_MADI
Comparative analysis of algorithms_MADIComparative analysis of algorithms_MADI
Comparative analysis of algorithms_MADI
 
Comparative analysis of algorithms classification and methods the presentatio...
Comparative analysis of algorithms classification and methods the presentatio...Comparative analysis of algorithms classification and methods the presentatio...
Comparative analysis of algorithms classification and methods the presentatio...
 
Semantic Techniques for Enabling Knowledge Reuse in Conceptual Modelling
Semantic Techniques for Enabling Knowledge Reuse in Conceptual ModellingSemantic Techniques for Enabling Knowledge Reuse in Conceptual Modelling
Semantic Techniques for Enabling Knowledge Reuse in Conceptual Modelling
 
Engineering Statistics
Engineering StatisticsEngineering Statistics
Engineering Statistics
 
Rules validation - Copy
Rules validation - CopyRules validation - Copy
Rules validation - Copy
 
ICIC 2014 New Product Introduction Wiley
ICIC 2014 New Product Introduction WileyICIC 2014 New Product Introduction Wiley
ICIC 2014 New Product Introduction Wiley
 
The effect of number of concepts on readability of schemas 2
The effect of number of concepts on readability of schemas 2The effect of number of concepts on readability of schemas 2
The effect of number of concepts on readability of schemas 2
 
Wcre2009 bettenburg
Wcre2009 bettenburgWcre2009 bettenburg
Wcre2009 bettenburg
 
Thesis+of+fehmi+jaafar.ppt
Thesis+of+fehmi+jaafar.pptThesis+of+fehmi+jaafar.ppt
Thesis+of+fehmi+jaafar.ppt
 
Sentence compression via clustering of dependency graph nodes - NLP-KE 2012
Sentence compression via clustering of dependency graph nodes - NLP-KE 2012Sentence compression via clustering of dependency graph nodes - NLP-KE 2012
Sentence compression via clustering of dependency graph nodes - NLP-KE 2012
 

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
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
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
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
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
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
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
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
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
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
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.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

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
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
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
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
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🔝
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
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...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
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
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
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...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
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...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

Wcre13c.ppt

  • 1. Mining the Relationship betweenMining the Relationship between AntiAnti--patternspatterns Dependencies and FaultDependencies and Fault-- PronenessProneness FehmiFehmi JaafarJaafar,, Sylvie HamelSylvie Hamel YannYann--GaGaëëll GuGuééhhééneuc,neuc, FoutseFoutse KhomhKhomh
  • 2. 2 Anti-patterns describe poor solutions to design and implementation problems… …they are not technically incorrect and don't currently prevent the program from functioning. Instead, they indicate weaknesses in design that may be slowing down development or increasing the risk of bugs or failures in the future.
  • 3. 3 Examples of AntiExamples of Anti--patternspatterns Large controller class, low cohesion, associated with simple, data-object classes… Blob Spaghetti Code Process oriented methods, object methods with no parameters, class or global variables utilization, flow of execution dictated by object implementation, not by the clients of the objects.
  • 4. 4 MotivationMotivation Many studies have investigated the impact of anti-patterns on •Maintenance [Yamashita, 2013] •Fault-proneness [Khomh, 2012] •Change-proneness [Romano, 2012] -----
  • 5. 5 MotivationMotivation Yet, classes sharing static relationships with anti-patterns have been mostly ignored… We conjecture that, static and co-change relationships with anti-patterns can impact the fault-proneness of classes without anti-patterns.
  • 7. 7 Subject systems # Classes 3,325 1,615 1,191 # Snapshots 4,480 2,010 159,196 Data CollectionData Collection • Antisingleton • Blob • ClassDataShouldBePrivate (CDSBP) • ComplexClass • LazyClass • LongMethod • MessageChain • RefusedParameterBequest • SpaghettiCode • SpeculativeGenerality • SwissArmyKnife • LongParameterList Anti-patterns detected with DECOR…
  • 8. CoCo--change and Static relationshipschange and Static relationships withwith AntipatternsAntipatternsAnti-patterns Systems # of CC # of S.R 13 152 Anti singleton 20 201 18 188 51 304 Blob 36 164 24 93 4 167 CDSBP 0 82 0 113 2 192 ComplexClass 0 146 0 96 42 282 LongMethod 51 314 0 266 12 344 LongParameterList 0 276 0 309 Anti-patterns Systems # of CC # of S.R 48 244 MessageChains 8 196 16 183 47 326 RefusedParentBequest 6 183 25 93 0 0 Spaghetti Code 0 0 0 0 13 128 SpeculativeGenerality 4 139 8 201 20 69 SwissArmyKnife 9 142 18 108
  • 10. 10 Analysis MethodsAnalysis Methods HRQ: The proportions of faults carried by classes having static (resp. Co-change) relationships with anti-patterns and other classes are the same.
  • 11. RQ1: Are classes that have staticRQ1: Are classes that have static relationships with antirelationships with anti--patternspatterns more faultmore fault--prone than otherprone than other classes?classes? Classes with S.R with AP 1062 1003 Classes with S.R with AP and that are not AP 402 600 Other classes 681 579 Classes with S.R with AP 432 226 Classes with S.R with AP and that are not AP. 281 103 Other classes 310 647 Classes with S.R with AP 445 121 Classes with S.R with AP and that are not AP. 262 75 Other classes 126 499 Faults No-Faults Odd Ratios Total of classes related to AP 1939 1350 2.22 Classes with S.R with AP and that are not AP. 945 778 1.88 Total of other classes 1117 1725 1 P-value = 2.2 e-16
  • 12. RQ2: Are classes that coRQ2: Are classes that co--changechange with antiwith anti--patterns more faultpatterns more fault--proneprone than other classes?than other classes? Classes co-changing with AP 241 102 Classes co-changing with AP and that are not AP 120 59 Other classes 1502 1480 Classes co-changing with AP 68 26 Classes co-changing with AP and that are not AP 33 10 Other classes 674 847 Classes co-changing with AP 37 21 Classes co-changing with AP and that are not AP 20 12 Other classes 534 599 Faults No-Faults Odd Ratios Total of classes co-changing with AP 346 149 2.5 Classes co-changing with AP and that are not AP 173 81 2.3 Total of other classes 2710 2926 1 P-value = 2.2 e-16
  • 13. 13  We found no class having a static dependency (i.e. use, association, aggregation, and composition relationships) or that co-changed with a SpaghettiCode.  We found that classes having static relationships with Blob, ComplexClass, and SwissArmyKnife are significantly more fault prone than other classes with similar complexity, change history, and code size.  Many anti-patterns’ relationships were with classes playing roles in design patterns. Some ObservationsSome Observations Classes that are co-changing with anti-patterns classes are significantly more fault prone than other classes with similar complexity, change history, and code size.
  • 14. 14