Product Line Engineering is a key practice in many software development environments where systems are complex and developed for multiple customers with varying needs. At the same time, many business contexts are use case-driven where use cases are the main artifacts driving requirements elicitation and many other development activities [1], [2] . In such contexts, variability information is often not explicitly represented, which leads to the ad-hoc change management of development artifacts such as use cases, domain models and test cases in product families. This work is about achieving automated and effective change management in a product family within the context of use case-driven development and system testing. To this end, we provide the following: A modeling methodology for capturing variability information in Product Line (PL) use case and domain models. The modeling methodology enables analysts to capture and document variability in PL use case diagrams, use case specifications, and domain models, without further requiring a feature model. For PL use case diagrams and domain models, it relies on extensions already discussed in the literature. Further, for PL use case specifications, we build on Restricted Use Case Modeling (RUCM), which includes a template and restriction rules to reduce imprecision and incompleteness in use cases [3] . An approach for automated configuration of Product Specific (PS) use case and domain models. The use casedriven configuration approach is built on top of our modeling methodology. Based on a tool (PUMConf), it supports automated configuration that enables effective product-line management in use case-driven development, without requiring additional modeling artifacts and traceability to external models such as feature models [4] . A change impact analysis approach for evolving configuration decisions in PL use case models. Our approach automatically identifies decisions impacted by changes in configuration decisions on PL use case models. It supports three activities. First, the analyst proposes a change but does not apply it to the corresponding configuration decision. Second, the impact of the proposed change on other configuration decisions are automatically identified. To this end, we developed an algorithm, which enables reasoning on subsequent decisions as part of our impact analysis approach. The analyst is informed about the change impact on decisions for the PL use case model. Based on this, the analyst should decide whether the proposed change is to be applied to the corresponding decision. Third, the PS use case models are incrementally regenerated only for the impacted decisions after the analyst actually makes all the required changes. To support these three activities, we extended our configurator, PUMConf [5], [6] . An approach for automated classification and prioritization of system test cases in a family of products. Our approach automatically identify system test cases impacted by changes in configuration decisions in PL use case models, when a new product is configured in the product family. The initial product is tested individually and the following products are tested using techniques inspired by regression testing, i.e., test case classification and prioritization, based on configuration decision changes between the previous product(s) and the new product to be tested.
In REF , the authors present a tool-supported approach for analysing change impact regarding evolving configurations of product line use case models, which applies an idea similar to ours of impact analysis.
Change Impact Analysis for Evolving Configuration Decisions in Product Line Use Case Models
2019 IEEE/ACM 10th International Symposium on Software and Systems Traceability (SST)
2019 IEEE/ACM 10th International Symposium on Software and Systems Traceability (SST)
Computer Science