Font Size: a A A

Research On Code Clone Extension Analysis And Management Technology

Posted on:2014-10-30Degree:DoctorType:Dissertation
Country:ChinaCandidate:G ZhangFull Text:PDF
GTID:1108330434471197Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Code clones are identical or similar code segments in software programs. It is very often in both industrial and open source software. Usually, code clones are introduced by copy-paste-modify practices during software development. The existence of code cloning impact software development and maintenance in both short-term and long-term. Researchers have proposed many techniques on clone detection, clone evolution, clones removal and clone management, et al. However, due to most of researches focus on code aritifacts seperately and lack of enough concern on software development context during code cloning, little effective support can be provided to alleviate maintenance problems caused by code clones.The research of the paper put stakeholder’s interests as the central concern, and study code cloning practices from technical, personal, and organizational perspectives. The work composed in three research steps, including the high-level concept analysis of code clone, the reason analysis of code clone and customizable clone monitoring.The first step of the research is to improve the accuracy and the understability of code clone detection results. We argue that the purpose of code clone detection is not to detect the duplicated code fragments, but rather to provide valuable information to users. Therefore, we inject AST information to token based clone detection techniques to improve the basic clone detection techniques, and then use area density based approach to find the structural clones. The structural clone detection technique effectively improve the abstraction level of clone data. Finally we adopt the force guidance algorithm to support structural clone data visualization.Then we conducted an industrial study on investigating reasons of cloning practices in large-scale software development. Our study involves code analysis, questionnaire survey, and interviews with developers, and gathers solid empirical data about how de-velopers clone and why during different phases of clone lifecycle in industrial develop-ment. The results of our study suggest that cloning is not simply a technical issue. It must be interpreted and understood in larger context in which code clones occur and evolve. Within these contexts, there are several adjustable factors and two critical points that affect the introduction, existence, and removal of clones. These adjustable factors and critical points reveal opportunities to improve cloning practices in industrial development from technical, personal, and organizational perspectives Thus, we come to a opinion that an effective clone management framework should be stakeholder centric. It should provide timely and effective feedback to stakeholders, and finally to improve the code clone situation of code bases and developers. Based on the idea, we propose a code cloning monitoring and management approach. We give the comprehensive information model of code clone and defined the CCEML (Code Clone Event Monitoring specification Lanaguage) to fulfill the customizable requirement of different stakeholder on code clone monitoring.
Keywords/Search Tags:code clone, software maintenance, human-centric software engineering, structural clone, clone detection, visualization, code clone lifecycle, exper-imental software engineering, case study, clone management, clone moni-toring, domain model
PDF Full Text Request
Related items