GROVE

The commuting diagrams we found while working in Feature Oriented Model Driven Development (FOMDD) were an indication of an important structure behind the metaprograms that drive the synthesis process.

This work pioneers study on the primitives that form synthesis metaprograms. This is then exploited to synthesize metaprograms, which when executed, will synthesize a target program of a product-line.

 
This document contains sections on the following topics:
Problem Statement

Reuse is a recurrent issue in software engineering. Model Driven Development (MDD) and Software Product Lines (SPL) are paradigms fostering reuse: MDD through transformations that reuse model mappings, and SPL through variability management that reuse functionality. Feature Oriented Programming (FOP) is a paradigm for SPL where programs are synthesized by composing features (i.e. increments in program functionality). Feature Oriented Model Driven Development (FOMDD) is a blend of FOP and MDD, aiming at the benefits of both paradigms. Models expressed in the same language can be refined by composing features, and can be derived from other models (i.e. transformations that map models written in different languages).

The benefits of the above paradigms have a counterpart, the complexity of program synthesis, i.e. metaprograms, increases. For instance, a typical FOMDD script to realize a synthesis metaprogram consists of around 500 LOC of batch processes that use 300 LOC of ANT makefiles and 2 KLOC of Java code, taking around 4 person/day to complete. Our intention is to accelerate the development of FOMDD synthesis metaprograms by generating them from abstract specifications.

 
Contribution
This work pioneers study on the primitives that form synthesis metaprograms. This is then exploited to synthesize metaprograms, which when executed, will synthesize a target program of a product-line. We generate the implementation code of the metaprograms (not programs) from abstract specifications. This is the core of the GeneRative metaprOgramming for Variable structurE approach (GROVE).
 
Introduction
Software product-line synthesis defines a process to synthesize individual programs. FOMDD combines the use of composition and derivation to realize synthesis. Our work exposed a fundamental relationship between model composition and derivation: commuting diagrams. This was symptomatic of an important structure behind our metaprograms that drive the synthesis process. Our work explores these ideas in relationship to product-line synthesis. This work describes a way to synthesize metaprograms, which when executed, will synthesize a target program of a product-line. Specifically, we elaborate on the generation of metaprograms from abstract specifications. We use commuting diagrams to generate a metaprogram from which our target program can be ultimately synthesized. This is the GeneRative metaprOgramming for Variable structurE (GROVE) approach.
 
Publications

Exploring Extensibility of Architectural Design Decisions
Salvador Trujillo, Maider Azanza, Oscar Diaz and Rafael Capilla.
In 2nd Workshop on SHAring and Reusing architectural Knowledge – Architecture, rationale and Design Intent (SHARK/ADI 2007) at 29th International Conference on Software Engineering (ICSE 2007). Minneapolis, MN, USA. 2007.

Towards Generative Metaprogramming
Maider Azanza, Salvador Trujillo, Oscar Diaz.
In 2nd Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE 2007). Braga, Portugal. 2007.

Generative Metaprogramming
Salvador Trujillo, Maider Azanza, Oscar Diaz.
In 6th International Conference on Generative Programming and Component Engineering (GPCE 2007). Salzburg, Austria. 2007.

 
Download
Under request, we may provide you the examples we used in this work. Please request to Salva Trujillo or Maider Azanza.
 
Further References

[1] S. Trujillo, D. Batory, O. Diaz. Feature Oriented Model Driven Development: A Case Study for Portlets. In 29th International Conference on Software Engineering (ICSE 2007). Minneapolis, MN, USA. 2007.

[2] O. Diaz, S. Trujillo, S. Perez. Turning Portlets into Services: Introducing the Organization Profile. In 16th International World Wide Web Conference (WWW 2007). Banff, Canada. 2007.

[3]  O. Diaz, S. Trujillo, and F. I. Anfurrutia. Supporting production strategies as refinements of the production process. Sofware Product Line Conference (SPLC 2005), Rennes, France, 2005. SPLC.

[4]  D. Batory, J.N. Sarvela, and A. Rauschmayer, “Scaling Step-Wise Refinement”. IEEE TSE, June 2004.

[5]  O. Diaz, S. Trujillo, and F. I. Anfurrutia. Xml Refinements. Draft, 2006


Onekin | struji.com

Copyright © Onekin Research Group. All rights reserved.
Revised: Jun 29th, 2007.

Report questions/problems: Salva Trujillo Maider Azanza