SlideShare una empresa de Scribd logo
1 de 12
REVISITING
THE RELATIONSHIP BETWEEN
CODE SMELLS AND
REFACTORING
Norihiro Yoshida (Nagoya Univ.)
Tsubasa Saika (Osaka Univ.)
Eunjong Choi (NAIST)
Ali Ouni (Osaka Univ.)
Katsuro Inoue (Osaka Univ.)
1
Code smell and Refactoring
Fowler [1] introduced a correspondence
relationship between
• Smell type
• Refactoring to remove its instance
Smell type Common Refactoring
Feature Envy Extract Method, Move Method, Pull-
up Method, Move Field
Data Class Move Method, Encapsulate Field,
Encapsulate Collection
[1] M. Fowler: “Refactoring: Improving the Design of Existing Code”,
Addison-Wesley Professional, 1999.
2
Motivation
• Bavota et al.’s investigation [2]
“40% of the refactorings was performed on classes
affected by smells, but just 7% removed the smell.”
• It does not align with Fowler’s book.
3
[2] G. Bavota, et al.: “An experimental
investigation on the innate relationship between quality and refactoring,”
Journal of Systems and Software, 2015.
Question
Why does refactoring rarely remove code smell?
Applied refactoring patterns rarely correspond to
types of the code smell.
4
In order to test the hypothesis, we empirically
investigate three OSS projects.
An Overview of This Study
Hypothesis
This study
Data we analyzed
- Refactoring instances
Refactoring instances in Bavota et al.’s dataset [3]
• They manually validated the instances.
5
Period Releases Classes Refactoring
instances
Xerces-J Oct. ‘99 - Nov. ‘10 34 19,567 6,052
ArgoUML Oct. ‘02 - Dec. ‘11 12 43,686 3,423
Ant Jan. ‘00 - Dec. ‘10 18 22,768 1,493
[3] G. Bavota et al.: “When does a refactoring induce bugs? an empirical study,”
In Proc. of SCAM 2012.
Data we analyzed
- Code smells
6
Code Smells #Classes
BlobClass 692
DataClass 1,679
DistortedHierarchy 8
GodClass 1,294
RefusedParentBequest 538
SchizophrenicClass 311
TraditionBreaker 249
Total 4,771
Code Smells #Methods
BlobOperation 4,610
DataClumps 1,402
ExternalDuplication 1,656
FeatureEnvy 1,364
IntensiveCoupling 1,290
InternalDuplication 2,218
MessageChains 31
ShotgunSurgery 65
SiblingDuplication 1,956
Total 14,592
We detected code smells from each release
version by inFusion.
List of corresponding refactoring patterns
• We made a list of the corresponding refactoring
patterns for each type of code smell.
• Referred the following books:
• M. Fowler: “Refactoring: Improving the Design of Existing Code”,
Addison-Wesley Professional, 1999.
• M. Lanza and R. Marinescu, “Object-Oriented Metrics in
Practice”, Springer-Verlag, 2005.
• Investigated the effectiveness of each refactoring
pattern for each type of code smell manually.
• Once an instance showed the effectiveness, we regarded that
the pattern corresponds to the type of code smell.
7
Investigation result
- Class-level code smell
Code Smells
#Refactored
Classes
#Classes
w/ Corresponding Refactorings
Ratio
BlobClass 210 180 85.7%
DataClass 43 8 18.6%
DistortedHierarchy 4 0 0.0%
GodClass 284 54 19.0%
RefusedParentBequest 40 7 17.5%
SchizophrenicClass 34 9 26.5%
TraditionBreaker 15 3 20.0%
Total 630 261 26.8%
8
Only 26.8% were refactored by corresponding patterns.
Only BlobClass was frequently refactored
by corresponding patterns.
Investigation result
- Method-level code smell
Code Smells
#Refactored
method
#Methods
w/ Corresponding Refactorings
Ratio
BlobOperation 436 180 68.8%
DataClumps 50 8 0.0%
ExternalDuplication 69 0 4.3%
FeatureEnvy 86 54 10.5%
IntensiveCoupling 107 7 22.4%
InternalDuplication 164 9 17.1%
MessageChains 4 3 0.0%
ShotgunSurgery 3 0 0.0%
SiblingDuplication 147 31 21.1%
Total 1,066 395 16.0%
9
Only 16.0% were refactored by corresponding patterns.
Only BlobOperation was frequently refactored
by corresponding patterns.
Discussion
10
Applied refactoring patterns rarely correspond to
types of the code smell.
Hypothesis
Only 16.0-26.8% of instances corresponded to
types of the code smell.
Investigation Result
The hypothesis is true!
Conclusion
11
Answer
Since corresponding patterns are rarely applied
to code smells, refactoring rarely removes them.
Question
Why does refactoring rarely remove code
smell?
Future Work
Replicate this study using the following
datasets / approaches.
• Other datasets of code smells [2]
• Other approach to detecting code smells [4]
• Other aproach for detecting refactoring
instances [5].
12
[2] G. Bavota, et al.: “An experimental
investigation on the innate relationship between quality and refactoring,”
Journal of Systems and Software, 2015.
[4] F. Palomba, et al.: “Mining version histories for detecting code smells,” IEEE
Trans. Softw. Eng., 2015.
[5] Z. Xing and E. Stroulia, “Refactoring detection based on UMLDiff
change-facts queries,” in Proc. of WCRE 2006.

Más contenido relacionado

Similar a Revisiting the Relationship Between Code Smells and Refactoring

Saha UC Davis Plant Pathology seminar Infrastructure for battling the Citrus ...
Saha UC Davis Plant Pathology seminar Infrastructure for battling the Citrus ...Saha UC Davis Plant Pathology seminar Infrastructure for battling the Citrus ...
Saha UC Davis Plant Pathology seminar Infrastructure for battling the Citrus ...
Surya Saha
 
Рефакторинг Ruby-кода / Анатолий Макаревич (Evrone)
Рефакторинг Ruby-кода / Анатолий Макаревич (Evrone)Рефакторинг Ruby-кода / Анатолий Макаревич (Evrone)
Рефакторинг Ruby-кода / Анатолий Макаревич (Evrone)
Ontico
 

Similar a Revisiting the Relationship Between Code Smells and Refactoring (20)

Code Smell, Software Engineering
Code Smell, Software EngineeringCode Smell, Software Engineering
Code Smell, Software Engineering
 
Functional annotation of invertebrate genomes
Functional annotation of invertebrate genomesFunctional annotation of invertebrate genomes
Functional annotation of invertebrate genomes
 
An Exploratory Study on the Refactoring of Unit Test Files in Android Applica...
An Exploratory Study on the Refactoring of Unit Test Files in Android Applica...An Exploratory Study on the Refactoring of Unit Test Files in Android Applica...
An Exploratory Study on the Refactoring of Unit Test Files in Android Applica...
 
PhD Symposium 2014
PhD Symposium 2014PhD Symposium 2014
PhD Symposium 2014
 
Apollo Collaborative genome annotation editing
Apollo Collaborative genome annotation editing Apollo Collaborative genome annotation editing
Apollo Collaborative genome annotation editing
 
Introduction to Apollo - i5k Research Community – Calanoida (copepod)
Introduction to Apollo - i5k Research Community – Calanoida (copepod)Introduction to Apollo - i5k Research Community – Calanoida (copepod)
Introduction to Apollo - i5k Research Community – Calanoida (copepod)
 
The role of annotation in reproducibility (Empirical 2014)
The role of annotation in reproducibility (Empirical 2014)The role of annotation in reproducibility (Empirical 2014)
The role of annotation in reproducibility (Empirical 2014)
 
An introduction to Web Apollo for the Biomphalaria glabatra research community.
An introduction to Web Apollo for the Biomphalaria glabatra research community.An introduction to Web Apollo for the Biomphalaria glabatra research community.
An introduction to Web Apollo for the Biomphalaria glabatra research community.
 
Saha UC Davis Plant Pathology seminar Infrastructure for battling the Citrus ...
Saha UC Davis Plant Pathology seminar Infrastructure for battling the Citrus ...Saha UC Davis Plant Pathology seminar Infrastructure for battling the Citrus ...
Saha UC Davis Plant Pathology seminar Infrastructure for battling the Citrus ...
 
Variant analysis and whole exome sequencing
Variant analysis and whole exome sequencingVariant analysis and whole exome sequencing
Variant analysis and whole exome sequencing
 
An introduction to Web Apollo for i5K Pilot Species Projects - Hemiptera
An introduction to Web Apollo for i5K Pilot Species Projects - HemipteraAn introduction to Web Apollo for i5K Pilot Species Projects - Hemiptera
An introduction to Web Apollo for i5K Pilot Species Projects - Hemiptera
 
On The Relation of Test Smells to Software Code Quality
On The Relation of Test Smells to Software Code QualityOn The Relation of Test Smells to Software Code Quality
On The Relation of Test Smells to Software Code Quality
 
ISPAC2013 plenary talk - Environmental Forensics and PAHs
ISPAC2013 plenary talk - Environmental Forensics and PAHsISPAC2013 plenary talk - Environmental Forensics and PAHs
ISPAC2013 plenary talk - Environmental Forensics and PAHs
 
Genome annotation with open source software: Apollo, Jbrowse and the GO in Ga...
Genome annotation with open source software: Apollo, Jbrowse and the GO in Ga...Genome annotation with open source software: Apollo, Jbrowse and the GO in Ga...
Genome annotation with open source software: Apollo, Jbrowse and the GO in Ga...
 
Apollo Workshop AGS2017 Introduction
Apollo Workshop AGS2017 IntroductionApollo Workshop AGS2017 Introduction
Apollo Workshop AGS2017 Introduction
 
Linked Open Vocabulary Ranking and Terms Discovery
Linked Open Vocabulary Ranking and Terms DiscoveryLinked Open Vocabulary Ranking and Terms Discovery
Linked Open Vocabulary Ranking and Terms Discovery
 
Codesmells for AspectJ
Codesmells for AspectJCodesmells for AspectJ
Codesmells for AspectJ
 
Practices and Tools for Better Software Testing
Practices and Tools for  Better Software TestingPractices and Tools for  Better Software Testing
Practices and Tools for Better Software Testing
 
Рефакторинг Ruby-кода / Анатолий Макаревич (Evrone)
Рефакторинг Ruby-кода / Анатолий Макаревич (Evrone)Рефакторинг Ruby-кода / Анатолий Макаревич (Evrone)
Рефакторинг Ruby-кода / Анатолий Макаревич (Evrone)
 
desodorantes y antitranspirantes
desodorantes y antitranspirantesdesodorantes y antitranspirantes
desodorantes y antitranspirantes
 

Más de Norihiro Yoshida

Más de Norihiro Yoshida (12)

ファジングツールAFLの利用を支援するツールFuzz4Bによるファジング教育の試み
ファジングツールAFLの利用を支援するツールFuzz4Bによるファジング教育の試みファジングツールAFLの利用を支援するツールFuzz4Bによるファジング教育の試み
ファジングツールAFLの利用を支援するツールFuzz4Bによるファジング教育の試み
 
Extracting a Micro State Transition Table Using KLEE
Extracting a Micro State Transition Table Using KLEEExtracting a Micro State Transition Table Using KLEE
Extracting a Micro State Transition Table Using KLEE
 
A Quantitative Comparison of Coverage-Based Greybox Fuzzers
A Quantitative Comparison of Coverage-Based Greybox FuzzersA Quantitative Comparison of Coverage-Based Greybox Fuzzers
A Quantitative Comparison of Coverage-Based Greybox Fuzzers
 
ソフトウェア開発における産学協創フォーラム オープニング資料
ソフトウェア開発における産学協創フォーラム オープニング資料ソフトウェア開発における産学協創フォーラム オープニング資料
ソフトウェア開発における産学協創フォーラム オープニング資料
 
コードクローン 検出・変更管理ツール群の開発
コードクローン 検出・変更管理ツール群の開発コードクローン 検出・変更管理ツール群の開発
コードクローン 検出・変更管理ツール群の開発
 
Proactive Clone Recommendation System for Extract Method Refactoring
 Proactive Clone Recommendation System for Extract Method Refactoring Proactive Clone Recommendation System for Extract Method Refactoring
Proactive Clone Recommendation System for Extract Method Refactoring
 
Code Search Based on Deep Neural Network and Code Mutation
Code Search Based on Deep Neural Network and Code MutationCode Search Based on Deep Neural Network and Code Mutation
Code Search Based on Deep Neural Network and Code Mutation
 
機械学習システムにおける技術的負債について
機械学習システムにおける技術的負債について機械学習システムにおける技術的負債について
機械学習システムにおける技術的負債について
 
When, why and for whom do practitioners detect technical debts?: An experienc...
When, why and for whom do practitioners detect technical debts?: An experienc...When, why and for whom do practitioners detect technical debts?: An experienc...
When, why and for whom do practitioners detect technical debts?: An experienc...
 
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
 
IWESEP 2013
IWESEP 2013IWESEP 2013
IWESEP 2013
 
MSR2013
MSR2013MSR2013
MSR2013
 

Último

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Último (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

Revisiting the Relationship Between Code Smells and Refactoring

  • 1. REVISITING THE RELATIONSHIP BETWEEN CODE SMELLS AND REFACTORING Norihiro Yoshida (Nagoya Univ.) Tsubasa Saika (Osaka Univ.) Eunjong Choi (NAIST) Ali Ouni (Osaka Univ.) Katsuro Inoue (Osaka Univ.) 1
  • 2. Code smell and Refactoring Fowler [1] introduced a correspondence relationship between • Smell type • Refactoring to remove its instance Smell type Common Refactoring Feature Envy Extract Method, Move Method, Pull- up Method, Move Field Data Class Move Method, Encapsulate Field, Encapsulate Collection [1] M. Fowler: “Refactoring: Improving the Design of Existing Code”, Addison-Wesley Professional, 1999. 2
  • 3. Motivation • Bavota et al.’s investigation [2] “40% of the refactorings was performed on classes affected by smells, but just 7% removed the smell.” • It does not align with Fowler’s book. 3 [2] G. Bavota, et al.: “An experimental investigation on the innate relationship between quality and refactoring,” Journal of Systems and Software, 2015. Question Why does refactoring rarely remove code smell?
  • 4. Applied refactoring patterns rarely correspond to types of the code smell. 4 In order to test the hypothesis, we empirically investigate three OSS projects. An Overview of This Study Hypothesis This study
  • 5. Data we analyzed - Refactoring instances Refactoring instances in Bavota et al.’s dataset [3] • They manually validated the instances. 5 Period Releases Classes Refactoring instances Xerces-J Oct. ‘99 - Nov. ‘10 34 19,567 6,052 ArgoUML Oct. ‘02 - Dec. ‘11 12 43,686 3,423 Ant Jan. ‘00 - Dec. ‘10 18 22,768 1,493 [3] G. Bavota et al.: “When does a refactoring induce bugs? an empirical study,” In Proc. of SCAM 2012.
  • 6. Data we analyzed - Code smells 6 Code Smells #Classes BlobClass 692 DataClass 1,679 DistortedHierarchy 8 GodClass 1,294 RefusedParentBequest 538 SchizophrenicClass 311 TraditionBreaker 249 Total 4,771 Code Smells #Methods BlobOperation 4,610 DataClumps 1,402 ExternalDuplication 1,656 FeatureEnvy 1,364 IntensiveCoupling 1,290 InternalDuplication 2,218 MessageChains 31 ShotgunSurgery 65 SiblingDuplication 1,956 Total 14,592 We detected code smells from each release version by inFusion.
  • 7. List of corresponding refactoring patterns • We made a list of the corresponding refactoring patterns for each type of code smell. • Referred the following books: • M. Fowler: “Refactoring: Improving the Design of Existing Code”, Addison-Wesley Professional, 1999. • M. Lanza and R. Marinescu, “Object-Oriented Metrics in Practice”, Springer-Verlag, 2005. • Investigated the effectiveness of each refactoring pattern for each type of code smell manually. • Once an instance showed the effectiveness, we regarded that the pattern corresponds to the type of code smell. 7
  • 8. Investigation result - Class-level code smell Code Smells #Refactored Classes #Classes w/ Corresponding Refactorings Ratio BlobClass 210 180 85.7% DataClass 43 8 18.6% DistortedHierarchy 4 0 0.0% GodClass 284 54 19.0% RefusedParentBequest 40 7 17.5% SchizophrenicClass 34 9 26.5% TraditionBreaker 15 3 20.0% Total 630 261 26.8% 8 Only 26.8% were refactored by corresponding patterns. Only BlobClass was frequently refactored by corresponding patterns.
  • 9. Investigation result - Method-level code smell Code Smells #Refactored method #Methods w/ Corresponding Refactorings Ratio BlobOperation 436 180 68.8% DataClumps 50 8 0.0% ExternalDuplication 69 0 4.3% FeatureEnvy 86 54 10.5% IntensiveCoupling 107 7 22.4% InternalDuplication 164 9 17.1% MessageChains 4 3 0.0% ShotgunSurgery 3 0 0.0% SiblingDuplication 147 31 21.1% Total 1,066 395 16.0% 9 Only 16.0% were refactored by corresponding patterns. Only BlobOperation was frequently refactored by corresponding patterns.
  • 10. Discussion 10 Applied refactoring patterns rarely correspond to types of the code smell. Hypothesis Only 16.0-26.8% of instances corresponded to types of the code smell. Investigation Result The hypothesis is true!
  • 11. Conclusion 11 Answer Since corresponding patterns are rarely applied to code smells, refactoring rarely removes them. Question Why does refactoring rarely remove code smell?
  • 12. Future Work Replicate this study using the following datasets / approaches. • Other datasets of code smells [2] • Other approach to detecting code smells [4] • Other aproach for detecting refactoring instances [5]. 12 [2] G. Bavota, et al.: “An experimental investigation on the innate relationship between quality and refactoring,” Journal of Systems and Software, 2015. [4] F. Palomba, et al.: “Mining version histories for detecting code smells,” IEEE Trans. Softw. Eng., 2015. [5] Z. Xing and E. Stroulia, “Refactoring detection based on UMLDiff change-facts queries,” in Proc. of WCRE 2006.