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.

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:

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 (see FOSD).

MM models a product line of product lines (PL**2). That is, different MM expressions correspond to GenVoca models of different product lines..

Applications

gollark: Electron apps are basically just entire giant Chrome instances for one app. It's hilariously wasteful.
gollark: Is it though? Is it really?
gollark: Basically fine as long as you do not do it infinitely.
gollark: On NIs it'll always be on the back anyway, so that's not massively relevant. I might just have gotten the type wrong.
gollark: On what, the turtle or NI?

See also

  • Feature Oriented Programming—basic overview
  • FOSD origami
  • FOSD Program Cubes—multi-dimensional product lines
  • FOSD Feature Interactions—other operations on features, including an operation designating feature interaction

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.