Operational QVT Incremental Update

Slides:



Advertisements
Similar presentations
IBM Software Group ® Design Thoughts for JDSL 2.0 Version 0.2.
Advertisements

Some Properties of SSA Mooly Sagiv. Outline Why is it called Static Single Assignment form What does it buy us? How much does it cost us? Open questions.
Query/Views/Transformations © 2006 ATLAS Nantes Query/Views/Transformations An introduction to the MOF 2.0 QVT standard with focus on the Operational.
1 Composition A whole-part relationship (e.g. Dog-Tail) Whole and part objects have same lifetime –Whole creates instance of part in its constructor In.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall
Fall 2007CSE 115/503 Introduction to Computer Science for Majors I1 End of Week Five! Questions? First part of essay assignment (choosing a topic) is posted.
Fall 2005CSE 115/503 Introduction to Computer Science I1 Composition details Recall, composition involves 3 things: –Declaration of instance variable of.
IBM Software Group © 2005 IBM Corporation University of Nantes Eclipse dayMarch 2005 The Eclipse Modeling Framework and the IBM Model Transformation Framework.
Classes in C++ Bryce Boe 2012/08/15 CS32, Summer 2012 B.
More C++ Bryce Boe 2013/07/18 CS24, Summer 2013 C.
Environment Change Information Request Change Definition has subtype of Business Case based upon ConceptPopulation Gives context for Statistical Program.
Advanced Applications Of Model-to-Model Transformation © 2008 INRIA Advanced Applications Of Model-to-Model Transformation Hugo Bruneliere & Frédéric.
An Approach and Tool for Synchronous Refactoring of UML Diagrams and Models Using Model-to-Model Transformations Hafsteinn Þór Einarsson Helmut Neukirchen.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Writing Classes (Chapter 4)
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
CSC 212 – Data Structures Lecture 12: Java Review.
Introduction to MDA (Model Driven Architecture) CYT.
Chapter 8 Script-free pages. Problem with scripting in JSP When you use scripting (declaration, scriplet, expressions) in your JSP, you actually put Java.
Introduction to JavaServer Pages. 2 JSP and Servlet Limitations of servlet  It’s inaccessible to non-programmers JSP is a complement to servlet  focuses.
Environment Change Information Request Change Definition has subtype of Business Case based upon ConceptPopulation Gives context for Statistical Program.
Overview The Basics – Python classes and objects Procedural vs OO Programming Entity modelling Operations / methods Program flow OOP Concepts and user-defined.
Future Work  Formal specification of modeling language semantic is key issue  Reliance on well-established formal models of computation (i.e. finite.
 In computer programming, a loop is a sequence of instruction s that is continually repeated until a certain condition is reached.  PHP Loops :  In.
ModTransf A Simple Model to Model Transformation Engine Cédric Dumoulin.
Introduction to Object-Oriented Programming Lesson 2.
N. HARIKA Lecturer(csc). 3 General Structure Of A Java Program.
CS162 Week 4 Kyle Dewey. Overview Reactive imperative programming in a nutshell Reactive imperative programming implementation details.
Terms and Rules II Professor Evan Korth New York University (All rights reserved)
Effective Java, Chapter 9: Exceptions Items Last modified Fall 2012 Paul Ammann.
Cliquez pour modifier le style du titre Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième.
Object-Oriented Programming
The Importance of Opposites
Graphical Data Engineering
SysML-Modelica: A Redefinition & Modification Use Case
Sections Inheritance and Abstract Classes
Visit for more Learning Resources
Reuse Separate classes could be developed for all the different objects that are needed in each program. However that would be wasteful. Often many functionalities.
These 19 words are given and fixed
Chap. 6 :: Control Flow Michael L. Scott.
Java Programming with BlueJ
Enhancement Notification Release 5.4
Chapter 5 Function Basics
Towards Automatic Model Synchronization from Model Transformation
Variables and Their scope
SwE 455 Tutorial.
Week 3 Object-based Programming: Classes and Objects
VHDL Discussion Subprograms
Chap. 6 :: Control Flow Michael L. Scott.
Effective Java, 3rd Edition Chapter 10: Exceptions
Michael Ernst UW CSE 140 Winter 2013
Faculty of Computer Science & Information System
An Introduction to Object Orientated Programming
Defining Classes and Methods
Homework Any Questions?.
VHDL Discussion Subprograms
Overview of the Lab 2 Assignment: Multicore Real-Time Tasks
Software Engineering Lecture 17.
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Applying Use Cases (Chapters 25,26)
QVT Operational 1.0 Mini-deck
Effective Java, Chapter 9: Exceptions
Chapter 11 Class Inheritance
based on the content of the file.
Michael Ernst UW CSE 190p Summer 2012
CSE 206 Course Review.
Review for Midterm 3.
Lesson 3. Controlling program flow. Loops. Methods. Arrays.
Presentation transcript:

Operational QVT Incremental Update MOF 2.0 Query/View Transformation Specification: Incremental Update Once a relationship (a set of trace instances) has been established between models by executing a transformation, small changes to a source model may be propagated to a target model by re-executing the transformation in the context of the trace, causing only the relevant target model elements to be changed, without modifying the rest of the model. April, 2015 Operational QVT Incremental Update Execution mode details

Normal execution flow Execution Traces Trace contains information about mapped objects Trace consists of trace records A trace record is created when a mapping is executed Trace records keep reference to the executed mapping and the mapping parameter values A trace record is created after the implicit instantiation section of the mapping is finished Trace prohibit duplicate execution with the same parameters Trace may be serialized after the transformation execution mapping EPackage::myMapping() : Package { init { } population { end { Execution Traces mapping param1 param2 ... mapping param1 param2 ... mapping param1 param2 ... mapping param1 param2 ... Trace is checked here to prohibit duplicate execution implicit instantiation section New trace record is created here! April, 2015 Operational QVT Incremental Update Execution mode details

Incremental Update execution First execution of transformation creates traces Subsequent executions use traces from previous execution as a context for incremental update mapping EPackage::myMapping() : Package { init { } population { end { Incremental Traces Execution Traces mapping p1 p2 ... mapping p1 p2 ... mapping p1 p2 ... mapping p1 p2 ... mapping p1 p2 ... mapping p1 p2 ... Trace is checked here to prohibit duplicate execution Incremental trace is checked here to obtain mapped objects implicit instantiation section New trace record is created here! April, 2015 Operational QVT Incremental Update Execution mode details

Transformation execution flow The whole transformation is executed (both in normal and in incremental execution modes) it is because of imperative nature of QVTo transformations (in contrast to declarative transformations) EMF change notifications are generated only for actual changes in the output models for single valued features this is optimized by EMF setters for multi valued features this is optimized by means of ECollections.setEList(..) incremental update execution mode allows to stabilize 'xmi:id' for UML XMI format April, 2015 Operational QVT Incremental Update Execution mode details

Transformation design for executing in incremental mode always use reset-assignment for multi valued features initialization (':=' operator) don't use conditional assignment for features Instead of if (true) { name := 'foo’ } One should use name := if true then 'foo' else 'bar' endif; carefully use the assignment to 'result' variable in init{} sections consider using reuse facilities for mappings (inheritance, merge and disjunctions) April, 2015 Operational QVT Incremental Update Execution mode details