SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Mining the Relationship between
Anti-patterns
Dependencies and FaultProneness
Fehmi Jaafar,

Yann-Gaël Guéhéneuc,

Sylvie Hamel

Foutse Khomh
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.

2
Examples of Anti-patterns
Blob

Large controller class, low cohesion,
associated with simple, data-object
classes…

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.

3
Motivation
Many studies have investigated the
impact of anti-patterns on
•Maintenance [Yamashita, 2013]
•Fault-proneness [Khomh, 2012]
•Change-proneness [Romano, 2012]
-----

4
Motivation
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.

5
Approach
source code
repository

Antipatterns
detection
DECOR

Bugzilla

Relationships
retrieval
Macocha

Analyses

6

Bug information
Ibdoos
Data Collection
Subject systems

# Classes

3,325

1,615

1,191

# Snapshots

4,480

2,010

159,196

Anti-patterns detected with DECOR…
• MessageChain

• Antisingleton

• RefusedParameterBequest

• Blob

• SpaghettiCode

• ClassDataShouldBePrivate (CDSBP)

• SpeculativeGenerality

• ComplexClass

• SwissArmyKnife

• LazyClass

• LongParameterList

• LongMethod

7
Co-change and Static relationships
with Antipatterns
Anti-patterns

Systems

# of CC

# of S.R

13

152

20

201

18

Anti-patterns

Systems

# of CC # of S.R

183

304

47

326

36

164

6

183

93

25

93

167

0

0

0

82

0

0

113

0

0

192

13

128

0

146

4

139

0

96

8

201

42

282

20

69

51

314

9

142

0

266

18

108

12
LongParameterList

16

2

LongMethod

188

0
ComplexClass

196

4
CDSBP

8

24

Blob

244

51

Anti singleton

48

344

0

276

0

309

MessageChains

RefusedParentBequest

Spaghetti Code

SpeculativeGenerality

SwissArmyKnife
Research Questions

9
Analysis Methods

HRQ: The proportions of faults carried by classes
having static (resp. Co-change) relationships with
10
anti-patterns and other classes are the same.
RQ1: Are classes that have static
relationships with anti-patterns
more fault-prone than other
classes?
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

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

P-value = 2.2 e-16
RQ2: Are classes that co-change
with anti-patterns more fault-prone
than other classes?
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

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
Classes co-changing with AP and that are not AP
Other classes

P-value = 2.2 e-16

37

21

20

12

534

599
Some Observations
 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.

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.

13
14

Weitere ähnliche Inhalte

Andere mochten auch

Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptPtidej Team
 
Icsm07 tooldemo.pdf
Icsm07 tooldemo.pdfIcsm07 tooldemo.pdf
Icsm07 tooldemo.pdfPtidej Team
 
Software Design Patterns in Theory
Software Design Patterns in TheorySoftware Design Patterns in Theory
Software Design Patterns in TheoryPtidej Team
 
Quality and Software Design Patterns
Quality and Software Design PatternsQuality and Software Design Patterns
Quality and Software Design PatternsPtidej Team
 
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesAsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesPtidej Team
 
Software Design Patterns in Practice
Software Design Patterns in PracticeSoftware Design Patterns in Practice
Software Design Patterns in PracticePtidej Team
 

Andere mochten auch (17)

Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
Wcre13a.ppt
Wcre13a.pptWcre13a.ppt
Wcre13a.ppt
 
Ssbse12b.ppt
Ssbse12b.pptSsbse12b.ppt
Ssbse12b.ppt
 
Ppap13b.ppt
Ppap13b.pptPpap13b.ppt
Ppap13b.ppt
 
Rsse12.ppt
Rsse12.pptRsse12.ppt
Rsse12.ppt
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.ppt
 
See12.ppt
See12.pptSee12.ppt
See12.ppt
 
Mribp13.ppt
Mribp13.pptMribp13.ppt
Mribp13.ppt
 
Ppap13a.ppt
Ppap13a.pptPpap13a.ppt
Ppap13a.ppt
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
 
Icsm07 tooldemo.pdf
Icsm07 tooldemo.pdfIcsm07 tooldemo.pdf
Icsm07 tooldemo.pdf
 
Wcre12b.ppt
Wcre12b.pptWcre12b.ppt
Wcre12b.ppt
 
Software Design Patterns in Theory
Software Design Patterns in TheorySoftware Design Patterns in Theory
Software Design Patterns in Theory
 
Quality and Software Design Patterns
Quality and Software Design PatternsQuality and Software Design Patterns
Quality and Software Design Patterns
 
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesAsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
 
Software Design Patterns in Practice
Software Design Patterns in PracticeSoftware Design Patterns in Practice
Software Design Patterns in Practice
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 

Ähnlich wie Wcre13c.pdf

M098 Syllabus Fall 2011
M098 Syllabus Fall 2011M098 Syllabus Fall 2011
M098 Syllabus Fall 2011chairsty
 
Stochastic methods course syllabus.pdf
Stochastic methods course syllabus.pdfStochastic methods course syllabus.pdf
Stochastic methods course syllabus.pdfAnamikaParagPatel
 
Students’ satisfaction with service quality
Students’ satisfaction with service quality Students’ satisfaction with service quality
Students’ satisfaction with service quality Alexander Decker
 
Using an Online Interactive Textbook to Improve Student Outcomes
Using an Online Interactive Textbook to Improve Student OutcomesUsing an Online Interactive Textbook to Improve Student Outcomes
Using an Online Interactive Textbook to Improve Student OutcomesQuin Parker
 
Pe 3032, control systems engineering syllabus original as of 2 21- 2017
Pe 3032, control systems engineering syllabus original as of 2 21- 2017Pe 3032, control systems engineering syllabus original as of 2 21- 2017
Pe 3032, control systems engineering syllabus original as of 2 21- 2017CharltonInao1
 
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
 
Math 205 syllabus Fall 2012
Math 205 syllabus Fall 2012Math 205 syllabus Fall 2012
Math 205 syllabus Fall 2012Jeneva Clark
 
Computational methods couurseout line
Computational methods couurseout lineComputational methods couurseout line
Computational methods couurseout lineTemesgen Geta
 
Solutions Manual for Discrete Event System Simulation 5th Edition by Banks
Solutions Manual for Discrete Event System Simulation 5th Edition by BanksSolutions Manual for Discrete Event System Simulation 5th Edition by Banks
Solutions Manual for Discrete Event System Simulation 5th Edition by BanksLanaMcdaniel
 
22 January 2018 HEFCE open event “Using data to increase learning gains and t...
22 January 2018 HEFCE open event “Using data to increase learning gains and t...22 January 2018 HEFCE open event “Using data to increase learning gains and t...
22 January 2018 HEFCE open event “Using data to increase learning gains and t...Bart Rienties
 
Measuring the impact of instant high quality feedback.
Measuring the impact of instant high quality feedback.Measuring the impact of instant high quality feedback.
Measuring the impact of instant high quality feedback.Stephen Nutbrown
 
Effects of e instruction in Teaching Intro to IT
Effects of e instruction in Teaching Intro to ITEffects of e instruction in Teaching Intro to IT
Effects of e instruction in Teaching Intro to ITAmelita Martinez
 
Elementary Differential Equations and Boundary Value Problems
Elementary Differential Equations and Boundary Value ProblemsElementary Differential Equations and Boundary Value Problems
Elementary Differential Equations and Boundary Value Problemsjpegd
 
An Adaptive Evaluation System to Test Student Caliber using Item Response Theory
An Adaptive Evaluation System to Test Student Caliber using Item Response TheoryAn Adaptive Evaluation System to Test Student Caliber using Item Response Theory
An Adaptive Evaluation System to Test Student Caliber using Item Response TheoryEditor IJMTER
 

Ähnlich wie Wcre13c.pdf (20)

Wcre13c.ppt
Wcre13c.pptWcre13c.ppt
Wcre13c.ppt
 
M098 Syllabus Fall 2011
M098 Syllabus Fall 2011M098 Syllabus Fall 2011
M098 Syllabus Fall 2011
 
Stochastic methods course syllabus.pdf
Stochastic methods course syllabus.pdfStochastic methods course syllabus.pdf
Stochastic methods course syllabus.pdf
 
Students’ satisfaction with service quality
Students’ satisfaction with service quality Students’ satisfaction with service quality
Students’ satisfaction with service quality
 
Using an Online Interactive Textbook to Improve Student Outcomes
Using an Online Interactive Textbook to Improve Student OutcomesUsing an Online Interactive Textbook to Improve Student Outcomes
Using an Online Interactive Textbook to Improve Student Outcomes
 
Pe 3032, control systems engineering syllabus original as of 2 21- 2017
Pe 3032, control systems engineering syllabus original as of 2 21- 2017Pe 3032, control systems engineering syllabus original as of 2 21- 2017
Pe 3032, control systems engineering syllabus original as of 2 21- 2017
 
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
 
difequa.pdf
difequa.pdfdifequa.pdf
difequa.pdf
 
Math 205 syllabus Fall 2012
Math 205 syllabus Fall 2012Math 205 syllabus Fall 2012
Math 205 syllabus Fall 2012
 
Mathematical Thinking.pdf
Mathematical Thinking.pdfMathematical Thinking.pdf
Mathematical Thinking.pdf
 
Computational methods couurseout line
Computational methods couurseout lineComputational methods couurseout line
Computational methods couurseout line
 
Solutions Manual for Discrete Event System Simulation 5th Edition by Banks
Solutions Manual for Discrete Event System Simulation 5th Edition by BanksSolutions Manual for Discrete Event System Simulation 5th Edition by Banks
Solutions Manual for Discrete Event System Simulation 5th Edition by Banks
 
22 January 2018 HEFCE open event “Using data to increase learning gains and t...
22 January 2018 HEFCE open event “Using data to increase learning gains and t...22 January 2018 HEFCE open event “Using data to increase learning gains and t...
22 January 2018 HEFCE open event “Using data to increase learning gains and t...
 
2010 03 - rmic 824 master syllabus
2010 03 - rmic 824 master syllabus2010 03 - rmic 824 master syllabus
2010 03 - rmic 824 master syllabus
 
Measuring the impact of instant high quality feedback.
Measuring the impact of instant high quality feedback.Measuring the impact of instant high quality feedback.
Measuring the impact of instant high quality feedback.
 
Effects of e instruction in Teaching Intro to IT
Effects of e instruction in Teaching Intro to ITEffects of e instruction in Teaching Intro to IT
Effects of e instruction in Teaching Intro to IT
 
Elementary Differential Equations and Boundary Value Problems
Elementary Differential Equations and Boundary Value ProblemsElementary Differential Equations and Boundary Value Problems
Elementary Differential Equations and Boundary Value Problems
 
An Adaptive Evaluation System to Test Student Caliber using Item Response Theory
An Adaptive Evaluation System to Test Student Caliber using Item Response TheoryAn Adaptive Evaluation System to Test Student Caliber using Item Response Theory
An Adaptive Evaluation System to Test Student Caliber using Item Response Theory
 
oo testing.pptx
oo testing.pptxoo testing.pptx
oo testing.pptx
 
Presentation1.pptx
Presentation1.pptxPresentation1.pptx
Presentation1.pptx
 

Mehr von Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

Mehr von Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Kürzlich hochgeladen

Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Kürzlich hochgeladen (20)

Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Wcre13c.pdf

  • 1. Mining the Relationship between Anti-patterns Dependencies and FaultProneness Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel Foutse Khomh
  • 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. 2
  • 3. Examples of Anti-patterns Blob Large controller class, low cohesion, associated with simple, data-object classes… 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. 3
  • 4. Motivation Many studies have investigated the impact of anti-patterns on •Maintenance [Yamashita, 2013] •Fault-proneness [Khomh, 2012] •Change-proneness [Romano, 2012] ----- 4
  • 5. Motivation 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. 5
  • 7. Data Collection Subject systems # Classes 3,325 1,615 1,191 # Snapshots 4,480 2,010 159,196 Anti-patterns detected with DECOR… • MessageChain • Antisingleton • RefusedParameterBequest • Blob • SpaghettiCode • ClassDataShouldBePrivate (CDSBP) • SpeculativeGenerality • ComplexClass • SwissArmyKnife • LazyClass • LongParameterList • LongMethod 7
  • 8. Co-change and Static relationships with Antipatterns Anti-patterns Systems # of CC # of S.R 13 152 20 201 18 Anti-patterns Systems # of CC # of S.R 183 304 47 326 36 164 6 183 93 25 93 167 0 0 0 82 0 0 113 0 0 192 13 128 0 146 4 139 0 96 8 201 42 282 20 69 51 314 9 142 0 266 18 108 12 LongParameterList 16 2 LongMethod 188 0 ComplexClass 196 4 CDSBP 8 24 Blob 244 51 Anti singleton 48 344 0 276 0 309 MessageChains RefusedParentBequest Spaghetti Code SpeculativeGenerality SwissArmyKnife
  • 10. Analysis Methods HRQ: The proportions of faults carried by classes having static (resp. Co-change) relationships with 10 anti-patterns and other classes are the same.
  • 11. RQ1: Are classes that have static relationships with anti-patterns more fault-prone than other classes? 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 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 P-value = 2.2 e-16
  • 12. RQ2: Are classes that co-change with anti-patterns more fault-prone than other classes? 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 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 Classes co-changing with AP and that are not AP Other classes P-value = 2.2 e-16 37 21 20 12 534 599
  • 13. Some Observations  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. 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. 13
  • 14. 14