Title of article :
A Toolset for Checking SPL Refinements
Author/Authors :
Ferreira, Felype Federal University of Pernambuco, Brazil , Gheyi, Rohit Federal University of Campina Grande, Brazil , Borba, Paulo Federal University of Pernambuco, Brazil , Soares, Gustavo Federal University of Pernambuco, Brazil
From page :
587
To page :
614
Abstract :
Developers evolve software product lines (SPLs) manually or using typical program refactoring tools. However, when evolving an SPL to introduce new features or to improve its design, it is important to make sure that the behavior of existing products is not affected. Typical program refactorings cannot guarantee that because the SPL context goes beyond code and other kinds of core assets, and involves additional artifacts such as feature models and configuration knowledge. Besides that, we typically have to deal with a set of alternative assets that do not constitute a well-formed program in an SPL. As a result, manual changes and existing program refactoring tools may introduce behavioral changes or invalidate existing product configurations. To reduce such risks, we propose approaches and implement four tools for making product line evolution safer. These tools check if SPL transformations preserve the behavior of the original SPL products. They implement different and practical approximations of refinement notions from a theory for safely evolving SPLs. Besides specifying the algorithms of each approach, we compare them with respect to soundness, performance and code coverage in 35 evolution scenarios of an SPL with 32 KLOC.
Keywords :
software product lines , safe evolution , refactoring , checking tools
Journal title :
Journal of J.UCS (Journal of Universal Computer Science)
Journal title :
Journal of J.UCS (Journal of Universal Computer Science)
Record number :
2715215
Link To Document :
بازگشت