|
|
Transformation Language Integration based on Profiles and Higher Order Transformations Pieter Van Gorp, Anne Keller, Dirk Janssens University of Antwerp, OptiMMA project http://www.fots.ua.ac.be/~pvgorp/
Presentation Outline Context & Problem Solution Profiles versus MOF extensions A CORE Profile for Transformation Modeling Extensions Syntax: profile extension Semantics: higher order transformation Conclusions, Ongoing work
Context Requirements of transformation writer 1 Provided by tool 2 Requirements of transformation writer 3 Provided by tool 5 Requirements of transformation writer 2 Provided by tool 1
Problem: Lack of Portability and Reuse Implemented on proprietary C repository of Progres. Not available in GreAT, MOLA, VMTS, ... Implemented as part of EMF/JMI based code generation framework. Not available in Progres and others. 1. Cannot apply both in one tool - lack of reuse! 2. Cannot even not switch between tools! - lack of portability!
Language Engineering: The Goal
The good News...
The Solution
Lightweight Solution: Less is More! Reusing existing standards/tools! UML good candidate Its concrete syntax makes a lot of sense! Modeling & Transformation tools already support it Transformation writers already know it Mature extension mechanism QVT/GTXL: No COTS tools from other domains No extension mechanism No control flow modeling language GTXL: no standard concrete syntax
A Core Transformation Modeling Profile Less than 15 syntactical constructs!
More than a machine exchange format! Without dedicated Transformation Model editor: Refactorings Pull Up Method, Encapsulate Field, Flatten Hierarchical Statemachine, ... Refinements UML2CSP Class2Relational Analysis2Design MagicDraw & Poseidon OK out-of-the-box Transformation Tool builders can do even better! Working directly in the exchange language is doable! (contrast to XML) Write minimal plug-ins
Example: “Extract Interface” refactoring (1/2) The refactoring makes commonality explicit EXAMPLE INPUT EXAMPLE OUTPUT
Example: “Extract Interface” refactoring (2/2) Transformation Model in the CORE Profile
+ T. R. G. Green. Cognitive dimensions of notations. In Alistair Sutcliffe and Linda Macaulay, editors, People and Computers V, pages 443–460, New York, NY, USA,1989. Cambridge University Press. Cognitive Evaluation (of the UML profile)
Standardization does not hinder innovation! CORE Profile: lowest common denominator - We showed it is already useful - It is NOT premature standardization (<> QVT relations) Profile extensions for new language constructs - Syntax= Plain UML - Semantics: Higher Order Transformations!
Example of useful profile extension Explicit enumeration of metaclass attributes: Tedious, Error-prone Becomes worse when copying multiple nodes with crosscutting edges and tens of attributes! Want to reason directly about “copy of m2”!
Example of useful profile extension (cont.) Explicit enumeration of metaclass attributes: Tedious, Error-prone Becomes worse when copying multiple nodes with crosscutting edges... Want to reason directly in terms of “copy of m2” and its parameters!
More human-friendly Transformation Model Less Operational Syntax extension understood by any profile-enabled editor, out-of-the-box!
Higher Order Transformations: Why? <<copy>> <<onCopy>> ... <<create>> <<destroy>> ...
Larger Example: Copying Class Hierarchies! Transformation model applying profile extension Rule that applies <<copy>>, etc.
Application of <<copy>> in rewrite rule
Output of Higher Order Transformation . . . Only Core profile elements => can be processed by any compliant transformation tool!
Ongoing Work: Hybrid Transformation CFLOW Keep evaluating these two rules until both fail to match Result of Higher Order Transformation
Future Work: Bootstrapping, Online Repository Engineering better Transformation Languages, for multiple tools! Incremental Bidirectional, NACs, Quantifiers, ... Bootstrapping, Online H.O.T. Repository
Conclusions Contribution: New approach to transformation language integration Profile mechanism instead of MOF extensions Higher Order Transformations Light-weight: Small core No new metamodel: UML (class, activity, profiles) No premature standardization Divide and Conqueror Tool Builders: performance, usability, ... Language Engineers: declarative constructs Open source examples: models, (higher ord.) transformations, ... Community Invitation beyond GT community!
by pvgorp | Added: 3 years ago
Language: English (Detected) | Topic: Science & Hi-Tech
| 68 Views | 2 Embeds |
Summary: Research talk at the first international Software Language Engineering conference in Toulouse, France, 09/2008.
| URL: |
No comments posted yet
Comments