Interprocedural pointer alias analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using Slicing to Identify Duplication in Source Code
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Effective, Automatic Procedure Extraction
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Journal of Systems and Software
Syntax-Directed Amorphous Slicing
Automated Software Engineering
Amorphous Procedure Extraction
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
Practical language-independent detection of near-miss clones
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Insights into System-Wide Code Duplication
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code
IEEE Transactions on Software Engineering
Program restructuring using clustering techniques
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
Breaking the barriers to successful refactoring: observations and tools for extract method
Proceedings of the 30th international conference on Software engineering
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Clone maintenance through analysis and refactoring
Proceedings of the 2008 Foundations of Software Engineering Doctoral Symposium
Comparison and evaluation of code clone detection techniques and tools: A qualitative approach
Science of Computer Programming
Identification of Extract Method Refactoring Opportunities
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
How we refactor, and how we know it
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Identifying Fragments to be Extracted from Long Methods
APSEC '09 Proceedings of the 2009 16th Asia-Pacific Software Engineering Conference
Near-miss function clones in open source software: an empirical study
Journal of Software Maintenance and Evolution: Research and Practice - Working Conference on Reverse Engineering (WCRE 2008)
Proceedings of the 4th International Workshop on Software Clones
Software refactoring at the function level using new Adaptive K-Nearest Neighbor algorithm
Advances in Engineering Software
Towards an appropriate software refactoring tool support
ACS'09 Proceedings of the 9th WSEAS international conference on Applied computer science
A visualization method of program dependency graph for identifying extract method opportunity
Proceedings of the 4th Workshop on Refactoring Tools
A security-aware refactoring tool for Java programs
Proceedings of the 4th Workshop on Refactoring Tools
An empirical study of long-lived code clones
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Analyzing and Forecasting Near-Miss Clones in Evolving Software: An Empirical Study
ICECCS '11 Proceedings of the 2011 16th IEEE International Conference on Engineering of Complex Computer Systems
An automatic framework for extracting and classifying near-miss clone genealogies
ICSM '11 Proceedings of the 2011 27th IEEE International Conference on Software Maintenance
Schedule of Bad Smell Detection and Resolution: A New Way to Save Effort
IEEE Transactions on Software Engineering
Comparative stability of cloned and non-cloned code: an empirical study
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
Cloned code, also known as duplicated code, is among the bad ''code smells''. Procedure extraction can be used to remove clones and to make a software system more maintainable. While the existing procedure extraction techniques can handle automatic extraction of exact clones effectively, they fail to do so for near-miss clones, which are the code fragments that are similar but not the same. To address this gap, we developed SPAPE, a novel semantic-preserving amorphous procedure extraction method to extract near-miss clones. SPAPE relaxes the constraint of having the same syntax and uses the structural semantic information. We evaluated the performance, effectiveness, and benefits of SPAPE. Our results show that SPAPE can extract more near-miss clones than the best applicable method for ten open-source-software products in an efficient and effective fashion. We conclude that SPAPE can be a useful contribution to the toolsets of software managers and developers, and it can help them improve code structure and reduce software maintenance and overall project costs.