Agenda 1. Introduction 2. General Approach 3. A Transformation Example 4. Derivation of a Common Base Transformation 5. Exemplary Transformation Patterns.

Slides:



Advertisements
Similar presentations
Diagram Definition: an Overview Third OMG/Eclipse Symposium 25 March 2012 Maged Elaasar, Senior Software Engineer.
Advertisements

Complex Types and Typed Instance Identifiers as YANG Extension
The transformation of an ER or EER model into a relational model
Programming Language Concepts
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Lesson 6 CDT301 – Compiler Theory, Spring 2011 Teacher: Linus Källberg.
1Model Driven Architecture – 3. März 2008 – Siegfried Nolte 1.UML – What is it and what is it good for ? 2.MDA – What is it and what is it good for ? 3.MDA.
XDuce Tabuchi Naoshi, M1, Yonelab.
Constraint Semantics for Abstract Read Permissions 28 th July 2014, FTfJP, Uppsala John Tang Boyland (UW-Milwaukee/ETH Zurich) Peter Müller, Malte Schwerhoff,
Architecture Representation
June 9, 2006 Transforming models with ATL © 2006 ATLAS Nantes Transforming models with ATL The A TLAS Transformation Language Frédéric Jouault ATLAS.
CS7100 (Prasad)L16-7AG1 Attribute Grammars Attribute Grammar is a Framework for specifying semantics and enables Modular specification.
8. Introduction to Denotational Semantics. © O. Nierstrasz PS — Denotational Semantics 8.2 Roadmap Overview:  Syntax and Semantics  Semantics of Expressions.
Query/Views/Transformations © 2006 ATLAS Nantes Query/Views/Transformations An introduction to the MOF 2.0 QVT standard with focus on the Operational.
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor- Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
Institute For Software Integrated Systems Vanderbilt University Applications of Model Integrated Computing to The Synchronous Language Signal Ethan Jackson.
Computer Organization and Assembly Language: Chapter 7 The Karnaugh Maps September 30, 2013 By Engineer. Bilal Ahmad.
OOPSLA 2003 DSM Workshop Diagram Definition Facilities Based on Metamodel Mappings Edgars Celms, Audris Kalnins, Lelde Lace University of Latvia, IMCS,
An Approach and Tool for Synchronous Refactoring of UML Diagrams and Models Using Model-to-Model Transformations Hafsteinn Þór Einarsson Helmut Neukirchen.
1/151/15 ENT Metamodel Implementation & Applications ENT metamodel, prototype implementation Component substitutability checking, ENT based component comparison.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
An Approach to Task Modelling for User Interface Design Costin Pribeanu National Institute for Research and Development in Informatics, Bucureşti, Romania.
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
Introduction to MDA (Model Driven Architecture) CYT.
XSLT + Xpath CS High level view We are doing tree editing Changes to node properties Structural rearrangement Several mdels for this kind of task.
Agenda 1. Introduction 2. Overview of SU-MoVal 3. OCL-based Model Validation 4. QVT-based Transformations 5. Demo of SU-MoVal 6. Conclusion and Future.
SMML: Software Measurement Modeling Language Beatriz Mora, Félix García, Francisco Ruiz, Mario Piattini Department of Information Technologies & Systems.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Diagram Definition A Case Study with the UML Class Diagram MoDELS 2011, Wellington, NZ By Maged Elaasar 1,2 (Presenter) and Yvan Labiche.
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
Lecture 11 XSL Transformations (part 1: Introduction)
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
ISO/IEC CD and WD : Core Model and Model Mapping ISO/IEC JTC1/SC32/WG September 2005, Toronto SC32/WG2 Japan (Kanrikogaku Ltd) Masaharu.
SaveUML System design. System overview Possible...
Uml is made similar by the presence of four common mechanisms that apply consistently throughout the language. After constructing or developing the architecture.
A language to describe software texture in abstract design models and implementation.
Implementing a Domain-Specific Modeling Environment For a Family of Thick-Client GUI Components Milosz Muszynski Tanner AG
Hybrid Transformation Modeling Integrating a Declarative with an Imperative Model Transformation Language Pieter Van Gorp
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
Automata Based Method for Domain Specific Languages Definition Ulyana Tikhonova PhD student at St. Petersburg State Politechnical University, supervised.
© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa.
1 Alex Proctor and Brian Lee for CSCI 431 at UNCA, Fall 2002 ML (Meta Language) a brief introduction Alex Proctor and Brian Lee For CSCI 431 at the University.
A division of Data Access Technologies, Inc. Combining Alf and UML in Modeling Tools Ed Seidewitz, Model Driven Solutions Jérémie Tatibouet, CEA 28 September.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Verification Mechanism for Weaving.
1 A Simple Syntax-Directed Translator CS308 Compiler Theory.
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
® IBM Software Group A Metamodeling Approach to Pattern Specification Maged Elaasar 1,2, Dr. Lionel Briand 1, Dr. Yvan Labiche 1 1 Carleton University,
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
AUTOMATIC GENERATION OF MODEL TRAVERSALS FROM METAMODEL DEFINITIONS Authors: Tomaž Lukman, Marjan Mernik, Zekai Demirezen, Barrett Bryant, Jeff Gray ACM.
Design Pattern Support based on principles of model driven development Zihao Zhao.
XML Extensible Markup Language
Language = Syntax + Semantics + Vocabulary
UNIT-IV Designing Classes – Access Layer ‐ Object Storage ‐ Object Interoperability.
XML: Extensible Markup Language
SysML 2.0 Formalism: Requirement Benefits, Use Cases, and Potential Language Architectures Formalism WG December 6, 2016.
Propositional Calculus: Boolean Functions and Expressions
SysML v2 Formalism: Requirements & Benefits
Modeling the OCL Standard Library
Business Process Measures
Daniel Amyot and Jun Biao Yan
Implementing Language Extensions with Model Transformations
Interpreter Pattern.
Implementing Language Extensions with Model Transformations
Software Architecture & Design
Presentation transcript:

Agenda 1. Introduction 2. General Approach 3. A Transformation Example 4. Derivation of a Common Base Transformation 5. Exemplary Transformation Patterns 6. Conclusion 30. September 2014OCL-2014, Alexander Kraas2

1. Introduction Motivation and Objectives Motivation Modeling languages can be classified into textual and graphical languages. Also hybrid approaches using both modeling kinds exist. The Specification and Description Language (SDL) is such a hybrid modeling language After parsing the textual input, further processing steps, such as model simplifications, are required. In some situations, access to an already existing model is necessary. The presented approach is used within the SU-MoVal framework Objective Approach for model simplifications utilizing the Operational Mappings part of the Query/View/Transformation (QVT) specification. It should be avoided to specify an entire rewrite system manually. 30. September 2014OCL-2014, Alexander Kraas3

1. Introduction The SU-MoVal framework 30. September 2014SAM-2014, Alexander Kraas4

2. General Approach 30. September 2014SAM-2014, Alexander Kraas5 Derivation of a common base transformation from a metamodel of the language. Transformations that implement a pattern for model simplification extend the derived base transformation. The control flow of the transformation has to be redirected in an appropriate manner by superimposition of mapping operations.

3. A Transformation Example Metamodel for the Concrete Syntax of SDL The concrete syntax of SDL is represented in terms of a metamodel. The BinaryExpressionsCS metaclass is used to represent infix operation calls, e.g Invocations of static operators of a data type are represented by OperatorApplicationCS. 30. September 2014SAM-2014, Alexander Kraas6

4. Derivation of a Common Base Transformation Mapping Operations for Metaclasses Mapping of abstract metaclasses mapping CS::ExpressionCS::mapExpressionCS() : CS::ExpressionCS disjuncts CS::EqualityExpressionCS::mapEqualityExpressionCS, CS::PrimaryCS::mapPrimaryCS, … CS::BinaryExpressionCS::mapBinaryExpressionCS { } Mapping of abstract metaclasses mapping CS::ExpressionCS::mapExpressionCS() : CS::ExpressionCS disjuncts CS::EqualityExpressionCS::mapEqualityExpressionCS, CS::PrimaryCS::mapPrimaryCS, … CS::BinaryExpressionCS::mapBinaryExpressionCS { } 30. September 2014SAM-2014, Alexander Kraas7 Mapping of non-abstract metaclasses mapping CS::BinaryExpressionCS::mapBinaryExpressionCS() : CS::BinaryExpressionCS { result.resolvedOperation := self.resolvedOperation; result.operationIdentifier := self.operationIdentifier. map mapIdentifierCS(); … } Mapping of non-abstract metaclasses mapping CS::BinaryExpressionCS::mapBinaryExpressionCS() : CS::BinaryExpressionCS { result.resolvedOperation := self.resolvedOperation; result.operationIdentifier := self.operationIdentifier. map mapIdentifierCS(); … }

4. Derivation of a Common Base Transformation Processing of Metaclass Attributes Single value property: result.property_A := self.property_A. map mapMySubclassA(); Multi value property: result.property_B += self. property_B ->map mapMySubclassA(); Single value property with simple or enumerated type: result. property_C := self. property_C; Multi value property with simple or enumerated type: result. property_D += self. property_D; 30. September 2014SAM-2014, Alexander Kraas8

5. Exemplary Transformation Patterns General aspects Parsed textual notation is represented as a tree structure. Binary expressions are simplified to operator applications in different variations. 30. September 2014SAM-2014, Alexander Kraas9 varA = varB + 10/2

5. Exemplary Transformation Patterns Top-level Simplification (1/3) 30. September 2014SAM-2014, Alexander Kraas10 Input Output

5. Exemplary Transformation Patterns Top-level Simplification (2/3) Mapping operation in CBT. Overriding mapping operation 30. September 2014SAM-2014, Alexander Kraas11 mapping CS::ExpressionCS::mapExpressionCS() : CS::ExpressionCS disjuncts CS::EqualityExpressionCS::mapEqualityExpressionCS, CS::PrimaryCS::mapPrimaryCS, … CS::BinaryExpressionCS::mapBinaryExpressionCS { } mapping CS::ExpressionCS::mapExpressionCS() : CS::ExpressionCS disjuncts CS::EqualityExpressionCS::mapEqualityExpressionCS, CS::PrimaryCS::mapPrimaryCS, … CS::BinaryExpressionCS::mapBinaryExpressionCS { } mapping CS::ExpressionCS::mapExpressionCS() : CS::ExpressionCS disjuncts CS::EqualityExpressionCS::mapEqualityExpressionCS, CS::PrimaryCS::mapPrimaryCS,... CS::BinaryExpressionCS::toOperatorApplication {} mapping CS::ExpressionCS::mapExpressionCS() : CS::ExpressionCS disjuncts CS::EqualityExpressionCS::mapEqualityExpressionCS, CS::PrimaryCS::mapPrimaryCS,... CS::BinaryExpressionCS::toOperatorApplication {} Overrides Injected mapping operation

5. Exemplary Transformation Patterns Top-level Simplification (3/3) Mapping operation implementing the top-level simplification 30. September 2014SAM-2014, Alexander Kraas12 mapping CS::BinaryExpressionCS::toOperatorApplication() : CS::OperatorApplicationCS { result. resolvedType := self.resolvedType ; result. resolvedOperation := self. resolvedOperation ; result. operationIdentifier := self. operationIdentifier ; result. actualParameters := OrderedSet { object ActualParameterCS { expression := self. leftOperand }, object ActualParameterCS { expression := self. rightOperand } }; } mapping CS::BinaryExpressionCS::toOperatorApplication() : CS::OperatorApplicationCS { result. resolvedType := self.resolvedType ; result. resolvedOperation := self. resolvedOperation ; result. operationIdentifier := self. operationIdentifier ; result. actualParameters := OrderedSet { object ActualParameterCS { expression := self. leftOperand }, object ActualParameterCS { expression := self. rightOperand } }; } No recursive mappings!

5. Exemplary Transformation Patterns Recursive Simplification (1/2) 30. September 2014SAM-2014, Alexander Kraas13 Input Output

5. Exemplary Transformation Patterns Recursive Simplification (2/2) Mapping operation implementing the recursive simplification 30. September 2014SAM-2014, Alexander Kraas14 mapping CS::BinaryExpressionCS::toOperatorApplication() : CS::OperatorApplicationCS { result. resolvedType := self.resolvedType ; result. resolvedOperation := self. resolvedOperation ; result. operationIdentifier := self. operationIdentifier ; result. actualParameters := OrderedSet { object ActualParameterCS { expression := self. leftOperand.map mapExpressionCS() }, object ActualParameterCS { expression := self. rightOperand.map mapExpressionCS() } }; } mapping CS::BinaryExpressionCS::toOperatorApplication() : CS::OperatorApplicationCS { result. resolvedType := self.resolvedType ; result. resolvedOperation := self. resolvedOperation ; result. operationIdentifier := self. operationIdentifier ; result. actualParameters := OrderedSet { object ActualParameterCS { expression := self. leftOperand.map mapExpressionCS() }, object ActualParameterCS { expression := self. rightOperand.map mapExpressionCS() } }; } Recursive mappings!

5. Exemplary Transformation Patterns Simplification of Leaf Elements (1/2) 30. September 2014SAM-2014, Alexander Kraas15 Input Output

5. Exemplary Transformation Patterns Simplification of Leaf Elements (2/2) 30. September 2014SAM-2014, Alexander Kraas16 mapping CS::BinaryExpressionCS::toOperatorApplication() : CS::OperatorApplicationCS when { self.allSubobjectsOfType( CS::BinaryExpressionCS )->size() = 0 } {result. resolvedType := self.resolvedType ; result. resolvedOperation := self. resolvedOperation ; result. operationIdentifier := self. operationIdentifier ; result. actualParameters := OrderedSet { object ActualParameterCS { expression := self. leftOperand }, object ActualParameterCS { expression := self. rightOperand } }; } mapping CS::BinaryExpressionCS::toOperatorApplication() : CS::OperatorApplicationCS when { self.allSubobjectsOfType( CS::BinaryExpressionCS )->size() = 0 } {result. resolvedType := self.resolvedType ; result. resolvedOperation := self. resolvedOperation ; result. operationIdentifier := self. operationIdentifier ; result. actualParameters := OrderedSet { object ActualParameterCS { expression := self. leftOperand }, object ActualParameterCS { expression := self. rightOperand } }; } No recursive mappings! Necessary constraint! mapping CS::ExpressionCS::mapExpressionCS() : CS::ExpressionCS disjuncts... CS::BinaryExpressionCS::toOperatorApplication, CS::BinaryExpressionCS::mapBinaryExpressionCS {} mapping CS::ExpressionCS::mapExpressionCS() : CS::ExpressionCS disjuncts... CS::BinaryExpressionCS::toOperatorApplication, CS::BinaryExpressionCS::mapBinaryExpressionCS {} Must be placed before the default mapping in TCB!

6. Conclusion An approach for model simplifications resting on the refinement of a derived base transformation was presented. Further simplification patterns can be implemented in the same manner. Also other kinds of endogenous model transformations should be realizable in a similar manner. Running example can be obtained from: O_model_simplification_examples.html 30. September 2014SAM-2014, Alexander Kraas17