PAxSPL: A generic framework to support the planning of SPL reengineering - Marchezan, Luciano (2020)
Software Product Line (SPL) is a well-known approach for systematically creating reusable software assets and customized software products for a specific domain or market segment. Among the different approaches for adopting SPL, the extractive approach is a promising solution for organizations that intend to transform their legacy applications into an SPL. In this sense, the SPL reengineering process emerges as a possible strategy for applying the SPL extractive approach. Another important concept related to SPL development is scoping. The SPL scoping process is conducted for defining the boundaries of an SPL, being one of the core planning activities performed during SPL development. Although not deeply discussed in technical SPL contributions, activities to support the definition of SPL development budgets and cost estimations are essential. There are several studies proposed for handling SPL reengineering such as processes, tools, frameworks, meta-models among others. Due to the diversity of options found in daily practice of software development, a rigorous analysis of contexts is critical to instantiate these proposals. As there are different scenario variables, such as available artifacts and team experience, the activities, and techniques used to perform SPL reengineering or SPL scoping tasks may change, requiring from software engineers to adapt their approaches as a means to satisfying the companies’ scenarios. To the best of our knowledge, however, there is a lack of an approach supporting these tasks considering different scenarios. Therefore, in this work we propose the Prepare, Assemble, and Execute Framework SPL reengineering (PAxSPL). PAxSPL is composed of three different aspects: a process, guidelines, and a supporting tool. The process provides support to prepare, assemble, and execute feature retrieval and analysis alongside activities considering SPL scoping concepts. Thus, users may plan the scope of their SPL while conducting the retrieval and analysis of features by applying retrieval techniques. The guidelines were created to aid users with low experience in SPL reengineering or SPL scoping. The supporting tool was developed to reduce the effort of managing and executing an SPL reengineering process. This effort reduction is done by automatizing the management and generation of reports. For evaluating PAxSPL customization capabilities, we extracted eight different scenarios from the literature used as input for application of PAxSPL. The results evidenced that PaxSPL is customizable to a variety of scenarios with different artifacts, retrieval techniques, and activities. However, we also identified some challenges that limited the customization level of our framework. Based on these challenges, we perform improvements to increase the PAxSPL customization level.