SlideShare a Scribd company logo
1 of 16
Download to read offline
Jaafar, YannGuéhéneuc,
Fehmi Jaafar, Yann-Gaël Guéhéneuc, and Sylvie Hamel
DIRO, Université de Montréal, QC, Canada

1
1. Introduction
2. Related Work
3. Problem Statement
4. Empirical Study
5. Research Question
6. Results
7. Ongoing Work
8. Conclusion

2
Anti-patterns are motifs that are commonly used by developers but
they are ineffective and counterproductive in program development
and–or maintenance.
Opposite to anti-patterns, design patterns are “good” solutions to
recurring design problems, conceived to increase reuse, code quality,
code readability and, above all, maintainability and resilience to
changes.
These motifs evolve and they may have dependencies.

3
Vokac[1] analyzed the corrective maintenance of a large commercial
program, compared the defect rates of classes participating in design
motifs against those that did not.
Observer and Singleton motifs are correlated with larger classes
Classes playing roles in Factory Method were more compact, less
coupled, and less defect prone than others classes.
No clear tendency exists for Template Method.
Pietrzak and Walter[2] defined and analyzed the different relationships
that exist among smells.
These relationships presented dependencies between smells and
could be exploited to improve the detection tools of anti-patterns.

[1] M. Vokac, “Defect frequency and design patterns: An empirical study
of industrial code,” IEEE Trans. Softw. Eng., vol. 30, December 2004.
[2] B. Pietrzak and B. Walter, “Leveraging code smell detection with intersmell relations,” Extreme Programming and Agile Processes in Software

Engineering, pp. 75–84, 2006.
4
Most previous work agree that anti-patterns make the maintenance of
systems more difficult and that design patterns can serve as guide in
program exploration and, thus, ease maintenance.
However, there are no investigation in the literature about the static
relationships among anti-patterns and design patterns.
Better understand systems by giving knowledge about the
dependencies between what is “good” and what is “bad” in system.
Explain the co-existence of such motifs

5
org.apache.xerces.validators.common.XMLValidator.java
r315086 | twl | 1999-11-08 20:10:52 -0500 (Mon, 08 Nov 1999)
Initial revision
org.apache.xerces.validators.dtd.DTDImporter.java
r315397 | jeffreyr | 2000-04-04 15:38:39 -0400 (Tue, 04 Apr
2000)
Factoring Validators code by Glenn Marcy

6
We use the Defect DEtection for CORrection Approach (DECOR
to specify and detect anti-patterns.

[3])

We use the Design Motif Identification Multilayered Approach
(DeMIMA [4]) to detect design patterns and static relationships

[4] Naouel Moha, Y.-G. Guéhéneuc, L. Duchien, and A.-F. Le Meur,
“DECOR: A method for the specification and detection of code and
design smells,” Transactions on Software Engineering (TSE), vol. 36, no.
1, 2010.
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.
7
System

AntiAnti-pattern

Design pattern

Static
relationship

ArgoUML

ComplexClass

Command

Use

JFreeChart

LongMethod

Composite

Association

XercesJ

LongParameterList

Decorator

Agregation

MessageChains

FactoryMethod

Composition

RefusedParentBequest Prototype
SpaghettiCode

Observer

SpeculativeGenerality
SwissArmyKnife

8
Are there static relationships between antiantipatterns and design patterns?
We assume that a design pattern P has a static relationships with the
anti-pattern A if at least one class belonging to P has a use, association,
aggregation, or composition relationship with one class belonging to A.

9
10
11
12
Different anti-patterns can have different proportions of static
relationships with design patterns.
The design pattern that often has the most relationships with anti
patterns is the Command design pattern.
For example, we noted that 50% of static relationships among
SpeculativeGenerality and design patterns in ArgoUML, are with the
Command motifs.
In XercesJ, we observe that 41% of relationships among
ClassDataShouldBePrivate was with the Command design pattern.

13
SpaghettiCodes have no static relationships (use, association,
aggregation, and composition) with design patterns.
SpaghettiCode are revealed by classes with no structure, declaring long
methods with no parameters, and using global variables for processing.
A SpaghettiCode does not take the advantage of object-orientation
mechanisms: polymorphism and inheritance.
SpaghettiCodes are difficult to reuse and to maintain.

14
The evolution of relationships among motifs.
Prevent the co-exsitence of anti-patterns and design patterns.
Studying the effect of the anti-patterns dependencies on change-proneness.
The relation between classes having static dependencies with anti-patterns
and fault-proneness.
The relation between classes co-changed with anti-patterns and faultproneness.

15
We provide empirical evidence of the relationships between anti-patterns
and design patterns.
Some anti-patterns are significantly more likely to have relationships with
design patterns than other.
We provide a basis for future research to understand the causes and the
eventual consequences of these relationships.

16

More Related Content

Viewers also liked

Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptPtidej 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
 

Viewers also liked (16)

Mribp13.ppt
Mribp13.pptMribp13.ppt
Mribp13.ppt
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
 
Wcre12b.ppt
Wcre12b.pptWcre12b.ppt
Wcre12b.ppt
 
Ssbse12b.ppt
Ssbse12b.pptSsbse12b.ppt
Ssbse12b.ppt
 
Ppap13b.ppt
Ppap13b.pptPpap13b.ppt
Ppap13b.ppt
 
See12.ppt
See12.pptSee12.ppt
See12.ppt
 
Ssbse12a.ppt
Ssbse12a.pptSsbse12a.ppt
Ssbse12a.ppt
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.ppt
 
Wcre13c.pdf
Wcre13c.pdfWcre13c.pdf
Wcre13c.pdf
 
Rsse12.ppt
Rsse12.pptRsse12.ppt
Rsse12.ppt
 
Wcre12c.ppt
Wcre12c.pptWcre12c.ppt
Wcre12c.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
 

Similar to Ppap13a.ppt

Design pattern 1
Design pattern 1Design pattern 1
Design pattern 1Naga Muruga
 
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
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxDrYogeshDeshmukh1
 
PATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design PatternsPATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design PatternsMichael Heron
 
Basic design pattern interview questions
Basic design pattern interview questionsBasic design pattern interview questions
Basic design pattern interview questionsjinaldesailive
 
Patterns of Interaction Description Including Aspects of Constraints
Patterns of Interaction Description Including Aspects of ConstraintsPatterns of Interaction Description Including Aspects of Constraints
Patterns of Interaction Description Including Aspects of ConstraintsJuan Manuel Gonzalez Calleros
 
Thesis+of+fehmi+jaafar.ppt
Thesis+of+fehmi+jaafar.pptThesis+of+fehmi+jaafar.ppt
Thesis+of+fehmi+jaafar.pptPtidej Team
 
Methods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuseMethods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuseValentina Presutti
 
IRJET- An Analysis of Recent Advancements on the Dependency Parser
IRJET- An Analysis of Recent Advancements on the Dependency ParserIRJET- An Analysis of Recent Advancements on the Dependency Parser
IRJET- An Analysis of Recent Advancements on the Dependency ParserIRJET Journal
 
Top 30 Technical interview questions
Top 30 Technical interview questionsTop 30 Technical interview questions
Top 30 Technical interview questionsSohailSaifi15
 
An Empirical Study Of Requirements Model Understanding
An Empirical Study Of Requirements Model UnderstandingAn Empirical Study Of Requirements Model Understanding
An Empirical Study Of Requirements Model UnderstandingKate Campbell
 
An Empirical Study Of Requirements Model Understanding Use Case Vs. Tropos M...
An Empirical Study Of Requirements Model Understanding  Use Case Vs. Tropos M...An Empirical Study Of Requirements Model Understanding  Use Case Vs. Tropos M...
An Empirical Study Of Requirements Model Understanding Use Case Vs. Tropos M...Raquel Pellicier
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentRoopesh Jhurani
 

Similar to Ppap13a.ppt (20)

Ppap13a.ppt
Ppap13a.pptPpap13a.ppt
Ppap13a.ppt
 
Csmr13c.ppt
Csmr13c.pptCsmr13c.ppt
Csmr13c.ppt
 
Design pattern 1
Design pattern 1Design pattern 1
Design pattern 1
 
Wcre13c.ppt
Wcre13c.pptWcre13c.ppt
Wcre13c.ppt
 
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...
 
scp
scpscp
scp
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptx
 
PATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design PatternsPATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design Patterns
 
Basic design pattern interview questions
Basic design pattern interview questionsBasic design pattern interview questions
Basic design pattern interview questions
 
Patterns of Interaction Description Including Aspects of Constraints
Patterns of Interaction Description Including Aspects of ConstraintsPatterns of Interaction Description Including Aspects of Constraints
Patterns of Interaction Description Including Aspects of Constraints
 
Thesis+of+fehmi+jaafar.ppt
Thesis+of+fehmi+jaafar.pptThesis+of+fehmi+jaafar.ppt
Thesis+of+fehmi+jaafar.ppt
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
 
Methods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuseMethods for Ontology Design Patterns reuse
Methods for Ontology Design Patterns reuse
 
IRJET- An Analysis of Recent Advancements on the Dependency Parser
IRJET- An Analysis of Recent Advancements on the Dependency ParserIRJET- An Analysis of Recent Advancements on the Dependency Parser
IRJET- An Analysis of Recent Advancements on the Dependency Parser
 
Top 30 Technical interview questions
Top 30 Technical interview questionsTop 30 Technical interview questions
Top 30 Technical interview questions
 
Magic or myth
Magic or mythMagic or myth
Magic or myth
 
An Empirical Study Of Requirements Model Understanding
An Empirical Study Of Requirements Model UnderstandingAn Empirical Study Of Requirements Model Understanding
An Empirical Study Of Requirements Model Understanding
 
An Empirical Study Of Requirements Model Understanding Use Case Vs. Tropos M...
An Empirical Study Of Requirements Model Understanding  Use Case Vs. Tropos M...An Empirical Study Of Requirements Model Understanding  Use Case Vs. Tropos M...
An Empirical Study Of Requirements Model Understanding Use Case Vs. Tropos M...
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
 
Sbi simulation
Sbi simulationSbi simulation
Sbi simulation
 

More from 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
 

More from 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
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Ppap13a.ppt

  • 1. Jaafar, YannGuéhéneuc, Fehmi Jaafar, Yann-Gaël Guéhéneuc, and Sylvie Hamel DIRO, Université de Montréal, QC, Canada 1
  • 2. 1. Introduction 2. Related Work 3. Problem Statement 4. Empirical Study 5. Research Question 6. Results 7. Ongoing Work 8. Conclusion 2
  • 3. Anti-patterns are motifs that are commonly used by developers but they are ineffective and counterproductive in program development and–or maintenance. Opposite to anti-patterns, design patterns are “good” solutions to recurring design problems, conceived to increase reuse, code quality, code readability and, above all, maintainability and resilience to changes. These motifs evolve and they may have dependencies. 3
  • 4. Vokac[1] analyzed the corrective maintenance of a large commercial program, compared the defect rates of classes participating in design motifs against those that did not. Observer and Singleton motifs are correlated with larger classes Classes playing roles in Factory Method were more compact, less coupled, and less defect prone than others classes. No clear tendency exists for Template Method. Pietrzak and Walter[2] defined and analyzed the different relationships that exist among smells. These relationships presented dependencies between smells and could be exploited to improve the detection tools of anti-patterns. [1] M. Vokac, “Defect frequency and design patterns: An empirical study of industrial code,” IEEE Trans. Softw. Eng., vol. 30, December 2004. [2] B. Pietrzak and B. Walter, “Leveraging code smell detection with intersmell relations,” Extreme Programming and Agile Processes in Software Engineering, pp. 75–84, 2006. 4
  • 5. Most previous work agree that anti-patterns make the maintenance of systems more difficult and that design patterns can serve as guide in program exploration and, thus, ease maintenance. However, there are no investigation in the literature about the static relationships among anti-patterns and design patterns. Better understand systems by giving knowledge about the dependencies between what is “good” and what is “bad” in system. Explain the co-existence of such motifs 5
  • 6. org.apache.xerces.validators.common.XMLValidator.java r315086 | twl | 1999-11-08 20:10:52 -0500 (Mon, 08 Nov 1999) Initial revision org.apache.xerces.validators.dtd.DTDImporter.java r315397 | jeffreyr | 2000-04-04 15:38:39 -0400 (Tue, 04 Apr 2000) Factoring Validators code by Glenn Marcy 6
  • 7. We use the Defect DEtection for CORrection Approach (DECOR to specify and detect anti-patterns. [3]) We use the Design Motif Identification Multilayered Approach (DeMIMA [4]) to detect design patterns and static relationships [4] Naouel Moha, Y.-G. Guéhéneuc, L. Duchien, and A.-F. Le Meur, “DECOR: A method for the specification and detection of code and design smells,” Transactions on Software Engineering (TSE), vol. 36, no. 1, 2010. 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. 7
  • 9. Are there static relationships between antiantipatterns and design patterns? We assume that a design pattern P has a static relationships with the anti-pattern A if at least one class belonging to P has a use, association, aggregation, or composition relationship with one class belonging to A. 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. Different anti-patterns can have different proportions of static relationships with design patterns. The design pattern that often has the most relationships with anti patterns is the Command design pattern. For example, we noted that 50% of static relationships among SpeculativeGenerality and design patterns in ArgoUML, are with the Command motifs. In XercesJ, we observe that 41% of relationships among ClassDataShouldBePrivate was with the Command design pattern. 13
  • 14. SpaghettiCodes have no static relationships (use, association, aggregation, and composition) with design patterns. SpaghettiCode are revealed by classes with no structure, declaring long methods with no parameters, and using global variables for processing. A SpaghettiCode does not take the advantage of object-orientation mechanisms: polymorphism and inheritance. SpaghettiCodes are difficult to reuse and to maintain. 14
  • 15. The evolution of relationships among motifs. Prevent the co-exsitence of anti-patterns and design patterns. Studying the effect of the anti-patterns dependencies on change-proneness. The relation between classes having static dependencies with anti-patterns and fault-proneness. The relation between classes co-changed with anti-patterns and faultproneness. 15
  • 16. We provide empirical evidence of the relationships between anti-patterns and design patterns. Some anti-patterns are significantly more likely to have relationships with design patterns than other. We provide a basis for future research to understand the causes and the eventual consequences of these relationships. 16