280 likes | 407 Views
De-/ Re - constructing Model Transformation Languages. Eugene Syriani Hans Vangheluwe. Overview. Problematic De-Constructing Transformation Languages De-construction process Collection of model transformation primitives Re-Constructing Transformation Languages
E N D
De-/Re-constructing Model Transformation Languages Eugene SyrianiHans Vangheluwe
Overview • Problematic • De-Constructing Transformation Languages • De-construction process • Collection of model transformation primitives • Re-Constructing Transformation Languages • Common transformation languages • More esoteric features • Asynchronous transformations • Conclusion
Motivation • Rule-based transformation languages: most-widely used paradigm • Many MTLs co-exist today ATL, FUJABA, GReAT, MoTif, QVT, VIATRA, VMTS, … • Each one is better for solving a specific class of problems • Problems are very different in nature • Not conceivable to have one ultimate MTL • Feature-specific MTL • Domain-specific MTL
Feature Matrix[1] [1] Syriani, E. and Vangheluwe, H. (2009) Matters of model transformation. Technical Report SOCS-TR-2009.2. McGill University, School of Computer Science.
Problematic Given this diversity, it is hard to: • Compare expressiveness • Provide framework for interoperability • Rigorously design transformation languages
Proposed Solution Provide a common basis for MTLs, in terms of primitive building blocks • De-Construction • Small set of most primitive constructs • Re-Construction • Existing MTLs in terms of primitive building blocks • Optimization • Discover new MTLs
Commonality Structure & Semantics • Pre-/Post- condition patterns • Matching • Rewriting • Validation of consistent rule application • Matches manipulation • Iteration • Roll-back • Control flow • Choice • Concurrency • Composition
Requirements • Minimal collection of model transformation primitives • De-construct to optimal granularity • Not restricted to any form of specification of transformation unit • Rule-based, Constraint-based, Function-based • Bidirectional, Functional • Query, Transformation • Modularly encapsulate combinations of primitives • Composition • Re-use • Interface • Executable • Self-contained • Easily integrable
T-Core Module • Pattern representation • Matches processed structure • 8 primitive transformation operators
T-Core Module • Dissociatepre- from post- condition patterns • Query vs. Rule
T-Core Module • Packet • Host graph • MatchSet • Matches for a given pattern • Match • Sub-model of interest • Pivot • Node binding (across match sets) • Parameterized rule
T-Core Module • DissociateMatch from Rewrite • match-rewrite- match-rewrite • match-match-match • match-match-rewrite-rewrite • Matcher • Find all (parameter) • Store matches in packet • Rewriter • Apply transformation • Consume matches • Resolver • Conservative check of conflicts among match sets • Customizable resolution function
T-Core Module • Iterator • Randomly choose a match in a match set • Number of iterations • Rollbacker • Ensure transactional behaviour • Restore packet when all matches exhausted • Number of iterations • Combine to handle multiple matches
T-Core Module • Selector • Can store packets • Select one on demand • Synchronizer • Can store packets • Merge packets on demand • Customizable merge function
T-Core Module • Meaningfully compose its sub-primitives • User-defined composition • Common interface
Transformation language Combination of • Primitive transformation constructs • (Sub-set of) T-Core module • Glue language • Programming language (Python, Java) • Modelling language (Activity Diagram, Petri-Net, DEVS)
Fujaba: for-all Pattern[2] [2] Fischer, T., et. al., (2000) Story diagrams: A new graph rewrite language based on the UML and Java. In Ehrig, H., et al., (eds.), Theory and Application of Graph Transformations, LNCS, 1764, pp. 296–309. Springer-Verlag.
Amalgamation rules:Repotting the geraniums[3] “Repot all flowering geraniums whose pots have cracked” [3] Rensink, A. and Kuperus, J.-H. (2009) Repotting the geraniums: On nested graph transformation rules. In Margaria, T., Padberg, J., and Taentzer, G. (eds.), GT-VMT’09, EASST.
MoTif-Core:Asynchronous transformations • MoTif-Core =T-Core + DEVS[4] • 1-1 mapping between • T-Core primitive operator • DEVS atomic/coupled model • T-Core primitive embedded in the state of DEVS model [4] Zeigler, B. P. (1984) Multifacetted Modelling and Discrete Event Simulation. Academic Press.
MoTif-Core: timed MTLs MoTif AtomicRule [5] • Time • Exceptions [5] Syriani, E. and Vangheluwe, H. (2009) Discrete-Event Modeling and Simulation: Theory and Applications. CRC Press, Boca Raton (USA).
MoTif-Core: Asynchronous MTLs GReAT Test/Case block [5] • Asynchrony • Parallelism [5] Agrawal, A., Karsai, G., Kalmar, Z., Neema, S., Shi, F., and Vizhanyo, A. (2006) The design of a language for model transformations. SoSym, 5, 261–288.
MoTif-Core: Visual representation More Readable: Repotting the geraniums
? Conclusion • Collection of MT primitives: T-Core • Re-construction of existing MTLs (comparable) • New-Construction of novel MTLs • Domain-specific, Problem-specific • Framework for building such languages • Efficiently implement these primitives • Map other MTLs to T-Core