Feature Nets: behavioural modelling of software product lines - Muschevici, Radu (2016)
Software product lines (SPL) are diverse systems that are developed using a dual engineering process: (a)family engineering deﬁnes the commonality and variability among all members of the SPL, and (b) application engineering derives speciﬁc products based on the common foundation combined with a variable selection of features. The number of derivable products in an SPL can thus be exponential in the number of features. This inherent complexity poses two main challenges when it comes to modelling: Firstly, the formalism used for modelling SPLs needs to be modular and scalable. Secondly, it should ensure that all products behave correctly by providing the ability to analyse and verify complex models eﬃciently. In this paper we propose to integrate an established modelling formalism (Petri nets) with the domain of software product line engineering. To this end we extend Petri nets to Feature Nets. While Petri nets provide a framework for formally modelling and verifying single software systems, Feature Nets oﬀer the same sort of beneﬁts for software product lines. We show how SPLs can be modelled in an incremental, modular fashion using Feature Nets, provide a Feature Nets variant that supports modelling dynamic SPLs, and propose an analysis method for SPL modelled as Feature Nets. By facilitating the construction of a single model that includes the various behaviours exhibited by the products in an SPL, we make a signiﬁcant step towards eﬃcient and practical quality assurance methods for software product lines.