JUCS - Journal of Universal Computer Science 17(5): 684-711, doi: 10.3217/jucs-017-05-0684
Automatically Checking Feature Model Refactorings
expand article infoRohit Gheyi, Tiago Massoni§, Paulo Borba|
‡ Campina Grande, Brazil§ Federal University of Campina Grande, Campina Grande, Brazil| Federal University of Pernambuco, Recife, Brazil
Open Access
Abstract
A feature model (FM) defines the valid combinations of features, whose combinations correspond to a program in a Software Product Line (SPL). FMs may evolve, for instance, during refactoring activities. Developers may use a catalog of refactorings as support. However, the catalog is incomplete in principle. Additionally, it is non-trivial to propose correct refactorings. To our knowledge, no previous analysis technique for FMs is used for checking properties of general FM refactorings (a transformation that can be applied to a number of FMs) containing a representative number of features. We propose an efficient encoding of FMs in the Alloy formal specification language. Based on this encoding, we show how the Alloy Analyzer tool, which performs analysis on Alloy models, can be used to automatically check whether encoded general and specific FM refactorings are correct. Our approach can analyze general transformations automatically to a significant scale in a few seconds. In order to evaluate the analysis performance of our encoding, we evaluated in automatically generated FMs ranging from 500 to 2,000 features. Furthermore, we analyze the soundness of general transformations.
Keywords
feature models, refactoring, Alloy