Trustworthy Systems

Supplementing product families with behaviour


Peter Hoefner, Ridha Khedri and Bernhard Möller

Universitaet Augsburg


McMaster University


A common approach to dealing with software requirements volatility is to define product families instead of single products. In earlier papers we have developed an algebra of such families that, roughly, consists in a more abstract view of and-or trees of features as used in Feature-Oriented Domain Analysis. A product family is represented by an algebraic term over the feature names; it can be manipulated using equational laws such as associativity or distributivity.

Initially, only ``syntactic'' models of the algebra were considered, giving more or less just the names of the features used in the various products of a family and certain interrelations such as mandatory occurrence and implication between or mutual exclusion of features, without attaching any kind of ``meaning'' to the features. While this is interesting and useful for determining the variety and number of possible members of such a family, it is wholly insufficient when it comes to talking about the correctness of families in a semantic manner.

In the present paper we define a class of ``semantic'' models of the general abstract product family algebra that allows treating very relevant additional questions. In these models, the features of a family are requirements scenarios formalised as pairs of relational specifications of a proposed system and its environment.

However, the paper is just intended as a proof of feasibility; we are convinced that the approach can also be employed for different semantic models such as general denotational or stream-based semantics.

BibTeX Entry

    author           = {H\"ofner, Peter and Khedri, Ridha and M\"oller, Bernhard},
    journal          = {International Journal of Software and Informatics (IJSI)},
    keywords         = {formal model driven software development, software family, product family algebra, functional
                        requirements, requirements scenarios, semantics},
    month            = jul,
    number           = {1-2, Part II},
    pages            = {245--266},
    paperurl         = {},
    title            = {Supplementing Product Families with Behaviour},
    volume           = {5},
    year             = {2011}