Samiksha Jaiswal (Editor)

FOSD metamodels

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

Feature Oriented Software Development (FOSD) is a general paradigm for program generation in software product lines, 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 higher level concepts.

Contents

MetaModels

A meta-model is a model whose instances are models. A GenVoca model of a product line is a tuple whose components are features (0-ary or 1-ary functions). A 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 ]

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

MM = [ AAA, BBB, CCC ] = [ [a,0,0], [0,b,0], [0,0,c] ]

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 = AAA + BBB + CCC -- 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

MM models a product line of product lines (PL**2). That is, different MM expressions correspond to GenVoca models of different product lines. Meta-metamodels describe product lines of product lines of product lines (PL**3), and so on.

Applications

  • AHEAD Tool Suite and Extensible Java Preprocessors
  • SVG Applications
  • Expression Problem or the Extensibility Problem
  • Multi-Dimensional Separation of Concerns
  • References

    FOSD metamodels Wikipedia


    Similar Topics