학술논문

Evolutionary Perspective of Structural Clones in Software
Document Type
Periodical
Source
IEEE Access Access, IEEE. 7:58720-58739 2019
Subject
Aerospace
Bioengineering
Communication, Networking and Broadcast Technologies
Components, Circuits, Devices and Systems
Computing and Processing
Engineered Materials, Dielectrics and Plasmas
Engineering Profession
Fields, Waves and Electromagnetics
General Topics for Engineers
Geoscience
Nuclear Engineering
Photonics and Electrooptics
Power, Energy and Industry Applications
Robotics and Control Systems
Signal Processing and Analysis
Transportation
Cloning
Software systems
Maintenance engineering
Tools
Software maintenance
Java
Clone evolution
software clones
structural clones
software engineering
software evolution
software design
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.