학술논문
Evolutionary Perspective of Structural Clones in Software
Document Type
Periodical
Author
Source
IEEE Access Access, IEEE. 7:58720-58739 2019
Subject
Language
ISSN
2169-3536
Abstract
Cloning in software represents similar program structures having its own benefits and drawbacks. Proper clone analysis is required to exploit the benefits of clones. A study of software clone evolution serves the purpose of understanding the maintenance implications of clones, which leads to their appropriate management. Structural clones (recurring patterns of simple clones) represent design level similarities in software. Evolutionary characteristics of clones can assess the relevance of those clones for software developers and maintainers. Although the evolution of simple clones has been thoroughly studied by researchers, the evolution of structural clones is still to be explored. In this paper, we study the evolution of structural clones by performing a longitudinal study on multiple versions of five Java systems. To perform a systematic study of the structural clone evolution, we define structural clones and their evolution patterns in a formal notation. Our results show that structural clones are more likely to change inconsistently, however, less frequently than simple clones, whereas the lifetime of the structural clones is similar to that of the simple clones. Evolutionary characteristics of structural clones suggest that they require more attention in their management. Analysis of structural clone evolution reveals similar reasons for changes, and similar trends in evolution patterns, for all subject systems. These trends reveal evolutionary characteristics of structural clones that can help in devising appropriate strategies for managing them, hence devising better clone management systems.