Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
FOSD metamodels

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.

We don't have any images related to FOSD metamodels yet.
We don't have any YouTube videos related to FOSD metamodels yet.
We don't have any PDF documents related to FOSD metamodels yet.
We don't have any Books related to FOSD metamodels yet.
We don't have any archived web articles related to FOSD metamodels yet.

Metamodels

A metamodel is a model whose instances are models.1 A GenVoca 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 ] {\displaystyle M=[a,b,c]}

Suppose meta-model MM contains three meta-features AAA-CCC, each of which is a tuple with a single non-identity feature:

M M = [ A A A , B B B , C C C ] = [ [ a , 0 , 0 ] , [ 0 , b , 0 ] , [ 0 , 0 , c ] ] {\displaystyle {\begin{aligned}MM&=[AAA,BBB,CCC]\\&=[[a,0,0],[0,b,0],[0,0,c]]\end{aligned}}}

where 0 is the null feature. Model M is constructed by adding the meta-features of MM, where + is the composition operation (see FOSD).

M = A A A + B B B + C C C expression = [ a , 0 , 0 ] + [ 0 , b , 0 ] + [ 0 , 0 , c ] substitution = [ a + 0 + 0 , 0 + b + 0 , 0 + 0 + c ] composition = [ a , b , c ] simplification where  0 + x = x + 0 = x {\displaystyle {\begin{aligned}M&=AAA+BBB+CCC&{\text{expression}}\\&=[a,0,0]+[0,b,0]+[0,0,c]&{\text{substitution}}\\&=[a+0+0,0+b+0,0+0+c]&{\text{composition}}\\&=[a,b,c]&{\text{simplification where }}0+x=x+0=x\end{aligned}}}

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

References

  1. "Scaling Step-Wise Refinement" (PDF). ftp://ftp.cs.utexas.edu/pub/predator/TSE-AHEAD.pdf