"Although many model transformation approaches exist, their focus is almost exclusively put on functional correctness and intuitive description language while the importance of engineering issues such as reusability, maintainability, performance or compactness are neglected. To tackle these problems following the MDA philosophy, we argue in the paper that model transformations should also be regarded as models (i.e., as data). We demonstrate (i) how generic transformations can provide a very compact description of certain transformation problems and (ii) how meta-transformations can be designed that yield efficient transformations as their output model."
This is an extract from the abstract of our UML 2004 paper. In the current talk, I provide (1) a brief summary of the paper itself, and (2) an overview of research results on higher-order transformations in the past 10 years. This paper was also the first to present the VIATRA2 model transformation framework based on Eclipse, so a brief history of the tool itself will conclude the talk.
Automatic Task-based Code Generation for High Performance DSELJoel Falcou
Providing high level tools for parallel programming while sustaining a high level of performance has been a challenge that techniques like Domain Specific Embedded Languages try to solve. In previous works, we investigated the design of such a DSEL – NT2 – providing a Matlab -like syntax for parallel numerical computations inside a C++ library.
Main issues addressed here is how liimtaions of classical DSEL generation and multithreaded code generation can be overcome.
(Costless) Software Abstractions for Parallel ArchitecturesJoel Falcou
Performing large, intensive or non-trivial computing on array like data structures is one of the most common task in scientific computing, video game development and other fields. This matter of fact is backed up by the large number of tools, languages and libraries to perform such tasks. If we restrict ourselves to C++ based solutions, more than a dozen such libraries exists from BLAS/LAPACK C++ binding to template meta-programming based Blitz++ or Eigen. If all of these libraries provide good performance or good abstraction, none of them seems to fit the need of so many different user types.
Moreover, as parallel system complexity grows, the need to maintain all those components quickly become unwieldy. This talk explores various software design techniques - like Generative Programming, MetaProgramming and Generic Programming - and their application to the implementation of a parallel computing librariy in such a way that:
- abstraction and expressiveness are maximized - cost over efficiency is minimized
We'll skim over various applications and see how they can benefit from such tools. We will conclude by discussing what lessons were learnt from this kind of implementation and how those lessons can translate into new directions for the language itself.
Specifying function specializations over an arbitrary set of type constraints is a daunting task in C++ as soon as those constraints become more and more complex and/or grow in number. Various idioms are traditionally used to solve this problem: SFINAE or Tag Dispatching for example.
This talk introduces Boost.Dispatch, an infrastructure library that make Tag Dispatching easier to use and maintain by providing a protocol to define Tags and relationship between them, to map an arbitrary set of tags to a given function implementation and to extend said list of specialization in an open, modular way. The main new asset of Boost.Dispatch is the ability to use categorization of function properties and/or architectural information to guide the dispatch in addition to the more traditional use of type properties.
The talk will quickly brushes a picture of what SFINAE, overloading and Tag Dispatching mean in C++ and what are their limitations. We’ll introduce Boost.Dispatch over some examples ranging from simple library design to actual high performance computing code using the library to select best implementation of a function based on non-trivial architecture dependent information. Then we’ll dive into the implementation of the library and try to sketches the upcoming challenges yet to be solved.
HDR Defence - Software Abstractions for Parallel ArchitecturesJoel Falcou
Performing large, intensive or non-trivial computing on array like data
structures is one of the most common task in scientific computing, video game
development and other fields. This matter of fact is backed up by the large number
of tools, languages and libraries to perform such tasks. If we restrict ourselves to
C++ based solutions, more than a dozen such libraries exists from BLAS/LAPACK
C++ binding to template meta-programming based Blitz++ or Eigen.
If all of these libraries provide good performance or good abstraction, none of
them seems to fit the need of so many different user types. Moreover, as parallel
system complexity grows, the need to maintain all those components quickly
become unwieldy. This thesis explores various software design techniques - like
Generative Programming, MetaProgramming and Generic Programming - and their
application to the implementation of various parallel computing libraries in such a
way that abstraction and expressiveness are maximized while efficiency overhead is
minimized.
Time Series Estimation of Gas Furnace Data in IMPL and CPLEX Industrial Model...Alkis Vazacopoulos
Presented in this short document is a description of how to estimate a deterministic and stochastic time-series transfer function models in IMPL using IBM’s CPLEX applied to industrial gas furnace data. The methodology of time-series analysis involves essentially three (3) stages (Box and Jenkins, 1976): (1) model structure identification, (2) model parameter estimation and (3) model checking and diagnostics. We do not address (1) which requires stationarity and seasonality assessment, auto-, cross- and partial-correlation, etc. to establish the transfer function polynomial degrees. Instead we focus only on the parameter estimation and diagnostics. These types of parameter estimation problems involve dynamic and nonlinear relationships shown below and we solve these using IMPL’s nonlinear programming algorithm SLPQPE which uses CPLEX 12.6 as the QP sub-solver.
Automatic Task-based Code Generation for High Performance DSELJoel Falcou
Providing high level tools for parallel programming while sustaining a high level of performance has been a challenge that techniques like Domain Specific Embedded Languages try to solve. In previous works, we investigated the design of such a DSEL – NT2 – providing a Matlab -like syntax for parallel numerical computations inside a C++ library.
Main issues addressed here is how liimtaions of classical DSEL generation and multithreaded code generation can be overcome.
(Costless) Software Abstractions for Parallel ArchitecturesJoel Falcou
Performing large, intensive or non-trivial computing on array like data structures is one of the most common task in scientific computing, video game development and other fields. This matter of fact is backed up by the large number of tools, languages and libraries to perform such tasks. If we restrict ourselves to C++ based solutions, more than a dozen such libraries exists from BLAS/LAPACK C++ binding to template meta-programming based Blitz++ or Eigen. If all of these libraries provide good performance or good abstraction, none of them seems to fit the need of so many different user types.
Moreover, as parallel system complexity grows, the need to maintain all those components quickly become unwieldy. This talk explores various software design techniques - like Generative Programming, MetaProgramming and Generic Programming - and their application to the implementation of a parallel computing librariy in such a way that:
- abstraction and expressiveness are maximized - cost over efficiency is minimized
We'll skim over various applications and see how they can benefit from such tools. We will conclude by discussing what lessons were learnt from this kind of implementation and how those lessons can translate into new directions for the language itself.
Specifying function specializations over an arbitrary set of type constraints is a daunting task in C++ as soon as those constraints become more and more complex and/or grow in number. Various idioms are traditionally used to solve this problem: SFINAE or Tag Dispatching for example.
This talk introduces Boost.Dispatch, an infrastructure library that make Tag Dispatching easier to use and maintain by providing a protocol to define Tags and relationship between them, to map an arbitrary set of tags to a given function implementation and to extend said list of specialization in an open, modular way. The main new asset of Boost.Dispatch is the ability to use categorization of function properties and/or architectural information to guide the dispatch in addition to the more traditional use of type properties.
The talk will quickly brushes a picture of what SFINAE, overloading and Tag Dispatching mean in C++ and what are their limitations. We’ll introduce Boost.Dispatch over some examples ranging from simple library design to actual high performance computing code using the library to select best implementation of a function based on non-trivial architecture dependent information. Then we’ll dive into the implementation of the library and try to sketches the upcoming challenges yet to be solved.
HDR Defence - Software Abstractions for Parallel ArchitecturesJoel Falcou
Performing large, intensive or non-trivial computing on array like data
structures is one of the most common task in scientific computing, video game
development and other fields. This matter of fact is backed up by the large number
of tools, languages and libraries to perform such tasks. If we restrict ourselves to
C++ based solutions, more than a dozen such libraries exists from BLAS/LAPACK
C++ binding to template meta-programming based Blitz++ or Eigen.
If all of these libraries provide good performance or good abstraction, none of
them seems to fit the need of so many different user types. Moreover, as parallel
system complexity grows, the need to maintain all those components quickly
become unwieldy. This thesis explores various software design techniques - like
Generative Programming, MetaProgramming and Generic Programming - and their
application to the implementation of various parallel computing libraries in such a
way that abstraction and expressiveness are maximized while efficiency overhead is
minimized.
Time Series Estimation of Gas Furnace Data in IMPL and CPLEX Industrial Model...Alkis Vazacopoulos
Presented in this short document is a description of how to estimate a deterministic and stochastic time-series transfer function models in IMPL using IBM’s CPLEX applied to industrial gas furnace data. The methodology of time-series analysis involves essentially three (3) stages (Box and Jenkins, 1976): (1) model structure identification, (2) model parameter estimation and (3) model checking and diagnostics. We do not address (1) which requires stationarity and seasonality assessment, auto-, cross- and partial-correlation, etc. to establish the transfer function polynomial degrees. Instead we focus only on the parameter estimation and diagnostics. These types of parameter estimation problems involve dynamic and nonlinear relationships shown below and we solve these using IMPL’s nonlinear programming algorithm SLPQPE which uses CPLEX 12.6 as the QP sub-solver.
A basic overview, application and usage of MATLAB for engineers. It covered very basics essential that will help one to get started with MATLAB programming easily.
Provided by IDEAS2IGNITE
An Introduction to the SOLID PrinciplesAttila Bertók
SOLID Principles are the most important principles of writing maintainable, easy-to-read, easy-to-write clean code. This presentation attempts to give a basic overview of these principles with some examples of violations and ways to correct them.
3 days Hands on workshop on MATLAB/SIMULINK for Engineering Applications:
this workshop aims to make students to aware of MATLAB to do own projects in engineering life with best available technology E-Simulink Softwares and tools.
Advanced MATLAB Tutorial for Engineers & ScientistsRay Phan
This is a more advanced tutorial in the MATLAB programming environment for upper level undergraduate engineers and scientists at Ryerson University. The first half of the tutorial covers a quick review of MATLAB, which includes how to create vectors, matrices, how to plot graphs, and other useful syntax. The next part covers how to create cell arrays, logical operators, using the find command, creating Transfer Functions, finding the impulse and step response, finding roots of equations, and a few other useful tips. The last part covers more advanced concepts such as analytically calculating derivatives and integrals, polynomial regression, calculating the area under a curve, numerical solutions to differential equations, and sorting arrays.
CETPA INFOTECH PVT LTD is one of the IT education and training service provider brands of India that is preferably working in 3 most important domains. It includes IT Training services, software and embedded product development and consulting services.
http://www.cetpainfotech.com
ITU - MDD – Model-to-Model TransformationsTonny Madsen
This presentation describes the use Model-to-Model transformations (M2M). It focus on the why, what and how.
This presentation is developed for MDD 2010 course at ITU, Denmark.
A basic overview, application and usage of MATLAB for engineers. It covered very basics essential that will help one to get started with MATLAB programming easily.
Provided by IDEAS2IGNITE
An Introduction to the SOLID PrinciplesAttila Bertók
SOLID Principles are the most important principles of writing maintainable, easy-to-read, easy-to-write clean code. This presentation attempts to give a basic overview of these principles with some examples of violations and ways to correct them.
3 days Hands on workshop on MATLAB/SIMULINK for Engineering Applications:
this workshop aims to make students to aware of MATLAB to do own projects in engineering life with best available technology E-Simulink Softwares and tools.
Advanced MATLAB Tutorial for Engineers & ScientistsRay Phan
This is a more advanced tutorial in the MATLAB programming environment for upper level undergraduate engineers and scientists at Ryerson University. The first half of the tutorial covers a quick review of MATLAB, which includes how to create vectors, matrices, how to plot graphs, and other useful syntax. The next part covers how to create cell arrays, logical operators, using the find command, creating Transfer Functions, finding the impulse and step response, finding roots of equations, and a few other useful tips. The last part covers more advanced concepts such as analytically calculating derivatives and integrals, polynomial regression, calculating the area under a curve, numerical solutions to differential equations, and sorting arrays.
CETPA INFOTECH PVT LTD is one of the IT education and training service provider brands of India that is preferably working in 3 most important domains. It includes IT Training services, software and embedded product development and consulting services.
http://www.cetpainfotech.com
ITU - MDD – Model-to-Model TransformationsTonny Madsen
This presentation describes the use Model-to-Model transformations (M2M). It focus on the why, what and how.
This presentation is developed for MDD 2010 course at ITU, Denmark.
A Taxonomy for Program Metamodels in Program Reverse EngineeringHironori Washizaki
Hironori Washizaki, Yann-Gael Gueheneuc, Foutse Khomh, “A Taxonomy for Program Metamodels in Program Reverse Engineering,” 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME) (CORE Rank A), October 2-10, Raleigh, North Carolina, USA. (to appear) (acceptance rate 29%=37/127) http://www.washi.cs.waseda.ac.jp/
Automatically bridging UML profiles into MOF metamodelsIvano Malavolta
27th August 2015. My presentation at SEAA 2015 (http://paginas.fe.up.pt/~dsd-seaa-2015/) about our approach for autmatically bridging UML profiles into MOF metamodels. SEAA 2015 is the 41st Euromicro Conference on Software Engineering and Advanced Applications, and it has been held in 26 - 28 August 2015, Funchal, Madeira, Portugal.
Accompanying paper:
http://www.ivanomalavolta.com/files/papers/SEAA_2015.pdf
Abstract:
In Model-Driven Engineering, UML profiles and MOF-based Domain Specific Modeling Languages (DSMLs) are the most used approaches for describing domain specific applications. The choice of the right approach depends on several aspects, such as tool support, expressivity, complexity of models, company policies. In general, profiled UML models are very much used since they are intuitive for designers and model editors already exist, however they are intrinsically complex for model manipulation (e.g., transformation, analysis); conversely, domain specific models are more concise and easy to be manipulated, but they require an initial effort in terms of designers training and model editors development.
In this paper we propose an approach that allows getting the best of the two worlds: on one side designers can use UML profiles familiar to them, on the other side DSML models (automatically generated from profiled UML models) enable a better model manipulation. Our approach is based on an automatic bridge between UML profiles and MOF metamodels (which are the main artifacts of MOF-based DSMLs). The bridge is transparent to the user since it autonomously operates both on UML profiles and all the involved models. The bridge is realized through model transformation techniques in the Eclipse platform. In this paper we show its application on a case study based on SysML.
EclipseCon 2008: Fundamentals of the Eclipse Modeling FrameworkDave Steinberg
EclipseCon 2008 long talk introducing EMF. A slightly different take from the preceding EclipseWorld talk, with a few more details on the EMF core and no discussion of CDO or Teneo.
A seminar in advanced Software Engineering concerning using models to guide the development process, and QVT to transfer a model into another model automatically
Extending Rotor with Structural Reflection to support Reflective Languagesfranciscoortin
Presentation of the results of the project "Extending Rotor with Structural Reflection to support Reflective Languages" at Microsoft Research, Redmond, Washington (USA)
The future of DSLs - functions and formal methodsMarkus Voelter
I have used domain-specific languages to empower non-programmers in healthcare, finance, aerospace, automotive and public administration for years. My approach relies on growing the DSL from a functional programming core, combining the flexibility and power of an algorithmic language with domain-specific constructs that range from temporal data types, state machines and data models to polymorphic dispatch between versions of calculation rules. I rely on the open source MPS workbench to define the languages and their IDE. I am looking to incremental model transformations to desugar domain-specific constructs back to a minimal core language in realtime. That core language will have an interpreter for in-IDE execution and a compiler for deployment. The language will be integrated with formal methods to verify properties of programs, enabling advanced analyses for DSL users. In this talk, I will demo some existing DSLs, provide an illustration of how they are built, and demo prototypes of the future approach while discussing their integration with formal methods.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Generic and Meta-Transformations for Model Transformation Engineering
1. Generic and Meta-Transformations
for Model Transformation Engineering
Dániel Varró, András Pataricza
Budapest University of Technology and Economics
Most Influential Paper Presentation@MODELS 2014
Valencia, Spain, October 2nd, 2014
Budapest University of Technology and Economics
Department of Measurement and Information Systems
2. Contributions of our UML 2004 paper
Generic&Meta
40%
VIATRA
27%
MT Engineering
10%
Other
6%
None
9%
Self
8%
Citations
Novel MT Concepts
o Generic and
o Meta-Transformations
Highlight the software
engineering aspects of MT
o Reusability
o Maintainability
o Performance
o Compactness
1st prototype of VIATRA2
transformation framework
Impact (Citation) Analysis
o Total: 137 (Google Scholar)
2
3. Overview
UML 2004 talk
Outlook on Generic and Meta-Transformations
VIATRA History
3
4. (Slides with this design are taken from my UML 2004 talk)
Generic and
Meta-Transformations for
Model Transformation Engineering
Dániel Varró
András Pataricza
Budapest Univ. of Technology and Economics
Dept. of Measurement and Information Systems
5. The Model Transformation Problem
UML DB
Language A Language B
Metamodel A
How to specify?
conforms to conforms to
How to execute?
October 14th, 2004 UML 2004
Metamodel B
Model a Model b
Platform Indep. Trans. (PIT)
J. Bézivin, N. Farcet, J.-M. Jézéquel, B. Langlois, and D. Pollet.
Reflective model driven engineering. In Proc. UML 2003:
6th Int. Conf. on the Unified Modeling Language, LNCS 2863,
pp. 175–189. Springer, San Francisco, CA, USA, 2003
6. Solution 1: Manually written PSTs
UML DB
Language A Language B
Metamodel A
Metamodel B
conforms to conforms to
Model a Model b
Platform Indep. Trans. (PIT)
Platform Spec. Trans. (PST)
XSLT spec. XT
Schema SA Schema SA
conforms to conforms to
Document da Document db
XSLT exec. xt
7. Solution 1: Manually written PSTs
UML DB
Language A Language B
Advantages:
+ standard model format (XMI) and transform. language (XSLT)
Metamodel A
Metamodel B
+ extensive tool support (XSLT engines)
conforms to conforms to
Disadvantages:
– knowledge is required Model a in another technological space Model (XSLT)
b
– hard to debug/maintain/understand complex XSLT scripts
– XSLT performance problems (for graph-like structures, e.g. XMI)
MOF technological space
Platform Spec. Trans. (PST)
XSLT spec. XT
Schema SA Schema SA
conforms to conforms to
Document da Document db
XSLT exec. xt
8. Solution 2: PIT Specification
UML DB
Language A Language B
Metamodel A
Transf. Spec. T
conforms to conforms to
October 14th, 2004 UML 2004
Metamodel B
QVT
Model a Model b
9. Solution 2: PIT specification + engine
UML DB
Language A Language B
Metamodel A
Transf. Spec. T
conforms to conforms to
October 14th, 2004 UML 2004
Metamodel B
Model a Model b
Transf. Exec. t
10. QVT example
QVT rule Relation
C:Class
:attrs
Pattern
October 14th, 2004 UML 2004
:columns
A:Attribute
name=NM
type=TP
B:Column
name=NM
type=TP
Cls2Tbl(C,T)
T:Table
Attr2Col(A,B)
Attr2ColumnR
when
Condition
Variable
12. Solution 2: PIT specification + engine
UML DB
Language A Language B
Metamodel A
Transf. Spec. T
conforms to conforms to
October 14th, 2004 UML 2004
Metamodel B
Model a Model b
Transf. Exec. t
Advantages:
+ pattern-based transformation specification in UML/MOF
(upcoming QVT standard)
+ increased performance for complex graph models
Disadvantages:
– lack of (industrial) model transformation tools
13. Solution 3: Model-driven transformation of
PSMs
UML DB
Language A Language B
Metamodel A
Transf. Spec. T
conforms to conforms to
Transf. Exec. t
conforms to conforms to
October 14th, 2004 UML 2004
Metamodel B
Model a Model b
Schema SA Schema SA
Document da Document db
14. Solution 3: Model-driven transformation of
PSMs
UML DB
Language A Language B
Metamodel A
Transf. Spec. T
conforms to conforms to
Transf. Exec. t
Advantages: (as before)
+ pattern-based transformation XSLT spec. specification XT
in UML/MOF
(upcoming QVT standard)
+ increased performance for complex graph conforms models to
(vs. XSLT)
conforms to Disadvantages:
– HOW TO INTEGRATE INTO EXISTING TOOLS?
October 14th, 2004 UML 2004
Metamodel B
Model a Model b
Schema SA Schema SA
Document da Document db
XSLT exec. xt
15. Solution 4: Automatically generated PST
UML DB
Language A Language B
Metamodel A
Metamodel B
Transf. Spec. T
conforms to conforms to
Model a Model b
Meta-transformation
XSLT spec. XT
Schema SA Schema SA
conforms to conforms to
Document da Document db
XSLT exec. xt
16. Solution 4: Automatically generated TST
UML DB
Language A Language B
Advantages:
Transf. Spec. T
+ transformation specification in QVT/MOF/UML
Metamodel A
Metamodel B
+ automatically generated XSLT scripts
+ platform specific transformers
(integrated into the target technological space)
Disadvantages:
– PIT2PST is a complex meta-transformation (e.g. QVT2XSLT)
– we have to do it ONCE / we HAVE TO do it once
conforms to conforms to
Model a Model b
XSLT spec. XT
Schema SA Schema SA
conforms to conforms to
Document da Document db
XSLT exec. xt
17. Transformation engineering in MDA
Transformation design will be an
engineering principle (if MDA succeeds)
Questions to answer:
– How to specify and execute MTs?
– Compactness / Intuitiveness of MT Specs?
– Automation? - Performance?
– Analysis? - Correctness of transformations?
– Reusability? - Maintainability?
October 14th, 2004 UML 2004
18. Objectives
How to tackle (some) transware problems?
– By storing/handling transformations
as models
Generic (higher-order) transformations:
– Type / class variables in rules
Meta transformations:
– Consumes (produces) transformation rules as
input (output)
October 14th, 2004 UML 2004
Higher-Order
Transformations
19. Example: XMI export
Problem:
– generate XMI documents
– from MOF-based models
– when the metamodel is
a parameter
n1 : Node
name = First
isStart = true
n2 : Node
name = Second
isStart = false
outgoing
e1 : Edge
weight = 1
incoming
October 14th, 2004 UML 2004
Node
subnodes
name : String
isStart : Boolean
Edge
outgoing
weight : Integer
incoming
Graph
<Node xmi.id = "n1">
<Node.name>FirstNode</Node.name>
<Node.isStart xmi.value="true" />
<Node.outgoing>
<Edge xmi.idref = "e1"/>
</Node.outgoing>
<Node.subnodes>
<Node xmi.id = "n2"> ... </Node>
</Node.subnodes>
</Node>
20. Overview of
generic transformations
Advantages
– General + Powerful
– Succinct
Generic
rules
Disadvantages
October 14th, 2004 UML 2004
– Performance?
– Implementation
as PSTs?
Metamodel
(Graphs)
Graph
model
Generic
Trans. Eng.
XMI
document
Generic transformation = Rules with type variables
21. Example: A generic rule
x:Class
name = n
o:x
identifier = id
October 14th, 2004 UML 2004
e:XMLElem
name = n
:attributes
a:XMLAttr
name = "xmi.id"
value = id
Obj2Elem(o,e)
{new}
{new}
{new}
{new}
Obj2ElemR
Type
parameter
22. Overview of
meta-transformations
Advantage:
Meta
rules
October 14th, 2004 UML 2004
– Executed by traditional
transformation engines
Prerequisite:
– Rules stored as models
Metamodel
(Graphs)
Graph
model
“Ordinary”
Trans. Eng.
XMI
document
“Ordinary”
rules
“Ordinary”
Trans. Eng.
Meta-Transformation = Rules that consume/generate rules
Transformation
Models
23. Example: A meta rule
x:Class
name = cl
as:attributes
att:Attribute
name = at
:type
y:Class
isEnum = "true"
EnumAttr2ElemR(x,att)
o:x
a:att
value = v
:as
October 14th, 2004 UML 2004
e1:XMLElem
{new} :contains
{new}
e2:XMLElem
name = cl+"."+at
:attributes
a2:XMLAttr
name = "xmi.value"
value = v
Obj2Elem(o,e1)
Attr2Elem(a,e2)
{new}
{new}
{new}
Attr2Rule
Attr2RuleR
Type variables are data in the RHS resolved prior to main transformation
24. Result of applying a meta rule
EnumAttr2ElemR(“Edge”,”weight”)
o:Edge
:as
a:weight
value = v
Obj2Elem(o,e1)
October 14th, 2004 UML 2004
e1:XMLElem
{new} :contains
{new}
e2:XMLElem
name = "Edge.weight"
{new} :attributes
{new}
a2:XMLAttr
name = "xmi.value"
value = v
Attr2Elem(a,e2)
{new}
Ordinary (first order) transformation rule without type variables
25. Generic rules for model maintenance
a:att:Attribute
e1:XMLElem
e2.XMLElem
:attributes
a1:XMLAttr
October 14th, 2004 UML 2004
:contains
name = n
name = "xmi.value"
value = v
Attr2Elem(a,e2)
{delete}
:contains
a2:XMLAttr
name = n
value = v
Attr2Attr(a,a2)
{new}
{delete}
{delete}
{delete}
{delete}
{new}
{new}
ChangeXMIAttributesR
Migration from XMI 1.0 to XMI 1.1
26. Another scenario of
generic and meta-transformations
Advantage:
uniform management of
– models
– transformations
“Ordinary”
rules
Graph
model
Generic &
Meta rules
Generic
Trans. Eng.
October 14th, 2004 UML 2004
XMI
document
“Ordinary”
rules
“Ordinary”
Trans. Eng.
Meta-Transformation = Rules that consume/generate rules
Generic Transformation = Rules with type variables
27. The VIATRA2 Approach
Model management:
o Model space: Unified, global view of
models, metamodels and transformations
• Hierarchical graph model
• Complex type hierarchy
• Multilevel metamodeling
Model manipulation and transformations:
integration of two mathematically precise,
rule and pattern-based formalisms
o Graph patterns (GP): structural conditions
o Graph transformation (GT): elementary transformation steps
o Abstract state machines (ASM): complex transformation programs
Code generation:
o Special model transformations with
o Code templates and code formatters
29. Meta-transformations in VIATRA
Main ideas:
o Transformations stored as
models
o Processed by an interpreter
(GT + ASM)
o Executed over models
stored in the model space
Unusual consequences:
o Self-modifying meta-transformations
o Pattern elements appearing
in match sets
Scopes of MT rules required
EMF transformation model
Quiz: Sample model space
o Graph pattern: chase
o Instance model
How many matches does pattern
chase have in the model space? 6
29
31. Our Influencers (in 2004)
• Introduced for the definition of
context-sensitive language grammars
Two-level
graph
grammars
• Meta-theoretical foundations in Maude
• Arbitrary models can be transformed
into their meta-representation
Rewriting
logics
• Reflective OO programming (Smalltalk)
• Functional programming
Programming
languages
31
32. Categorization of HOTs
MT analysis
• Process transformations to
extract meaningful data
MT synthesis
• Create new transformations from
data modeled in other forms
MT modification
• Manipulate the logic of an input
transformation
MT (de)composition
• Merge /split other MTs according
to a (de)composition criterion
M. Tisi, F. Jouault, P. Fraternali, S. Ceri, and J. Bézivin. On the Use of Higher-Order Model
Transformations. In Proc. of the 5thEuropean Conference on Model-Driven Architecture
Foundations and Applications (ECMDA2009), pp 18–32
33. Springer, 2009
33. ATL
Transformation
injection
• Textual
transformation is
translated into a
transformation
model
Higher-order
transformation
• Transformation
models for
• Input+output+HOT
Transformation
extraction
• Output model is
serialized into a
textual
transformation
33
34. Henshin
Generic, dynamically typed MT
o Transform metamodels and
instance models
at the same time
o Use special wrapper objects
Meta/Higher-order MT
o Henshin allows to mix
normal and HO
transformations
o E.g. Ecore2GenModel
(customization)
C. Krause, J. Dyck, H. Giese: Metamodel-Specific Coupled Evolution Based on Dynamically Typed
Graph Transformations. In Proc. of the 6th Int. Conf. on Theory and Practice of Model
Transformations (ICMT2013), pp 79–91. Springer, 34
2013
https://www.eclipse.org/henshin/examples.php
35. Transformation models in
Ongoing work on
o parsing Epsilon programs
o into abstract syntax models
o that conform to Ecore metamodels
o All task-specific language metamodels extend the core
(EOL) language metamodel
Abstract syntax models used to perform
o static type checking,
o dependency analysis,
o sub-optimal code detection
Ran Wei, Dimitris S. Kolovos: Automated Analysis, Validation and Suboptimal Code Detection in
Model Management Programs. In Proc. of the 2nd BigMDE Workshop, York, UK. 2014
35
36. Ramification in TCore
Goal: Customize generic
pattern languages to
domain-specific use
o Generate modeling
environment
quasi-automatically
o Implemented by HOT
o Relax – Augment - Modify
Usage: embedding MTs
into COTS tools
o MetaEdit+
o Matlab Simulink
36
Kühne, T.; Mezei, G.; Syriani, E.; Vangheluwe,
H. & Wimmer, M. Systematic Transformation
Development. Journal of the ECEASST: 21,
Multi-Paradigm Modeling, Denver (2009).
Input Meta-Model Output Meta-Model
Relax Augment Modify
Customized Pattern Meta-Model
37. MOFLON
Generic rewrite rules
o via JMI model repository
o Example: Generic checks
• attribute to be checked
passed as argument
• names of classes to be
checked
Reflective rewrite rules
o Examine metamodel first
and extract properties
o Instantiate generic rules on
the instance level
Application:
o Checking modeling
guidelines for Simulink
Carsten Amelunxen, Elodie Legros, Andy Schürr: Generic and reflective graph transformations
for the checking and enforcement of modeling guidelines. 37
VL/HCC 2008: pp. 211-218
38. Further approaches for HOT
MOTMOT (2006- )
Add language constructs
to Story Diagrams
Main Usage Scenario
o Copying + Adaptation
o Business Process Modeling
Medini QVT
Generate copy rules from
Ecore metamodels
Refinement
transformations
o Generic copy rules
o Exception rules
38
Pieter Van Gorp, H. Schippers, D. Janssens
Copying Subgraphs within Model Repositories.
5th Int. Workshop on Graph Transformation
and Visual Modeling Techniques, ENTCS, pp.
127-139, Vienna, Austria, 1 April 2006. Elsevier.
Thomas Goldschmidt, Guido Wachsmuth:
Refinement Transformation Support for QVT
Relational Transformations. 3rd Workshop on
Model Driven Software Engineering (MDSE
2008)
40. Evolution of the VIATRA Tool Family
VIATRA VIATRA2
VIATRA2
R3.2
„VIATRA3”
IncQuery
EMF-IncQuery
IncQuery-D
http://www.eclipse.org/incquery/
40
http://www.eclipse.org/viatra2/
41. VIATRA
Main facts & features:
o Written in Prolog
o XMI import/export for
arbitrary metamodels
o UML as rule language
o Auto-generated Prolog code
Main applications:
o SC2Promela: model checking
UML statecharts
o UML2DF: fault propagation
analysis
o SC2SPN: reliability analysis
Major projects:
o HIDE + National
Main publications:
o ASE 2002, SCP 2002
• XMI export/import
• Metamodel
Start:
Sep 2000
• Auto-generated MT
code from UML rules
• First complex MT
M1:
Summer
2001
• UML2DF transformation
• SC2SPN transformation
M2:
Summer
2002
• Development of new
Java/Eclipse version
End:
Early
2004
41
42. VIATRA2
Main Features
o Unified storage of
• Models + Metamodels +
Transformations
o Language:
• Graph transformation (GT)
• Abstract state machines (ASM)
o Hybrid pattern matching
• Local search + Incremental
o Live MT
• Event-driven
o VIATRA DSM support
o Design-space exploration
Main Projects:
o DECOS, SENSORIA, DIANA,
MOGENTES
Main Publications:
o SCP 2007, ICMT 08-09, MODELS09,
ASE2011, 3xSOSYM, STTT, AUSE
• Initial prototype: Spring 2004
• Eclipse start: @ GMT Sept 1st, 2005
Initial prototype:
Summer 2004
•Model space + GT + ASM
• 1 PhD + 3 MSc students
R1:
Oct 21, 2005
• GUI improvements & documentation
• 2 PhD student + 8 MSc students
R2:
Oct. 10, 2006
• EMF-based MT model
• 3 PhD students + 1 developer + *MSc
R3:
June 2, 2008
• Incremental & live MT, MT workflow
• 5 PhD students + * MSc
M3.1:
March 23, 2010
• EMF support + Visualization
• UML2, BPMN, BPEL importers
M3.2:
April 11, 2011
• Design-space exploration
• Incremental transitive closure
M3.3:
August, 2013
• Event-driven execution platform
• Complex Event Processing
VIATRA3
Video: http://vimeo.com/741248271
43. Selected Applications of VIATRA2
Toolchain for critical embedded systems
• Model-based tool integration
• Workflow-driven interactive design tools
• Ontology based consistency checks
• Model-driven test generation
Service-oriented applications
• Formal analysis and back-annotation of BPEL processes
• Model based performability analysis
• Model-based service deployment
• Incremental generation of service configurations
GRaTS
• with R. Heckel (Leicester) and P. Torrini
• Stochastic simulator for graph transformation systems
43
44. EMF-IncQuery
Main features:
o Define model queries
declaratively (with Xtext editors)
o Execute queries efficiently and
incrementally for EMF models
o Integrate queries into EMF apps
with no coding (validations,
viewers, derived features)
Contributors
o BME
o IncQuery Labs (Support)
o Itemis
Main publications:
o MODELS10, ICMT11, MODELS12,
ECMFA12, SOSYM14, SCP2014
o Demos at MODELS, ASE, ECMFA,
TOOLS, EclipseCon, …
• Initial version detached from VIATRA
• First performance benchmark
• 1.5 million model elements
1st internal
release: Spring
2010
• Project lead: István Ráth
• Team: Z. Ujhely, Á. Horváth, Á. Hegedüs,
G. Bergmann, T. Szabó, (D. Varró)
Eclipse start:
April 4, 2011
• IncQuery base: Efficient EMF navigation
• Inverse, allInstances, trans. closure
• Incremental
V0.4.0:
Nov 2011
• Xtext based query editor
• Derived features
• Validation framework
V0.6.5:
Oct 2012
• Event-driven VM
• Core viewers
• Xbase
V0.7.0:
July, 2013
• Query libraries + Xcore
• IQ Viewers
• IQ Debugger
V0.8.0:
July, 2014
44
CERTIMOT
45. Selected Applications (EMF-IncQuery)
• Complex traceability
• Query driven views
• Abstract models by
derived objects
Toolchain for
IMA configs
• Connect to Matlab
Simulink model
• Export: Matlab2EMF
• Change model in EMF
• Re-import:
EMF2Matlab
MATLAB-EMF
Bridge
• Live models
(refreshed 25
frame/s)
• Complex event
processing
Gesture
recognition
• Experiments on open
source Java projects
• Local search vs.
Incremental vs.
Native Java code
Detection of
bad code smells
• Rules for operations
• Complex structural
constraints (as GP)
• Hints and guidance
• Potentially infinite
state space
Design Space
Exploration
• Itemis (developer)
• Embraer
• Thales
• ThyssenKrupp
• CERN
Known Users
46. IncQuery-D
Main features:
o Distributed
• Storages
• Indexers
• Incremental Queries
o Deployed over cloud
infrastructure
o Goal: Scalability along
• # of machines
• Memory/CPU
• #of concurrent users
Contributors
o BME + IncQuery Labs
Main publications:
o Friday@MODELS 2014
o Invited talks at CloudMDE14,
GT-VMT14
• Proof of concept
• Initial architecture
• First performance
benchmark
V0.1
April 2013
• Multiple storage back-ends
• Manual performance
optimizations
V0.2
December
2013
• RDF-IncQuery language
• Monitoring +
Optimized allocation
• First external users
(students)
V0.3
September
2014
46
47. Acknowledgements
Current Contributors
o István Ráth, PhD
o Ákos Horváth, PhD
o Gábor Bergmann, PhD
o Ábel Hegedüs, PhD candidate,
(IncQuery Labs)
o Zoltán Ujhelyi, PhD candidate
o Dénes Harmath (IncQuery Labs)
o Tamás Szabó (Itemis)
o Benedek Izsó
o Gábor Szárnyas
o Oszkár Semeráth
o Csaba Debreceni
o István Dávid (Uni-Antwerp)
o András Szabolcs Nagy
o Márton Búr
o József Makai
o Dániel Stein
Past Contributors
o Prof. András Pataricza
o Gergely Varró, PhD
(TU Darmstadt)
o András Balogh, PhD
(ThyssenKruppPresta)
o András Schmidt (QGears)
o Dávid Vágó (Google)
o Balázs Grill (ThyssenKruppPresta)
o Zoltán Balogh
o András Ökrös
o Balázs Polgár, PhD
o Márk Czotter
o Dániel Tóth (NSN)
o Péter Pásztor
o Gergely Nyilas (Lufthansa Systems)
o Zsolt Sándor (Siemens PSE)
http://www.eclipse.org/viatra2/ 4h7ttp://www.eclipse.org/incquery/