FOSD metamodels

FOSD metamodels

Feature Oriented Programming or "Feature Oriented Software Development (FOSD)" is a general paradigm for program synthesis in software product lines. Please read the Feature Oriented Programming page that explains how an FOSD 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 (PL**2) called "metamodels", and product lines of product lines of product lines called "meta-metamodels" (PL**3), and higher level concepts.

MetaModels

A metamodel is a model whose instances are models.cite web | title=Scaling Step-Wise Refinement | url=ftp://ftp.cs.utexas.edu/pub/predator/TSE-AHEAD.pdf] A GenVoca model can be expressed as a tuple whose components are features(0-ary or 1-ary functions). A refinement (delta) ofa model is a "metafeature", which is a tuple of deltasthat can modify existing features and can add new features.As a simple example, consider GenVoca model M that contains three features a-c:

M = [ a, b, c ]

Suppose metamodel MM contains three metafeatures AAA-CCC, each of whichis a tuple with a single non-identity feature:

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

where 1 is the identity function (i.e., a feature or feature refinement thatdoes nothing). Model M is defined by the expression using metamodel MM:

M = AAA • BBB • CCC -- expression = [a,1,1] • [1,b,1] • [1,1,c] -- substitution = [a•1•1, 1•b•1, 1•1•c] -- composition = [a,b,c] -- simplification where 1•x=x•1=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-metamodelsdescribe product-lines of product-lines of product-lines (PL**3),and so on.

Applications

There is an interesting set of metamodeling examples in FOSD. Among the many include:

* [ftp://ftp.cs.utexas.edu/pub/predator/ahead.pdf AHEAD Tool Suite and Extensible Java Preprocessors]
* [ftp://ftp.cs.utexas.edu/pub/predator/icmt08.pdf SVG Applications]
* [ftp://ftp.cs.utexas.edu/pub/predator/ECOOP2005.pdf Expression Problem or the Extensibility Problem]
* [ftp://ftp.cs.utexas.edu/pub/predator/OrigamiMDSC.pdf Multi-Dimensional Separation of Concerns]

More applications to be supplied.

See Also

*Feature Oriented Programming
*FOSD Origami
*FOSD Feature Interactions

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • FOSD origami — Feature Oriented Programming or Feature Oriented Software Development (FOSD) is a general paradigm for program synthesis in software product lines. Please read the Feature Oriented Programming page that explains how an FOSD model of a domain is a …   Wikipedia

  • Feature Oriented Programming — (FOP) or Feature Oriented Software Development (FOSD) is a general paradigm for program synthesis in software product lines. FOSD arose out of layer based designs of network protocols and extensible database systems in the late 1980s cite web |… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”