Higher-Order Transformation Eugene SyrianiandHans Vangheluwe.

Slides:



Advertisements
Similar presentations
Knowledge Engineering for Planning Domain Design Ron Simpson University of Huddersfield.
Advertisements

Eugene Syriani and Huseyin Ergin University of Alabama Software Modeling Lab Software Engineering Group Department of Computer Science College of Engineering.
McGill University School of Computer Science Ph.D. Student in the Modelling, Simulation and Design Lab GraBaTS08 Eugene Syriani Hans Vangheluwe.
Comparison of Several Meta-modeling Tools 2 Yi Lu Computer Science Department McGill University
McGill University School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab Eugene Syriani.
Huseyin Ergin and Eugene Syriani University of Alabama Software Modeling Lab Software Engineering Group Department of Computer Science College of Engineering.
Model Transformation Eugene SyrianiandHans Vangheluwe.
Eugene Syriani * † Hans Vangheluwe * ‡ Amr Al Mallah * † * ‡ Tuscaloosa, AL Montreal, Canada Antwerp, Belgium.
Automated Test Design ™ © 2011 Conformiq, Inc. CONFORMIQ DESIGNER On ES v1.2.1 Stephan Schulz MBT Working Meeting/MTS#56, Göttingen.
AToMPM Solution for the IMDB Case Study Huseyin Ergin and Eugene Syriani.
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
Meng Tian Extension in Domain Specific Code Generation with Ontology Based Aspect Weaving Supervisor: Julian Rathke
Eugene Syriani Jeff Gray University of Alabama Software Engineering Group Department of Computer Science College of Engineering.
Hüseyin Ergin University of Alabama Software Modeling Lab Software Engineering Group Department of Computer Science College of Engineering.
Rule Based Operational Semantics Specification in Ptolemy Yanwar Asrigo COMP 763B - Modeling and Simulation Based Design 30 th April 2008.
McGill University School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab MPM’09 Explicit Transformation Modelling Thomas.
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
Institute For Software Integrated Systems Vanderbilt University Applications of Model Integrated Computing to The Synchronous Language Signal Ethan Jackson.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
1 Relational Algebra and Calculus Yanlei Diao UMass Amherst Feb 1, 2007 Slides Courtesy of R. Ramakrishnan and J. Gehrke.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Research in Compilers and How it Relates to Software Engineering Part III: Relation to SE Tomofumi Yuki EJCP 2015 June 22, Nancy.
Comparing M2T & M2M Complementary Approaches © 2008 INRIA, University of York & SINTEF Comparing M2T & M2M Complementary Approaches Hugo Bruneliere,
Domain specific languages for Business Process Management: a Case Study Janis Barzdins, Karlis Cerans, Mikus Grasmanis, Audris Kalnins, Sergejs Kozlovics,
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
McGill University Proposal Exam School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab Eugene Syriani.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
Advanced Applications Of Model-to-Model Transformation © 2008 INRIA Advanced Applications Of Model-to-Model Transformation Hugo Bruneliere & Frédéric.
Logic Programming Based Model Transformations An overview of related work.
Huseyin Ergin and Eugene Syriani. PROBLEM (DIDN’T CHANGE) Development of model transformation is still an error-prone and hard task. One reason is the.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.
Verification of Translation Model Transformations Levi Lúcio †, Bentley James Oakes, and Hans Vangheluwe †,‡ † School of Computer Science, McGill University,
Studying Model Transformation Chains for Model Driven Engineering Levi Lúcio, McGill University.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
AToM 3 : A Tool for Multi- Formalism and Meta-Modelling Juan de Lara (1,2) Hans Vangheluwe (2) (1) ETS Informática Universidad Autónoma de Madrid Madrid,
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Generative Programming. Automated Assembly Lines.
University of Paderborn Software Engineering Group Prof. Dr. Wilhelm Schäfer Towards Verified Model Transformations Holger Giese 1, Sabine Glesner 2, Johannes.
A language to describe software texture in abstract design models and implementation.
Hybrid Transformation Modeling Integrating a Declarative with an Imperative Model Transformation Language Pieter Van Gorp
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Automata Based Method for Domain Specific Languages Definition Ulyana Tikhonova PhD student at St. Petersburg State Politechnical University, supervised.
Semantics for DSL Group Members: Ritu Arora, Diyang Chu, Zekai Demirezen, Jeff Gray, Jacob Gulotta, Luis Pedro, Arturo Sanchez, Greg Sullivan,Ximing Yu.
Reusable Specification of Non-functional Properties in DSLs Francisco Durán, Steffen Zschaler, and Javier Troya 28 September, 2012.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
A Model Transformation Approach to Automated Model Construction and Evolution Yuehua Lin Jeff Gray Department of.
Model Transformation By Demonstration Yu Sun, Jules White, Jeff Gray This work funded in part by NSF CAREER award CCF CIS Dept. – University of.
MDD-Kurs / MDA Cortex Brainware Consulting & Training GmbH Copyright © 2007 Cortex Brainware GmbH Bild 1Ver.: 1.0 How does intelligent functionality implemented.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
 Construction and Validation of Effective Modelling Domains A Thesis Outline Sagar Sen November 6, 2009.
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
SEAA 2014 Automatic Production of Transformation Chains Using Structural Constraints on Output Models Cuauhtémoc Castellanos Etienne Borde Thomas Vergnaud.
SysML v2 Formalism: Requirements & Benefits
Variability-based model transformation
Implementing Language Extensions with Model Transformations
Implementing Language Extensions with Model Transformations
Software Architecture & Design
Presentation transcript:

Higher-Order Transformation Eugene SyrianiandHans Vangheluwe

Higher-Order Transformation Outline 1.What is a Higher-Order Transformation (HOT)? 2.Uses of HOT 3.Precise Modelling of Transformations 4.HOT in action 2

Higher-Order Transformation 1 What is a Higher-Order Transformation (HOT)? “A higher-order transformation is a model transformation such that its input and/or output models are themselves transformation models.” [Tisi09] At least one of the input or output artefacts of the HOT must be a transformation model. Transformation model  Transformation model Model*  Transformation Transformation  Model*   Transformation (generation through grammar) 3 [Tisi09] Tisi, M.; Jouault, F.; Fraternali, P.; Ceri, S. & Bézivin, J. On the Use of Higher-Order Model Transformations. ECMDA-FA, LNCS: 5562, pp , Springer-Verlag. Enschede (The Netherlands), June 2009

Higher-Order Transformation Classification A HOT is just a transformation: The same classification as for simple model transformations can be applied Keeping in mind that the input and/or output models are transformations themselves. 4

Higher-Order Transformation 2 Uses of HOT (inspiration from [Tisi09]) Transformation Synthesis Input:  or Model – Output: Transformation Mapping Implementation  Reduce abstraction level: QVT-Relations  QVT-Core (w.r.t. traces) [OMG08]  Declarative to Operational specification: TGG rules  TGG operational rules [Klar07] 5 TGG rule TGG operational rules [OMG08] OMG. Meta Object Facility 2.0 Query/View/Transformation Specification. April [Klar07] Klar, F.; Königs, A. & Schürr, A. Model transformation in the large. ESEC/FSE, pp , ACM. Dubrovnik (Croatia), 2007.

Higher-Order Transformation Uses of HOT Transformation Synthesis Input:  or Model – Output: Transformation Generic Transformation Input or output meta-models of a transformation is not known a priori: generate a transformation on-the-fly specific to the input or output meta-models.  HOT takes as input a meta-model MM and outputs a transformation model T. T takes as input two models that conform to MM and outputs the difference model between them: union of both models + annotations (similar, from left, from right) [Graaf07] 6 [Graaf07] Graaf, B. & van Deursen, A. Using MDE for generic comparison of views. Models in Software Engineering, INRIA. Nashville (USA), October 2007.

Higher-Order Transformation Uses of HOT Transformation Analysis Input: Transformation – Output: Model* Generate data information from a transformation for analysis purposes Query a transformation model  Transform the operational semantics of a Petri-Net-like language defined as a graph transformation, together with an instance model of the language into a Petri-Net. [Lara10] This Petri-Net can be used for analysis. 7 [Lara10] de Lara, J. & Vangheluwe, H. Automating the transformation-based analysis of visual languages. Formal Aspects of Computing, 22, no. 3-4, pp , Springer. May 2010.

Higher-Order Transformation Uses of HOT Transformation Composition / Decomposition Input: [1..*] Transformation – Output: [1..*] Transformation Compose two transformations into one: complex merge of the rules Weaving of transformations: chain transformations with separate concerns (e.g. multi-stage)  See “Application” part of this lecture: adding animation concern to a Petri-Net simulator 8

Higher-Order Transformation Uses of HOT Transformation Migration Input: Model – Output: Transformation When a language evolves, all associated transformations must be adapted. 9

Higher-Order Transformation Uses of HOT Transformation Modification Input: Transformation – Output: Transformation (INPLACE) Modify the semantics of the transformation engine Add a copy operator rules Add a grouping mechanism in the patterns Transformation Optimization Improve the transformation definition for more efficient results Refactor a transformation with best practices 10 [0..1]

Higher-Order Transformation 3 Precise Modelling of Transformations “A higher-order transformation is a model transformation such that its input and/or output models are themselves transformation models.” model transformation The notion of model transformation  Manipulation of any model (see “Model Transformation” talk). transformation model The notion of transformation model  Transformations must be modelled and thus conform to a meta-model. Model everything explicitly... But in which formalism? Which meta-model? 11

Higher-Order Transformation Models, Meta-Models, and Transformations T: operation that transforms the model M 1 into M 2. M T : model of a transformation that transforms any model of MM 1 into a model of MM 2. MM T : meta-model of all transformations that transform any meta-model. MMM: meta-model of the language used to describe meta-models. 12 MM’ T MM 1 MM 2 MM T MMM MTMT conforms to is modelled by transformed to

Higher-Order Transformation What is the most appropriate formalism for MM T ? MM TU : meta-model of the transformation units (rules, primitive operators,...) MM SC : meta-model of the scheduling language MM PL : meta-model of the pattern language 13 MM’ T MM 1 MM 2 MM T MMM MTMT

Higher-Order Transformation Precise Modelling of Transformations MoTif transformation language [Syriani10] 14 [Syriani10] Syriani, E. & Vangheluwe, H. A Modular Timed Model Transformation Language. McGill University, no. SOCS-TR , School of Computer Science. March MM SC MM TU

Higher-Order Transformation What about MM PL ? [Kuhne09] Unlike the transformation units and scheduling sub-languages, the pattern language depends on other languages: the domains of the transformation. 1.Generic pattern language +Most economic solution -Generic concrete syntax (MOF-like) -Allow to specify patterns that will never occur 2.Customized pattern language +Concrete syntax adapted to the source/target languages (DSL) +Exclude patterns that do not have a chance to match -More work for the tool builder 15 [Kuhne09] Kühne, T.; Mezei, G.; Syriani, E.; Vangheluwe, H. & Wimmer, M. Explicit Transformation Modeling. MODELS 2009 Workshops, LNCS: 6002, pp , Springer. Denver (USA) 2010.

Higher-Order Transformation What about MM PL ? RAM process: (quasi-)Automatically generated environment for pattern language 16 Input Meta-ModelOutput Meta-Model Relax Augment Modify Customized Pattern Meta-Model

Higher-Order Transformation What about MM PL ? RAM process: generate pre-/post-condition patterns meta-models Relaxation: Concretize abstract entities Reduce minimal multiplicity constraint Constraints (automatic?) Free form: no constraints Valid elements: ensure typing Valid multiplicities: enforce (relaxed) multiplicities Valid constraints: enforce (a subset of) meta-model constraints 17

Higher-Order Transformation What about MM PL ? RAM process: generate pre-/post-condition patterns meta-models Augmentation: Type all meta-model entities to MT(pre/post)_Element Add model transformation specific properties Labels Parameter passing (pivots) Allow abstract rules* Other (e.g., isProcessed ) Generic elements Trace elements 18

Higher-Order Transformation What about MM PL ? RAM process: generate pre-/post-condition patterns meta-models Modification: Pre-condition pattern constraint Attributes are of type constraint Post-condition pattern action Attributes are of type action Concrete syntax Abstract classes Association ends Other (e.g., replace topological visual syntax constraints) 19

Higher-Order Transformation What about MM PL ? RAM process: Generate the MM PL for Finite State Automata 20 RelaxAugmentModify

Higher-Order Transformation Is RAM a HOT? Answer: It takes as input the meta-models of the source and target languages. It produces as output a meta-model of transformations models. So it doesn’t take as input nor generate a transformation. 21

Higher-Order Transformation 4 HOT in Action [Kuhne09] 22 Translate Simulate Animate [Kuhne09] Kühne, T.; Mezei, G.; Syriani, E.; Vangheluwe, H. & Wimmer, M. Explicit Transformation Modeling. MODELS 2009 Workshops, LNCS: 6002, pp , Springer. Denver (USA) 2010.

Higher-Order Transformation Meta-Model Definitions The meta-models of the domain 23

Higher-Order Transformation Transformation Meta-Model The meta-model of the transformation language 24

Higher-Order Transformation Transformation Meta-Model RAM The meta-model of the pattern language for the transformation (result of RAM) 25

Higher-Order Transformation Translation 26 Translate Translate: Denotational Semantics of Finite State Automata

Higher-Order Transformation Simulation 27 Simulate Simulate: Operational Semantics of Petri-Net

Higher-Order Transformation HOT in Action Meta-Models must include animation support The user adds correspondence links. Therefore the meta-models have evolved. We want to evolve the transformations without affecting the existing transformations. Simulate  HOT: Transform the Simulate transformation to include animation support. 28

Higher-Order Transformation Expected outcome of HOT 29 The animation transformation

Higher-Order Transformation HOT in Action 30  At the rule level, when an PN element is created from an FSA element, add a correspondence link between them.

Higher-Order Transformation HOT in Action 31  At the scheduling level, add the animate rules at the last step of the simulator’s loop.

Higher-Order Transformation Higher than first-order transformation second order transformation  Can you think of a second order transformation? i.e., a transformation that takes as input and outputs a HOT. In model-based testing, a technique called mutation analysis proposes to test transformations on faulty models (mutants). It allows to assess how effective a transformation can detect faulty models. A mutation on a model can be easily defined by a transformation. first-order transformation The faults in the mutant models must be realistic. To ensure that, we can create a first-order transformation that takes as input a meta-model and outputs a transformation (mutation operator). The mutation operator takes as input a model and that generates realistic faulty models w.r.t the meta-model provided. But now we want a composite mutation operation that mutates models by combining primitive mutation operators: transforming mutation operators. This can be done with a second-order transformation. 32