FOSD Metamodels
   HOME

TheInfoList



OR:

Feature-oriented software development (FOSD) is a general paradigm for software generation, where a model of a product line is a tuple of 0-ary and 1-ary functions (program transformations). This page discusses a more abstract concept of models of product lines of product lines (PL**2) called metamodels, and product lines of product lines of product lines called meta-metamodels (PL**3), and further abstract concepts.


Metamodels

A metamodel is a model whose instances are models. A
GenVoca In computer programming, feature-oriented programming (FOP) or feature-oriented software development (FOSD) is a programming paradigm for program generation in software product lines (SPLs) and for incremental development of programs. History ...
model of a product line is a tuple whose components are features (0-ary or 1-ary functions). An extension (a.k.a. delta or refinement) 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: M = a, b, c /math> Suppose meta-model MM contains three meta-features AAA-CCC, each of which is a tuple with a single non-identity feature: \beginMM = AAA, BBB, CCC \ \ \ \ \ \ \ \ \ = [a,0,0 [0,b,0">[a,0,0.html" ;"title="[a,0,0">[a,0,0 [0,b,0 [0,0,c">,0,0">[a,0,0<_a>_[0,b,0.html" ;"title="[a,0,0.html" ;"title="[a,0,0">[a,0,0 [0,b,0">[a,0,0.html" ;"title="[a,0,0">[a,0,0 [0,b,0 [0,0,c]\end where 0 is the null feature. Model M is constructed by adding the meta-features of MM, where + is the composition operation (see feature-oriented_programming, FOSD). \beginM = AAA + BBB + CCC \qquad \qquad \text \\\quad \ =
,0,0 The comma is a punctuation mark that appears in several variants in different languages. It has the same shape as an apostrophe or single closing quotation mark () in many typefaces, but it differs from them in being placed on the baseline ...
,b,0 ,0,c\qquad \text\\\quad \ = +0+0, 0+b+0, 0+0+c\text\\ \quad \ = ,b,c\qquad \qquad \qquad \qquad \qquad \ \text\end{array} MM models a product line of product lines (PL**2). That is, different MM expressions correspond to GenVoca models of different product lines..


See also

*
Feature-oriented programming In computer programming, feature-oriented programming (FOP) or feature-oriented software development (FOSD) is a programming paradigm for program generation in software product lines (SPLs) and for incremental development of programs. History ...
– basic overview *
FOSD origami Feature-oriented programming or ''feature-oriented software development (FOSD)'' is a general paradigm for program synthesis in software product lines. The feature-oriented programming page is recommended, it explains how an FOSD model of a domain ...
* FOSD program cubes – multi-dimensional product lines * FOSD feature interactions – other operations on features, including an operation designating feature interaction


References

Feature-oriented programming