FOSD metamodels


Feature Oriented Software Development is a general paradigm for software generation, where a model of a product line is a tuple of 0-ary and 1-ary functions. This page discusses a more abstract concept of models of product lines of product lines called metamodels, and product lines of product lines of product lines called meta-metamodels, and further abstract concepts.

Metamodels

A metamodel is a model whose instances are models. A GenVoca model of a product line is a tuple whose components are features. An extension of a model is a "meta-feature", which is a tuple of deltas that can modify an existing product line by modifying existing features and adding new features. As a simple example, consider GenVoca model M that contains three features a-c:
Suppose meta-model MM contains three meta-features AAA-CCC, each of which
is a tuple with a single non-identity feature:
where 0 is the null feature. Model M is constructed by adding the meta-features of MM, where + is the composition operation.
MM models a product line of product lines. That is, different MM expressions correspond to GenVoca models of different product lines..

Applications