Software Product Line Engineering (SPLE) methods and techniques are profitable when several similar software products need to be developed, thus in practice adoption of SPLE may occur when existing product artifacts already exist. Software requirements are essential drivers of most software development processes and the basis of all other stages, including design, implementation, and testing. We use them for detecting the features of similar software products, analyzing their commonality and variability, and transforming the artifacts into reusable ones (commonly termed core assets).
The approach proposes an automated extractive method to generate core requirements from product requirements written in a natural language. The approach is based on an ontological framework that represents variability along two dimensions: product – concentrating on differences in the number of elements in the various products, and element – focusing on differences among elements and their variants as appearing in different products.
The suggested method supports clustering similar requirements using common semantic measures and clustering algorithms, capturing variable parts by parsing and associating relevant semantic roles, and generating core requirements based on the ontological variability framework.
The method inputs are requirements that specify behaviors, namely, primarily functional requirements. The outputs are core requirements that include mandatory and optional parts, as well as variants.