Transformation Language Integration based on Proles and Higher Order Transformations


No comments posted yet


Slide 1

Transformation Language Integration based on Profiles and Higher Order Transformations Pieter Van Gorp, Anne Keller, Dirk Janssens University of Antwerp, OptiMMA project

Slide 2

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

Slide 3

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

Slide 4

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!

Slide 5

Language Engineering: The Goal

Slide 6

The good News...

Slide 7

The Solution

Slide 8

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

Slide 9

A Core Transformation Modeling Profile Less than 15 syntactical constructs!

Slide 10

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

Slide 11

Example: “Extract Interface” refactoring (1/2)‏ The refactoring makes commonality explicit EXAMPLE INPUT EXAMPLE OUTPUT

Slide 12

Example: “Extract Interface” refactoring (2/2)‏ Transformation Model in the CORE Profile

Slide 13

+ 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)‏

Slide 14

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!

Slide 15

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”!

Slide 16

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!

Slide 17

More human-friendly Transformation Model Less Operational Syntax extension understood by any profile-enabled editor, out-of-the-box!

Slide 18

Higher Order Transformations: Why? <<copy>> <<onCopy>> ... <<create>> <<destroy>> ...

Slide 19

Larger Example: Copying Class Hierarchies! Transformation model applying profile extension Rule that applies <<copy>>, etc.

Slide 20

Application of <<copy>> in rewrite rule

Slide 21

Output of Higher Order Transformation . . . Only Core profile elements => can be processed by any compliant transformation tool!

Slide 22

Ongoing Work: Hybrid Transformation CFLOW Keep evaluating these two rules until both fail to match Result of Higher Order Transformation

Slide 23

Future Work: Bootstrapping, Online Repository Engineering better Transformation Languages, for multiple tools! Incremental Bidirectional, NACs, Quantifiers, ... Bootstrapping, Online H.O.T. Repository

Slide 24

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!

Summary: Research talk at the first international Software Language Engineering conference in Toulouse, France, 09/2008.

Tags: uml mda mde

More by this User
Most Viewed