SlideShare a Scribd company logo
36th IEEE International Conference on Software Maintenance and Evolution
September 27-October 3, Journal First Track
Code smells and refactoring: A tertiary review of
challenges and observations
Guilherme Lacerda, Fábio Petrillo, Marcelo Pimenta, and Yann Gaël Guéhéneuc
Brazil Brazil Canada Canada
Published: JSS, 167 (2020)
Preprint: https://arxiv.org/abs/2004.10777
Introduction
and Background
Introduction and Background
▪ Refactoring and Smells
▪ Several secondary studies have been published on code smells and refactoring
▪ Tertiary Systematic Literature Review
▪ Surveys, secondary systematic literature reviews, and systematic mappings
▪ 40 secondary studies selected
▪ Challenges and Observations
Research Questions
RQ1: What refactoring-related topics have been investigated in secondary studies?
RQ2: What smells-related topics have been investigated in secondary studies?
RQ3: Which tools have been mentioned for code smell detection and refactoring support?
RQ4: Which RQs have been studied on code smells and refactoring? What are the highest
cited secondary studies?
RQ5: What are the annual trends of types, quality, and the number of primary studies
reviewed by the secondary studies?
Study Design
Study Design
Definition of
Goal and RQs
(3.1)
Identification of
Relevant Papers
and Search String
(3.2)
Selection
Criteria
(3.3)
Apply Quality
Assessment
(3.4)
Data Extraction
and Execution
(3.5, 3.6)
Lacerda, G., 2019. Online Repository for Tertiary Systematic Review about Code Smells and Refactoring (Package Replication).
https://bit.ly/2WRD1N2
Search databases
ACM (30), IEEE (65),
Scopus (58), Science
Direct (130), Springer
(89), Google Scholar
(33), AIS (40), Wiley (22)
467
1st selection of
studies
Using selection
criteria (title,
abstract, keywords)
59
Duplicated papers
and 2nd selection
of studies
Using selection criteria
(full text analysis)
33 Snowballing
40 Total of selected
studies
Study Design
Top-10
(Example)
Findings
RQ1
What refactoring-related topics have been
investigated in secondary studies?
RQ1 Summary
▪ Topics
▪ Opportunities, techniques, refactoring tools, refactoring in other contexts, and others
▪ Challenges
▪ Relationship between smells and refactoring is not a one to one
▪ Encourage researchers to improve the results most commonly used in practice
▪ Observations
▪ Extraction techniques are the most mentioned
▪ Number of techniques explored is still small (between 20 and 27 of 72)
▪ Quality metrics-oriented approach, precondition-oriented approach, and clustering-oriented
approach are most cited approaches
▪ Some refactoring, when applied, negatively affect the quality
RQ2
What smells-related topics have been
investigated in secondary studies?
RQ2 Summary
▪ Challenges
▪ Smells naming standardization is necessary
▪ Co-occurence of smells
▪ Explore and improve methods of defining, specify, and capture the smell context
▪ Observations
▪ Blob and Duplicated code/clones are most mentioned design and code smell, respectively
▪ God Class/Large Class has been the most investigated smell (Technical Debt)
▪ metrics-oriented approach and strategies/rules are most cited approaches to detection
▪ Topics
▪ Smells detection, code smell description, support tools for smell detection, and others
RQ3
Which tools have been mentioned for code
smell detection and refactoring support?
RQ3 Summary
▪ Challenges
▪ To develop tools that support more than one programming languages
▪ To expand the studies and experiments, improving the accuracy of the smell detection tools
and refactoring support
▪ Limitations and lack of maturity of tools
▪ Observations
▪ Several aspects characterize tools (license, supported languages, degree of automation, and
others)
▪ Java is the platform/programming language most used
▪ Large number of smell detection tools, detecting only a tiny amount of smells
▪ Number of refactoring tools is small
▪ CCFinder and Jdeodorant are the most cited tools
RQ4
Which RQs have been studied on code smells and
refactoring? What are the highest
cited secondary studies?
Top 5 selected studies
▪ Sorted by the number of citations by year
▪ Sorted by the number of citations of Google Scholar
RQ4 Summary
▪ Challenges
▪ Need for studies that contain more sophisticated RQs
▪ Studies covering RQs about Casuality and Design, describing situations of efficacy and
efficiency about methods, practices, and tools
▪ Observations
▪ 181 RQs in the 40 selected secondary studies
▪ One study is the most comprehensive work, with 13 RQs
▪ Some studies did not follow a defined protocol
▪ Scope of the study is related to the scope of the RQ
RQ5
What are the annual trends of types, quality, and
the number of primary studies reviewed by the
secondary studies?
Summary
Distribution of studies types cited
Type of referenced projects
Number of primary studies referenced per year
RQ5 Summary
▪ Challenges
▪ Lack of validation by experts on tool analysis
▪ Lack of benchmarks to support improvements of techniques and tools for both smells
and refactorings
▪ Observations
▪ Growth of secondary studies in recent years
▪ Vast majority of studies are SLR (65%), and 75% of studies are published in journals
Relationship between
code smells and refactoring
Smells and Refactoring connected by Quality
Primitive Refactorings
(renames, extracts, etc)
Composite Refactorings
(Replace conditional with, etc)
Approaches to Opportunities
(metrics, strategies/rules, search, etc )
Support Tools
Refactorings
Simple Smells
(magic numbers, long parameter list, etc)
Composite Smells
(God Class/Large Class, Blobs, etc)
Approaches to Detect
(metrics, strategies/rules, etc )
Support Tools
Code Smells
Internal Quality Attributes
Cohesion, Coupling, Size...
External Quality Attributes
Maintainability, Testability, Functionality...
Quality
Technical Debt
Management, Prioritizing, Mitigate...
Quality, Smells, and Refactoring
Implications
and Open Issues
Implications
▪ Practitioners
▪ Refactoring practice should be a daily habit
▪ Developers know the values of refactoring but are often prevented from applying them
▪ Code smells priorization, impact of quality attributes
▪ Instructors
▪ Include these topics in various courses
▪ Practices: Coding dojos, code review sessions, testing, and pair programming
▪ Researchers
▪ Impact of code smells and refactoring
▪ Industry-academic collaboration
Open Issues
Contributions
and Future Work
Contributions and Future Work
▪ Contributions
▪ We cross-reference the most frequent code smells with their detection approaches, detection
tools, suggested refactoring, and refactoring tools
▪ We report the relationships of the top 10 code smells with their refactoring and their impact
on quality
▪ We present the implications of this study from the perspective of practitioners, researchers, and
instructors
▪ We report on 13 open issues about code smells and refactoring
▪ Future works
▪ Practices and tools to mitigate the code smell and evaluate the impact on quality
▪ Goal of refactoring used by practitioners and their effect on quality
▪ Development/improvement of refactoring tools to monitor refactoring and its gains
36th IEEE International Conference on Software Maintenance and Evolution
September 27-October 3, Journal First Track
Code smells and refactoring: A tertiary review of
challenges and observations
Guilherme Lacerda, Fábio Petrillo, Marcelo Pimenta, and Yann Gaël Guéhéneuc
Thank You!
Brazil Brazil Canada Canada

More Related Content

What's hot

越境する開発
越境する開発越境する開発
越境する開発
toshihiro ichitani
 
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912Hironori Washizaki
 
社内勉強会で学んだQA2AQパターンの活用
社内勉強会で学んだQA2AQパターンの活用社内勉強会で学んだQA2AQパターンの活用
社内勉強会で学んだQA2AQパターンの活用
atsushi nagata
 
Transform Your Application Portfolio - and Keep Your Focus!
Transform Your Application Portfolio - and Keep Your Focus!Transform Your Application Portfolio - and Keep Your Focus!
Transform Your Application Portfolio - and Keep Your Focus!
Software AG
 
Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012
Petr Kozlik
 
Project Synopsis sample
Project Synopsis sampleProject Synopsis sample
Project Synopsis sample
Rahul Pola
 
Palestra declaração do escopo é função do gerente de projetos
Palestra   declaração do escopo é função do gerente de projetosPalestra   declaração do escopo é função do gerente de projetos
Palestra declaração do escopo é função do gerente de projetos
Silas Serpa
 
Proposal presensi bersistem rfid
Proposal presensi bersistem rfidProposal presensi bersistem rfid
Proposal presensi bersistem rfidFangfang Mukhtar
 
Workshop Retrospectiva
Workshop Retrospectiva Workshop Retrospectiva
Workshop Retrospectiva
Silas Serpa
 
Architecture + Process: BPM for Enterprise Architects
Architecture + Process: BPM for Enterprise ArchitectsArchitecture + Process: BPM for Enterprise Architects
Architecture + Process: BPM for Enterprise Architects
Michael zur Muehlen
 
Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case
Rildo (@rildosan) Santos
 
Mc farlan's strategic grid
Mc farlan's strategic gridMc farlan's strategic grid
Mc farlan's strategic grid
Manish Chaurasia
 
IT Management, Stream 1, Module 1, Slides
IT Management, Stream 1, Module 1, SlidesIT Management, Stream 1, Module 1, Slides
IT Management, Stream 1, Module 1, Slides
Alexander Jejelava
 
Sistema de Apoio a Decisao
Sistema de Apoio a DecisaoSistema de Apoio a Decisao
Sistema de Apoio a Decisao
Denilson Sousa
 
A Case Study On Technology Management
A Case Study On Technology ManagementA Case Study On Technology Management
A Case Study On Technology Management
Divya Lekha
 
Business Process Re-engineering (BPR)
Business Process Re-engineering (BPR)Business Process Re-engineering (BPR)
Business Process Re-engineering (BPR)
Parth Shukla
 
Governança de TI
Governança de TIGovernança de TI
Governança de TI
wendcosta
 
情報システム部門の組織開発
 情報システム部門の組織開発 情報システム部門の組織開発
情報システム部門の組織開発
Kazutaka Sankai
 

What's hot (20)

越境する開発
越境する開発越境する開発
越境する開発
 
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
 
社内勉強会で学んだQA2AQパターンの活用
社内勉強会で学んだQA2AQパターンの活用社内勉強会で学んだQA2AQパターンの活用
社内勉強会で学んだQA2AQパターンの活用
 
Transform Your Application Portfolio - and Keep Your Focus!
Transform Your Application Portfolio - and Keep Your Focus!Transform Your Application Portfolio - and Keep Your Focus!
Transform Your Application Portfolio - and Keep Your Focus!
 
Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012
 
Project Synopsis sample
Project Synopsis sampleProject Synopsis sample
Project Synopsis sample
 
Palestra declaração do escopo é função do gerente de projetos
Palestra   declaração do escopo é função do gerente de projetosPalestra   declaração do escopo é função do gerente de projetos
Palestra declaração do escopo é função do gerente de projetos
 
Proposal presensi bersistem rfid
Proposal presensi bersistem rfidProposal presensi bersistem rfid
Proposal presensi bersistem rfid
 
Workshop Retrospectiva
Workshop Retrospectiva Workshop Retrospectiva
Workshop Retrospectiva
 
Architecture + Process: BPM for Enterprise Architects
Architecture + Process: BPM for Enterprise ArchitectsArchitecture + Process: BPM for Enterprise Architects
Architecture + Process: BPM for Enterprise Architects
 
Minicurso SCRUM
Minicurso SCRUMMinicurso SCRUM
Minicurso SCRUM
 
7 6 Sigma Dmaic
7 6 Sigma Dmaic7 6 Sigma Dmaic
7 6 Sigma Dmaic
 
Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case
 
Mc farlan's strategic grid
Mc farlan's strategic gridMc farlan's strategic grid
Mc farlan's strategic grid
 
IT Management, Stream 1, Module 1, Slides
IT Management, Stream 1, Module 1, SlidesIT Management, Stream 1, Module 1, Slides
IT Management, Stream 1, Module 1, Slides
 
Sistema de Apoio a Decisao
Sistema de Apoio a DecisaoSistema de Apoio a Decisao
Sistema de Apoio a Decisao
 
A Case Study On Technology Management
A Case Study On Technology ManagementA Case Study On Technology Management
A Case Study On Technology Management
 
Business Process Re-engineering (BPR)
Business Process Re-engineering (BPR)Business Process Re-engineering (BPR)
Business Process Re-engineering (BPR)
 
Governança de TI
Governança de TIGovernança de TI
Governança de TI
 
情報システム部門の組織開発
 情報システム部門の組織開発 情報システム部門の組織開発
情報システム部門の組織開発
 

Similar to Icsm20.ppt

Presentation on Software process improvement in GSD
Presentation on Software process improvement in GSDPresentation on Software process improvement in GSD
Presentation on Software process improvement in GSD
Rafi Ullah
 
Master project - Competitive Co-evolutionary Code-Smells Detection
Master project - Competitive Co-evolutionary Code-Smells DetectionMaster project - Competitive Co-evolutionary Code-Smells Detection
Master project - Competitive Co-evolutionary Code-Smells Detection
Mohamed BOUSSAA
 
2018-06-25 ICLS 2018 Quality of MOOCs towards QRF Stracke Tan
2018-06-25 ICLS 2018 Quality of MOOCs towards QRF Stracke Tan2018-06-25 ICLS 2018 Quality of MOOCs towards QRF Stracke Tan
2018-06-25 ICLS 2018 Quality of MOOCs towards QRF Stracke Tan
Christian M. Stracke
 
JOHN
JOHNJOHN
JOHN
MoIRP
 
Quality Standards ERS 2017
Quality Standards ERS 2017Quality Standards ERS 2017
Quality Standards ERS 2017
Kathryn Brown
 
LN03.pdf
LN03.pdfLN03.pdf
LN03.pdf
Abery Au
 
Enhancing quality of research 4 development: Initial ideas for design and imp...
Enhancing quality of research 4 development: Initial ideas for design and imp...Enhancing quality of research 4 development: Initial ideas for design and imp...
Enhancing quality of research 4 development: Initial ideas for design and imp...
ILRI
 
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
University of Hawai‘i at Mānoa
 
A survey on software smells
A survey on software smellsA survey on software smells
A survey on software smells
Zahid Qaisar
 
2018-07-10 ICALT 2018 in Mumbai Gap between MOOC Designers and Learners on In...
2018-07-10 ICALT 2018 in Mumbai Gap between MOOC Designers and Learners on In...2018-07-10 ICALT 2018 in Mumbai Gap between MOOC Designers and Learners on In...
2018-07-10 ICALT 2018 in Mumbai Gap between MOOC Designers and Learners on In...
Christian M. Stracke
 
Evaluating Problem Gambling KTE
Evaluating Problem Gambling KTEEvaluating Problem Gambling KTE
Evaluating Problem Gambling KTE
Anne Bergen
 
Name ID Number Section 1 SummaryAt least 250 words as counted.docx
Name ID Number Section 1 SummaryAt least 250 words as counted.docxName ID Number Section 1 SummaryAt least 250 words as counted.docx
Name ID Number Section 1 SummaryAt least 250 words as counted.docx
roushhsiu
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Fáber D. Giraldo
 
Case Study Writing
Case Study WritingCase Study Writing
Case Study Writing
Fida Karim 🇵🇰
 
Chap2 RE processes
Chap2 RE processesChap2 RE processes
Chap2 RE processes
Ian Sommerville
 
inforte.fi invited talk-Day 2: Conducting industry-relevant software enginee...
inforte.fi invited talk-Day 2: Conducting industry-relevant software enginee...inforte.fi invited talk-Day 2: Conducting industry-relevant software enginee...
inforte.fi invited talk-Day 2: Conducting industry-relevant software enginee...
Vahid Garousi
 
Evaluability Assessments and Choice of Evaluation Methods
Evaluability Assessments and Choice of Evaluation MethodsEvaluability Assessments and Choice of Evaluation Methods
Evaluability Assessments and Choice of Evaluation Methods
Debbie_at_IDS
 
Insights from Program Evaluation for Retrospective Reviews of regulations
Insights from Program Evaluation for Retrospective Reviews of regulationsInsights from Program Evaluation for Retrospective Reviews of regulations
Insights from Program Evaluation for Retrospective Reviews of regulations
Nick Hart, Ph.D.
 
Exploratory Testing Basics and Future Kari Kakkonen Moscow 2018
Exploratory Testing Basics and Future Kari Kakkonen Moscow 2018Exploratory Testing Basics and Future Kari Kakkonen Moscow 2018
Exploratory Testing Basics and Future Kari Kakkonen Moscow 2018
Kari Kakkonen
 
Shyam presentation prefinal
Shyam presentation prefinalShyam presentation prefinal
Shyam presentation prefinal
Shyam Raj
 

Similar to Icsm20.ppt (20)

Presentation on Software process improvement in GSD
Presentation on Software process improvement in GSDPresentation on Software process improvement in GSD
Presentation on Software process improvement in GSD
 
Master project - Competitive Co-evolutionary Code-Smells Detection
Master project - Competitive Co-evolutionary Code-Smells DetectionMaster project - Competitive Co-evolutionary Code-Smells Detection
Master project - Competitive Co-evolutionary Code-Smells Detection
 
2018-06-25 ICLS 2018 Quality of MOOCs towards QRF Stracke Tan
2018-06-25 ICLS 2018 Quality of MOOCs towards QRF Stracke Tan2018-06-25 ICLS 2018 Quality of MOOCs towards QRF Stracke Tan
2018-06-25 ICLS 2018 Quality of MOOCs towards QRF Stracke Tan
 
JOHN
JOHNJOHN
JOHN
 
Quality Standards ERS 2017
Quality Standards ERS 2017Quality Standards ERS 2017
Quality Standards ERS 2017
 
LN03.pdf
LN03.pdfLN03.pdf
LN03.pdf
 
Enhancing quality of research 4 development: Initial ideas for design and imp...
Enhancing quality of research 4 development: Initial ideas for design and imp...Enhancing quality of research 4 development: Initial ideas for design and imp...
Enhancing quality of research 4 development: Initial ideas for design and imp...
 
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
 
A survey on software smells
A survey on software smellsA survey on software smells
A survey on software smells
 
2018-07-10 ICALT 2018 in Mumbai Gap between MOOC Designers and Learners on In...
2018-07-10 ICALT 2018 in Mumbai Gap between MOOC Designers and Learners on In...2018-07-10 ICALT 2018 in Mumbai Gap between MOOC Designers and Learners on In...
2018-07-10 ICALT 2018 in Mumbai Gap between MOOC Designers and Learners on In...
 
Evaluating Problem Gambling KTE
Evaluating Problem Gambling KTEEvaluating Problem Gambling KTE
Evaluating Problem Gambling KTE
 
Name ID Number Section 1 SummaryAt least 250 words as counted.docx
Name ID Number Section 1 SummaryAt least 250 words as counted.docxName ID Number Section 1 SummaryAt least 250 words as counted.docx
Name ID Number Section 1 SummaryAt least 250 words as counted.docx
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...
 
Case Study Writing
Case Study WritingCase Study Writing
Case Study Writing
 
Chap2 RE processes
Chap2 RE processesChap2 RE processes
Chap2 RE processes
 
inforte.fi invited talk-Day 2: Conducting industry-relevant software enginee...
inforte.fi invited talk-Day 2: Conducting industry-relevant software enginee...inforte.fi invited talk-Day 2: Conducting industry-relevant software enginee...
inforte.fi invited talk-Day 2: Conducting industry-relevant software enginee...
 
Evaluability Assessments and Choice of Evaluation Methods
Evaluability Assessments and Choice of Evaluation MethodsEvaluability Assessments and Choice of Evaluation Methods
Evaluability Assessments and Choice of Evaluation Methods
 
Insights from Program Evaluation for Retrospective Reviews of regulations
Insights from Program Evaluation for Retrospective Reviews of regulationsInsights from Program Evaluation for Retrospective Reviews of regulations
Insights from Program Evaluation for Retrospective Reviews of regulations
 
Exploratory Testing Basics and Future Kari Kakkonen Moscow 2018
Exploratory Testing Basics and Future Kari Kakkonen Moscow 2018Exploratory Testing Basics and Future Kari Kakkonen Moscow 2018
Exploratory Testing Basics and Future Kari Kakkonen Moscow 2018
 
Shyam presentation prefinal
Shyam presentation prefinalShyam presentation prefinal
Shyam presentation prefinal
 

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

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
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.5
Yann-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.1
Yann-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 22
Yann-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.3
Yann-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.9
Yann-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 Consequences
Yann-Gaël Guéhéneuc
 
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
Yann-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
 
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
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.1
Yann-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.6
Yann-Gaël Guéhéneuc
 
ICSOC'21
ICSOC'21ICSOC'21
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
Yann-Gaël Guéhéneuc
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
Yann-Gaël Guéhéneuc
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
Yann-Gaël Guéhéneuc
 
Msr20.ppt
Msr20.pptMsr20.ppt
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt

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

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
 
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
 

Recently uploaded

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 

Icsm20.ppt

  • 1. 36th IEEE International Conference on Software Maintenance and Evolution September 27-October 3, Journal First Track Code smells and refactoring: A tertiary review of challenges and observations Guilherme Lacerda, Fábio Petrillo, Marcelo Pimenta, and Yann Gaël Guéhéneuc Brazil Brazil Canada Canada
  • 2. Published: JSS, 167 (2020) Preprint: https://arxiv.org/abs/2004.10777
  • 4. Introduction and Background ▪ Refactoring and Smells ▪ Several secondary studies have been published on code smells and refactoring ▪ Tertiary Systematic Literature Review ▪ Surveys, secondary systematic literature reviews, and systematic mappings ▪ 40 secondary studies selected ▪ Challenges and Observations
  • 5. Research Questions RQ1: What refactoring-related topics have been investigated in secondary studies? RQ2: What smells-related topics have been investigated in secondary studies? RQ3: Which tools have been mentioned for code smell detection and refactoring support? RQ4: Which RQs have been studied on code smells and refactoring? What are the highest cited secondary studies? RQ5: What are the annual trends of types, quality, and the number of primary studies reviewed by the secondary studies?
  • 7. Study Design Definition of Goal and RQs (3.1) Identification of Relevant Papers and Search String (3.2) Selection Criteria (3.3) Apply Quality Assessment (3.4) Data Extraction and Execution (3.5, 3.6) Lacerda, G., 2019. Online Repository for Tertiary Systematic Review about Code Smells and Refactoring (Package Replication). https://bit.ly/2WRD1N2 Search databases ACM (30), IEEE (65), Scopus (58), Science Direct (130), Springer (89), Google Scholar (33), AIS (40), Wiley (22) 467 1st selection of studies Using selection criteria (title, abstract, keywords) 59 Duplicated papers and 2nd selection of studies Using selection criteria (full text analysis) 33 Snowballing 40 Total of selected studies
  • 10. RQ1 What refactoring-related topics have been investigated in secondary studies?
  • 11. RQ1 Summary ▪ Topics ▪ Opportunities, techniques, refactoring tools, refactoring in other contexts, and others ▪ Challenges ▪ Relationship between smells and refactoring is not a one to one ▪ Encourage researchers to improve the results most commonly used in practice ▪ Observations ▪ Extraction techniques are the most mentioned ▪ Number of techniques explored is still small (between 20 and 27 of 72) ▪ Quality metrics-oriented approach, precondition-oriented approach, and clustering-oriented approach are most cited approaches ▪ Some refactoring, when applied, negatively affect the quality
  • 12. RQ2 What smells-related topics have been investigated in secondary studies?
  • 13. RQ2 Summary ▪ Challenges ▪ Smells naming standardization is necessary ▪ Co-occurence of smells ▪ Explore and improve methods of defining, specify, and capture the smell context ▪ Observations ▪ Blob and Duplicated code/clones are most mentioned design and code smell, respectively ▪ God Class/Large Class has been the most investigated smell (Technical Debt) ▪ metrics-oriented approach and strategies/rules are most cited approaches to detection ▪ Topics ▪ Smells detection, code smell description, support tools for smell detection, and others
  • 14. RQ3 Which tools have been mentioned for code smell detection and refactoring support?
  • 15. RQ3 Summary ▪ Challenges ▪ To develop tools that support more than one programming languages ▪ To expand the studies and experiments, improving the accuracy of the smell detection tools and refactoring support ▪ Limitations and lack of maturity of tools ▪ Observations ▪ Several aspects characterize tools (license, supported languages, degree of automation, and others) ▪ Java is the platform/programming language most used ▪ Large number of smell detection tools, detecting only a tiny amount of smells ▪ Number of refactoring tools is small ▪ CCFinder and Jdeodorant are the most cited tools
  • 16. RQ4 Which RQs have been studied on code smells and refactoring? What are the highest cited secondary studies?
  • 17. Top 5 selected studies ▪ Sorted by the number of citations by year ▪ Sorted by the number of citations of Google Scholar
  • 18. RQ4 Summary ▪ Challenges ▪ Need for studies that contain more sophisticated RQs ▪ Studies covering RQs about Casuality and Design, describing situations of efficacy and efficiency about methods, practices, and tools ▪ Observations ▪ 181 RQs in the 40 selected secondary studies ▪ One study is the most comprehensive work, with 13 RQs ▪ Some studies did not follow a defined protocol ▪ Scope of the study is related to the scope of the RQ
  • 19. RQ5 What are the annual trends of types, quality, and the number of primary studies reviewed by the secondary studies?
  • 20. Summary Distribution of studies types cited Type of referenced projects Number of primary studies referenced per year
  • 21. RQ5 Summary ▪ Challenges ▪ Lack of validation by experts on tool analysis ▪ Lack of benchmarks to support improvements of techniques and tools for both smells and refactorings ▪ Observations ▪ Growth of secondary studies in recent years ▪ Vast majority of studies are SLR (65%), and 75% of studies are published in journals
  • 23. Smells and Refactoring connected by Quality Primitive Refactorings (renames, extracts, etc) Composite Refactorings (Replace conditional with, etc) Approaches to Opportunities (metrics, strategies/rules, search, etc ) Support Tools Refactorings Simple Smells (magic numbers, long parameter list, etc) Composite Smells (God Class/Large Class, Blobs, etc) Approaches to Detect (metrics, strategies/rules, etc ) Support Tools Code Smells Internal Quality Attributes Cohesion, Coupling, Size... External Quality Attributes Maintainability, Testability, Functionality... Quality Technical Debt Management, Prioritizing, Mitigate...
  • 24. Quality, Smells, and Refactoring
  • 26. Implications ▪ Practitioners ▪ Refactoring practice should be a daily habit ▪ Developers know the values of refactoring but are often prevented from applying them ▪ Code smells priorization, impact of quality attributes ▪ Instructors ▪ Include these topics in various courses ▪ Practices: Coding dojos, code review sessions, testing, and pair programming ▪ Researchers ▪ Impact of code smells and refactoring ▪ Industry-academic collaboration
  • 29. Contributions and Future Work ▪ Contributions ▪ We cross-reference the most frequent code smells with their detection approaches, detection tools, suggested refactoring, and refactoring tools ▪ We report the relationships of the top 10 code smells with their refactoring and their impact on quality ▪ We present the implications of this study from the perspective of practitioners, researchers, and instructors ▪ We report on 13 open issues about code smells and refactoring ▪ Future works ▪ Practices and tools to mitigate the code smell and evaluate the impact on quality ▪ Goal of refactoring used by practitioners and their effect on quality ▪ Development/improvement of refactoring tools to monitor refactoring and its gains
  • 30. 36th IEEE International Conference on Software Maintenance and Evolution September 27-October 3, Journal First Track Code smells and refactoring: A tertiary review of challenges and observations Guilherme Lacerda, Fábio Petrillo, Marcelo Pimenta, and Yann Gaël Guéhéneuc Thank You! Brazil Brazil Canada Canada