A Survey for Management-Oriented Code Clone Research
Xiao-Hong SU,Fan-Long ZHANG
DOI: https://doi.org/10.11897/SP.J.1016.2018.00628
2018-01-01
Abstract:Software reuse is a common technology in software development which would introduce amount of code clones into the software.The existence of code clones increases the cost of software maintenance.The request for code clone maintenance given birth to a series of researches,such as the detection,analysis,maintenance of code clones.Concretely,clone detection aims to help developer collect all the code clones from software repository,clone analysis aims to help developer understand the presence of code clones as well as the impact to the software,and clone maintenance aims to help developers solve the problems caused by code clones.Though the researches have been launched much,the key problems of clone maintenance,i.e.the complexity and high cost of clone maintenance have not been solved effectively.To reduce the cost of software maintenance and improve the maintainability of the software,the management of code clones is imperative.However,the current studies on code clones are independent of each other.And unfortunately,the current clone management methods are not associated with the development process of the software,accordingly,the complexity of clone maintenance cannot be handled well.In this paper,we make a survey of the state-of-art achievements in the code clone researches.Firstly,we analyze the hotspots and trends of clone research,and find that clone detection and analysis were the hotspot research in the past,and the clone maintenance and clone management will become the hotspot research in the future.After that,we investigate all the clone researches from the different perspectives including clone definition,clone representation,clone detection,clone analysis and clone maintenance.Then,we analyze the current research status of clone management,and focus on the relationship among these researches.We also point out the shortage and the difficulties of current clone management methods from the point of view on clone management.We believe that clone management should combine with clone detection,analysis,maintenance as well as the software development process so as to effectively reduce the cost for maintaining clones at the software development phase.Yet,it will also undoubtedly increase the difficulty for clone management.To this end,in section of the future research prospects,we propose an approach of clone management that orienting to software development process,which aims to maintain and manage code clones along with software development process through combining clone detection,clone analysis,clone maintenance.In our approach,we believe that the clone representation and clone evaluation will be the key point in clone management.Finally,we discuss the directions and trends of future research.Clone management has brought new vitality to code clone research,which has aroused widely attention from both academia and industry,and it is significant in improving the maintainability,comprehensibility and quality of the software.