Enabling Automated Requirements Reuse and Configuration

Software-intensive systems belonging to a product line (PL) often have their shared architecture design available before they are developed. Therefore, the PL often has a large number of reusable and configurable requirements, which are naturally organized hierarchically based on the architecture of the PL. To enable reuse of requirements through configuration at the requirements engineering phase, it is important to provide a methodology (with tool support) to help practitioners to systematically and automatically develop structured and configuration-ready PL requirements repositories. Such a repository can cost-effectively facilitate the development of requirement repositories specific to individual products, i.e., individual systems. In addition, configurations to the repository at the requirements engineering phase of developing a system are part of its complete configurations and can be naturally carried on to downstream product configuration phases such as the design level configuration phase. A complete set system configurations can then be systematically obtained and managed. In this paper, we propose a methodology with tool support, named as Zen-ReqConfig, which is built on existing model-based technologies, natural language processing, and similarity measure techniques, for developing PL requirement repositories and facilitating requirements configuration. Zen-ReqConfig first automatically devises a hierarchical structure for a PL requirements repository. Then, it automatically identifies variabilities in textual requirements. Based on the developed configuration-ready PL requirements repository, it can then facilitate the configuration of products/systems at the requirements level. Zen-ReqConfig relies on two types of variability modeling techniques: cardinality-based feature modeling (CBFM) and a UML-based variability modeling methodology (named as SimPL). Both CBFM and SimPL have been used to address real-world variability modelling problems. To gain insights on the performance of Zen-ReqConfig, we evaluated it with five case studies and experimented with two different similarity measures and two different modelling methods: SimPL and CBFM. Results show that Zen-ReqConfig performed better when it is combined with the Jaro similarity measure. When Zen- ReqConfig is integrated with Jaro, it can (1) structure PL textual requirements under the most fit match criterion with high precision and recall, over 95% for both CBFM and SimPL; (2) identify variabilities in textual requirements under the most fit match criterion, with the average precision over 97% for SimPL and CBFM, and with the average recall over 94% for both SimPL and CBFM; and (3) generate repository structures within 1 second; 4) and allocate a requirement to the repository within 2 seconds on average. When looking into the impact of the two modelling methods on the performance of Zen-ReqConfig, we did not observe practical differences between SimPL and CBFM, implying that Zen-ReqConfig works well with both SimPL and CBFM. Pointer to the original paper: https://link.springer.com/article/10.1007/s10270-017-0641-6