Introduction
Product Line Engineering (PLE) is becoming common practice in many domains such as automotive and avionics, due to the increasing complexity of software systems that warrant better support for reusable software artifacts. In such domains, many business contexts are use case-driven where use cases are the main artifacts driving requirements engineering and system testing practices []. To develop a new product in a new project, IEE analysts elicit requirements as a use case diagram and its accompanying use case specifications. For each new customer of the product, they need to clone the current models, and negotiate variabilities with the customer to produce new use case models. This is a manual, error prone, and time-consuming practice since variability information is not explicitly represented.
The need for PLE support in the context of use case-driven development has already been acknowledged and several product line use case modeling and configuration approaches have been proposed []) do not support incremental reconfiguration of use case models resulting from changes in configuration decisions, e.g., a selected variant use case being unselected.
In practice, for example at IEE and for a variety of reasons, analysts manually assign traces from the configured use case models to other software and hardware specifications as well as to the customers requirements documents for external systems []. Furthermore, configuration decisions frequently change, resulting in the reconfiguration of Product Specific (PS) use case models. When the use case models are reconfigured for all decisions, including unchanged and unaffected decisions, manually assigned traces are lost. The analysts need to reassign all the traces after each reconfiguration. It is therefore vital to enable the incremental reconfiguration of use case models focusing only on changed decisions and their side-effects. With such support, the analysts could then reassign traces only for the parts of the reconfigured models impacted by decision changes. Our main motivation is to preserve the unimpacted parts of the PS use case models for evolving configuration decisions, thus avoiding manual effort during reconfiguration such as manual updating of traces from PS models to other documents.
In our previous work [] supporting three crucial activities. First, the analyst is guided to make configuration decisions in an appropriate order. Second, the consistency of configuration decisions is ensured by automatically identifying contradicting decisions. Third, PS use case diagram and specifications are automatically generated from PL models and configuration decisions. Our configuration approach is supported by a tool, PUMConf , integrated with IBM DOORS.
In this paper, we propose, apply and assess an incremental reconfiguration approach, based on PUM and PUMConf, to support the evolution of configuration decisions for PL use case models. We do not address here evolving PL use case models, which is an entirely different problem and needs to be treated in a separate approach. In our proposed solution, the PS use case diagram and specifications are incrementally reconfigured by focusing only on the changed configuration decisions and their side effects. To do so, we implemented a model differencing pipeline which identifies decision changes to be used in the regeneration of PS models. There are two sets of decisions: (i) the set of previously made decisions used to initially generate the PS use case models and (ii) the set of decisions including decisions changed after the initial generation of the PS models. Our approach compares the two sets to incrementally regenerate the PS use case models. We extended our configurator, PUMConf , to fully automate our approach. We also report an industrial case study demonstrating its applicability and benefits.
This paper is structured as follows. In Sect..
Related Work
Several use case-driven configuration approaches were proposed in the literature (e.g., [] propose an approach as an extension of DOPLER to identify the impact of changes of variability information on products. For a change in a variability model of a product line, the approach identifies whether configuration decisions for the existing products need to be changed as well. Then, it reconfigures all the products in the product line and also compares the reconfigured products with the previous version to inform the analysts about the differences in the products. However, it focuses on changes in variability information, not changes in decisions. It is also not incremental, limiting its applicability, as the reconfiguration encompasses all the decisions, not only the affected ones.
Considerable attention in the model-driven engineering research community has been given to incremental model generation/transformation for model changes (e.g., [). To the best of our knowledge, our approach is the first work which supports incremental reconfiguration of PS use case models for evolving configuration decisions in a product family.