Transactions on Software Engineering
The IEEE Transactions on Software Engineering (TSE) is an archival journal published bimonthly. We are interested in well-defined theoretical results and empirical studies that have potential impact on the construction, analysis, or management of software. Read the full scope of TSE
IEEE Transactions on Software Engineering (TSE) has moved to the OnlinePlus publication model starting with 2013 issues!
From the November 2015 Issue
Assessing the Refactorability of Software Clones
By Nikolaos Tsantalis, Davood Mazinanian, and Giri Panamoottil Krishnan
The presence of duplicated code in software systems is significant and several studies have shown that clones can be potentially harmful with respect to the maintainability and evolution of the source code. Despite the significance of the problem, there is still limited support for eliminating software clones through refactoring, because the unification and merging of duplicated code is a very challenging problem, especially when software clones have gone through several modifications after their initial introduction. In this work, we propose an approach for automatically assessing whether a pair of clones can be safely refactored without changing the behavior of the program. In particular, our approach examines if the differences present between the clones can be safely parameterized without causing any side-effects. The evaluation results have shown that the clones assessed as refactorable by our approach can be indeed refactored without causing any compile errors or test failures. Additionally, the computational cost of the proposed approach is negligible (less than a second) in the vast majority of the examined cases. Finally, we perform a large-scale empirical study on over a million clone pairs detected by four different clone detection tools in nine open-source projects to investigate how refactorability is affected by different clone properties and tool configuration options. Among the highlights of our conclusions, we found that a) clones in production code tend to be more refactorable than clones in test code, b) clones with a close relative location (i.e., same method, type, or file) tend to be more refactorable than clones in distant locations (i.e., same hierarchy, or unrelated types), c) Type-1 clones tend to be more refactorable than the other clone types, and d) clones with a small size tend to be more refactorable than clones with a larger size.
View the PDF of this article
View this issue in the digital library
Editorials and Announcements
Announcements
- According to Thomson Reuters' 2013 Journal Citation Report, TSE has an impact factor of 2.292.
- TSE celebrates its 40th Anniversary
- Get Your Journals as eBooks for Free
Editorials
- State of the Journal Editorial (Jan 2015)
- In Memoriam: Mary Jean Harrold (1947-2013) (Nov 2013)
- Editorial (Sept 2013)
- In Memoriam—David Notkin (1953-2013) (June 2013)
- Editorial (May 2013)
- E-ditorial: State of the Journal (Feb 2013)
- State of the Journal (Jan/Feb 2012)
- Editorial: What Makes a Publication Archival? (March/April 2011)
- Editorial: State of the Journal (Jan/Feb 2011)
- Editorial (Nov/Dec 2010)
- How Special Should Issues Be? (Jul/Aug 2010)
Guest Editorials
- Special Section on the International Symposium on Software Testing and Analysis (March/April 2012)
- Special Section on the International Conference on Software Engineering (Jan/Feb 2012)
- Special Section on Socio-Technical Environment of Software Development Projects (May/June 2011)
- Search Based Software Engineering: Introduction to the Special Issue of the IEEE Transactions on Software Engineering (Nov/Dec 2010)
- 2008 Conference on the Foundations of Software Engineering (Sept/Oct 2010)
- The Best Papers of ISSTA (Jul/Aug 2010)
Reviewers List
Annual Index
Access All Recently Published TSE Articles
Subscribe to the RSS feed of latest TSE content added to the digital library
Sign up to receive email alerts when a new issue of TSE is online.