Calice - catálogo para a análise do impacto de clones em classes de customização de uma linha de produto de software global - Barbosa, Jefferson da Silva (2018)
Developers often adopt cloning practices to speed up implementation. However, cloning-andowning, in the long run, can severely affect software evolution, as changes in cloned fragments may require modifications in many parts of the system. This problem scales if cloning is applied in classes used to add, remove, or adapt features in a Software Product Line (SPL), because these classes are related to several features and products. Nevertheless, it is hard to know to which extent cloning in customization classes can impact a software project. Thus, this work first conducts an empirical study, within a SPL used worldwide, called here Global SPL (GSPL), to analyze cloning practices and how cloned parts relate to the maintainability of customization classes. To construct the dataset of this work, we collected and analyzed clones inside the GSPL customization classes during 13 months, involving 70 types of customization classes. In parallel, the respective issues were collected from the issue tracking tool of the GSPL project, obtaining over 140 issues related to customization classes. After that, we confronted the time spent to solve each issue with the fact whether it comes from cloning or not. Then, we collected measures related to complexity, modifiability and size of the classes to make an analysis based on the relationship between clone and maintainability. At the end, this work proposes a clone impact catalog to help developers prioritize refactoring of code fragments. This catalog helps to understand how cloning associates to maintainability in the context of mass customization, giving insights about cloning evolution and its impacts in a GSPL project.