• DocumentCode
    175496
  • Title

    Automatic Identification of Important Clones for Refactoring and Tracking

  • Author

    Mondal, Malay ; Roy, Chanchal K. ; Schneider, Kevin A.

  • Author_Institution
    Dept. of Comput. Sci., Univ. of Saskatchewan, Saskatoon, SK, Canada
  • fYear
    2014
  • fDate
    28-29 Sept. 2014
  • Firstpage
    11
  • Lastpage
    20
  • Abstract
    Code cloning is a controversial software engineering practice due to contradictory claims regarding its impacts on software evolution and maintenance. While a number of studies identify some positive aspects of code clones, there is strong empirical evidence of some negative impacts of clones too. Focusing on the issues related to clones researchers suggest to manage code clones through detection, refactoring, and tracking. However, all clones in a software system are not suitable for refactoring or tracking. Thus, it is important to identify which clones we should consider for refactoring and which clones should be considered for tracking. In this research work we apply the concept of evolutionary coupling to identify clones that are important for refactoring or tracking. By mining software evolution history, we determine and analyze constrained association rules of clone fragments that evolved following a particular change pattern called Similarity Preserving Change Pattern and are important from the perspective of refactoring and tracking. According to our investigation with rigorous manual analysis on thousands of revisions of six diverse subject systems covering two programming languages, overall 13.20% of all clones in a software system are important candidates for refactoring, and overall 10.27% of all clones are important candidates for tracking. Our implemented system can automatically identify these important candidates and thus, can help us in better maintenance of code clones in terms of refactoring and tracking.
  • Keywords
    software maintenance; automatic identification; code cloning; constrained association rules; evolutionary coupling; important clones; programming languages; refactoring; similarity preserving change pattern; software engineering; software evolution; software evolution history mining; software maintenance; tracking; Association rules; Cloning; Couplings; Java; Maintenance engineering; Software systems; Association Rule; Clone Refactoring; Clone Tracking; Code Clones; Evolutionary Coupling;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference on
  • Conference_Location
    Victoria, BC
  • Type

    conf

  • DOI
    10.1109/SCAM.2014.11
  • Filename
    6975631