This PhD thesis by István Ráth focuses on event-driven model transformations in domain-specific modeling languages. The thesis contains 3 parts: 1) developing concepts for event-driven graph transformations based on incremental pattern matching, 2) applying these concepts to provide advanced language engineering features like simulation, and 3) integrating modeling tools using change-driven transformations. The research aims to address challenges in scalability, usability and tool integration for model-driven software engineering.
This document provides an introduction to model-driven software development (MDSD). It discusses what MDSD is, why organizations adopt it, and how it can be applied. Key aspects of MDSD covered include code generation, domain-specific languages, separation of concerns, and economic benefits such as reduced costs from economies of scale and scope. The document also reviews various tools and approaches used in MDSD, including those based on UML, EMF, and DSLs. It concludes by emphasizing that MDSD can help improve software productivity and help establish true software engineering practices.
Introduction to architectures based on models, models and metamodels. model d...Vicente García Díaz
This document provides an introduction to model-driven architecture and model-driven engineering. It discusses the motivation for MDE, including reducing software complexity and improving productivity. The key concepts of MDE are models, metamodels, and model transformations to generate code and other artifacts. MDE aims to increase abstraction levels and automate software development processes. The document uses examples like state machines and database schemas to illustrate metamodels, modeling languages and model transformations.
The document discusses a common exchange format called DPDx for sharing design pattern detection results between different tools. It proposes metamodels to define design patterns, program element identifiers, and detection results to allow different tools to exchange information in a consistent way. This will enable combining results from multiple tools and improved analysis.
This document introduces a module on programming concepts in C++. The module will cover object-oriented programming principles, C++ basics, classes and objects, inheritance, pointers, and more. Students will learn to apply OOP to model real-world systems. Their knowledge will be assessed through a final exam and group coursework assignments focusing on programming and class design.
This document contains course notes for a Fortran programming course. It introduces basic computer science concepts like what a computer is, hardware and software, and how computer memory works. It then covers computer programs and programming, including an example temperature conversion program. It discusses programming languages, how to write programs, and common errors. It also provides an overview of the evolution of the Fortran programming language and its object oriented features.
This document discusses the design of low-density parity-check (LDPC) codes that provide unequal error protection (UEP) when used with higher order constellations (HOCs) like 8-PSK and 64-QAM. The proposed method divides the variable node degree distribution into sub-distributions corresponding to protection classes from the source coding and modulation classes of the HOC. An iterative linear programming approach is used to optimize the sub-distributions to enhance the UEP capability of the code for different signal-to-noise ratios, while reducing the overall bit error rate by accounting for the different bit error probabilities of the HOC. Simulation results show significant bit error rate reductions compared to codes optimized for binary phase-shift keying
This document provides an introduction to model-driven software development (MDSD). It discusses what MDSD is, why organizations adopt it, and how it can be applied. Key aspects of MDSD covered include code generation, domain-specific languages, separation of concerns, and economic benefits such as reduced costs from economies of scale and scope. The document also reviews various tools and approaches used in MDSD, including those based on UML, EMF, and DSLs. It concludes by emphasizing that MDSD can help improve software productivity and help establish true software engineering practices.
Introduction to architectures based on models, models and metamodels. model d...Vicente García Díaz
This document provides an introduction to model-driven architecture and model-driven engineering. It discusses the motivation for MDE, including reducing software complexity and improving productivity. The key concepts of MDE are models, metamodels, and model transformations to generate code and other artifacts. MDE aims to increase abstraction levels and automate software development processes. The document uses examples like state machines and database schemas to illustrate metamodels, modeling languages and model transformations.
The document discusses a common exchange format called DPDx for sharing design pattern detection results between different tools. It proposes metamodels to define design patterns, program element identifiers, and detection results to allow different tools to exchange information in a consistent way. This will enable combining results from multiple tools and improved analysis.
This document introduces a module on programming concepts in C++. The module will cover object-oriented programming principles, C++ basics, classes and objects, inheritance, pointers, and more. Students will learn to apply OOP to model real-world systems. Their knowledge will be assessed through a final exam and group coursework assignments focusing on programming and class design.
This document contains course notes for a Fortran programming course. It introduces basic computer science concepts like what a computer is, hardware and software, and how computer memory works. It then covers computer programs and programming, including an example temperature conversion program. It discusses programming languages, how to write programs, and common errors. It also provides an overview of the evolution of the Fortran programming language and its object oriented features.
This document discusses the design of low-density parity-check (LDPC) codes that provide unequal error protection (UEP) when used with higher order constellations (HOCs) like 8-PSK and 64-QAM. The proposed method divides the variable node degree distribution into sub-distributions corresponding to protection classes from the source coding and modulation classes of the HOC. An iterative linear programming approach is used to optimize the sub-distributions to enhance the UEP capability of the code for different signal-to-noise ratios, while reducing the overall bit error rate by accounting for the different bit error probabilities of the HOC. Simulation results show significant bit error rate reductions compared to codes optimized for binary phase-shift keying
Close Encounters in MDD: when models meet codelbergmans
“Close encounters in MDD: when Models meet Code”
Model-Driven Development (MDD) promises a number of advantages, which include the ability to work at higher abstraction levels, static reasoning about models, and generation of platform-specific code. To achieve this, generally a transformation-based approach is adopted, which generates code from models. In this presentation we discuss –in addition to the potential advantages– a number of possible misunderstandings and risks of MDD.
In particular, we address the risks of transformation-based software development, such as:
• It is rarely possible to generate the full functionality of a (sub-)system from models; as a result, it is necessary to either do additional ‘manual coding’ –a challenge to integrate with the generated code– or annotate the model with small or larger fragments of executable code, which has several restrictions and practical consequences: for instance it mingles abstraction levels, and reduces maintainability of code and models.
• MDD is particularly effective when various different models can be used, each optimized for a specific domain. However, when using transformation techniques, de combination of multiple models in an integrated application is far from trivial.
In this talk we propose –as a low-threshold approach–, ‘bottom-up’ model-driven development. This means that the focus on domain-specific abstractions remains, as well as the separation of platform-specific and platform-independent software. This approach, which is related to Domain-Driven Design and domain-specific languages (DSLs), aims to exploit the advantages of modeling in terms of abstractions, while at the same time reducing the gap between models and code. This can be achieved by specifying the models in code, while separating platform-specific code from the model code. An important issue is the capability to combine several different models, without getting into technical difficulties: we discuss existing as well as a novel approach, entitled Co-op, which aim to address this problem.
Finally, we discuss how the presented approach fits with the ‘scalable design’ approach for developing software that is scalable with respect to evolving requirements.
The document provides an overview of model-driven software development (MDSD). It discusses key concepts like models, domain-specific languages, code generation, and separation of concerns. The document also outlines some of the potential benefits of MDSD, including economies of scale and scope through reusable models and code generation. Overall, MDSD aims to increase productivity and quality by raising the level of abstraction and automating repetitive tasks.
Intelligent Tutoring Systems: The DynaLearn ApproachWouter Beek
The document describes the DynaLearn approach to developing intelligent tutoring systems. It focuses on using conceptual modeling to help students construct knowledge about systems. Students build qualitative models and receive feedback to improve their understanding. The approach includes several interactive learning spaces to provide guidance, diagnosis of errors, and engagement through virtual characters. The goal is to develop an environment that supports open-ended conceptual modeling to address declines in science education.
This document is a presentation on D Programming by Jonathan Mercier. It includes an introduction to D Programming and covers topics like objects, functions, parallelism, and basics of the language. The presentation is divided into sections on introduction, basics, GTK D, and thanks. It also provides context on why a new language was needed by listing the dates of other major languages like C++, Java, Python, and Ruby.
Unified Systems Engeneering with GoedelWorksEric Verhulst
1) The document discusses a metamodel for systems engineering called a "systems grammar" developed by Open License Society and used in various EU projects.
2) It is currently commercialized by Altreonic as GoedelWorks and refined by adding structure and properties to avoid overlapping concepts.
3) The metamodel takes a multi-level approach with different views and user levels that correspond to domains like process, engineering, modeling, and software.
From programming to software engineering: ICSE keynote slides availableCelso Martins
Meyer's blog:
"In response to many requests, I have made available [1] the slides of my education keynote at ICSE earlier this month. The theme was “From programming to software engineering: notes of an accidental teacher”. Some of the material has been presented before, notably at the Informatics Education Europe conference in Venice in 2009. (In research you can give a new talk every month, but in education things move at a more senatorial pace.) Still, part of the content is new. The talk is a summary of my experience teaching programming and software engineering at ETH."
The document introduces model-driven software development (MDSD) and provides examples to illustrate key concepts. MDSD uses models as primary artifacts in the development process which are transformed to executable code. Models conform to metamodels and can be transformed through one or more steps. Examples show models of components, workflows, and a power grid, along with their corresponding metamodels. MDSD aims to increase reuse, separate domain expertise from technical concerns, and make the development process more efficient.
This document provides a summary of design patterns including the Creational, Structural, and Behavioral categories. It lists 23 common design patterns such as Observer, Strategy, Command, Composite, and more. For each pattern it provides a brief description, example use case, and class/object diagram. The full document is intended as a quick reference guide to design patterns.
The document discusses applying structural operational semantics (SOS) to model-driven engineering (MDE). It introduces SOS and outlines how it can be used to formally define the semantics of domain-specific languages (DSLs) in MDE. The document presents an example of using SOS to define the semantics of a simple expression language to demonstrate how SOS rules specify the transition relation between language states. The goal is to make SOS useful for MDE by providing a semantic language and tool to simulate models defined using DSLs.
Industrial and Academic Experiences with a User Interaction Modeling Language...Marco Brambilla
This document discusses an industrial and academic modeling language called WebML used for modeling user interaction and interfaces. WebML was created to address the need for a standard modeling notation for user interaction that had usability and tool support. The document outlines the objectives of WebML which are to model the view components, modules, events and interactions of applications. It also describes the WebML notation and how it effectively models concepts like pages, navigation, and events with minimal overhead. Several successful industrial use cases are presented, including applications developed for Acer, GTT transportation group, and A2A utility, which demonstrate the benefits of WebML for rapid prototyping.
Assignment brief 32 & 33 idents & sto mo 2012 suevenables
This document provides an assignment brief for two BTEC National Diploma units: Unit 32 Designing Idents for Television and Unit 33 Stop Motion Animation. Students are asked to create a 30-60 second stop motion animation ident for the CWC TV channel. The ident must reflect the style and branding of CWC. Students will work in pairs but submit individual work. The brief outlines four tasks: understanding television idents and stop motion techniques; planning animation ideas; originating television ident plans; and producing a final animation and ident. It also provides grading criteria for evaluating work based on the units' learning outcomes.
This chapter discusses software design patterns, including why they evolved to capture recurring design solutions, defines a design pattern as describing communicating objects and classes that solve general problems, and describes fundamental GRASP patterns that assign responsibilities to experts, creators, or controllers to achieve high cohesion and low coupling.
The document discusses object-oriented programming concepts in C#, including abstract classes, sealed classes, interfaces, and file input/output operations. Abstract classes provide a partial implementation of an interface and contain abstract methods to be implemented in derived classes. Sealed classes cannot be inherited from. Interfaces define properties and methods without implementation. File input/output uses streams to read from and write to files, with the FileStream class opening and accessing files.
The document discusses Acceleo, a code generation tool from Eclipse. It provides an overview of Acceleo's history and capabilities. Key points include: (1) Acceleo allows generating code from models using templates based on the MTL standard; (2) A prototype demonstrates generating an Android app from a model using Acceleo templates; (3) Templates can be customized and extended to override default generation behavior. The tutorial aims to help beginners, experienced Acceleo users, and Android developers learn how to build code generators with Acceleo.
This document provides an overview of instance-based learning and k-nearest neighbors (kNN) classification. It discusses how kNN works by storing all training examples and classifying new instances based on the majority class of the k nearest neighbors. It covers selecting k, different distance functions, variants like distance-weighted and attribute-weighted kNN, and the strengths and weaknesses of the approach. The next class will discuss case-based reasoning and learning distance functions and prototypes.
The document provides an overview of object-oriented programming using C#. It discusses the rationale for using an object-oriented approach and describes the key concepts like classes, objects, states, behaviors, and interactions. It also outlines the objectives of learning about features of OOP methodology, defining classes and variables in C#, and writing and executing C# programs. The document uses examples like a car class to illustrate concepts like classes, objects, states and behaviors.
DUNE on current and next generation HPC PlatformsMarkus Blatt
In this talk we present the Distributed and Unified Numerics
Environment (DUNE). It is a software framework for the parallel
numerical solution of partial differential equations with grid-based
methods. Using generic programming techniques it strives for both:
high flexibility (efficiency of the programmer) and high performance
(efficiency of the program).
We present parallel applications realized with DUNE and
show their scalability on current HPC platforms such as the Blue
Gene/P system in Jülich.
Finally we will take a closer look on hardware attributes that
influence the scalability of DUNE and software solving partial
differential equations in general. We investigate how DUNE will
perform on future hardware like Blue Gene/Q.
Special emphasis will be put on the performance of parallel
iterative solvers both in general and in DUNE.
This document discusses using a relevance vector machine (RVM) for classifying remotely sensed images. It proposes a methodology that involves extracting features from remote sensing images using wavelet transforms, then classifying the features using an RVM. The RVM classification results in fewer "relevance vectors" than other methods, allowing for faster classification, which is important for applications requiring low complexity or real-time classification. The document provides background on RVMs and describes the key steps of the proposed classification methodology.
Learn more about C++Builder at http://www.embarcadero.com/products/cbuilder. John Thomas of Embarcadero Technologies presents C++ and its renewed usage in the high-growth mobile application development market with emphasis on the iOS and Android platforms. The presentation covers the brief history of C/C++, its renewed importance in modern application development with current frameworks, new C++11 language features, and vendor language extensions.
EMF-IncQuery 0.7 Presentation for ItemisIstvan Rath
The document introduces EMF-INCQUERY, a model query engine for Eclipse Modeling Framework (EMF) models. It provides an expressive graph pattern query language and incremental query evaluation based on the Rete algorithm. This enables efficient complex queries over large models. EMF-INCQUERY addresses performance issues of model queries in modeling tools and simplifies writing complex queries through reusable query libraries and pattern composition. It integrates with EMF-based applications and provides features like on-the-fly validation and view maintenance.
Close Encounters in MDD: when models meet codelbergmans
“Close encounters in MDD: when Models meet Code”
Model-Driven Development (MDD) promises a number of advantages, which include the ability to work at higher abstraction levels, static reasoning about models, and generation of platform-specific code. To achieve this, generally a transformation-based approach is adopted, which generates code from models. In this presentation we discuss –in addition to the potential advantages– a number of possible misunderstandings and risks of MDD.
In particular, we address the risks of transformation-based software development, such as:
• It is rarely possible to generate the full functionality of a (sub-)system from models; as a result, it is necessary to either do additional ‘manual coding’ –a challenge to integrate with the generated code– or annotate the model with small or larger fragments of executable code, which has several restrictions and practical consequences: for instance it mingles abstraction levels, and reduces maintainability of code and models.
• MDD is particularly effective when various different models can be used, each optimized for a specific domain. However, when using transformation techniques, de combination of multiple models in an integrated application is far from trivial.
In this talk we propose –as a low-threshold approach–, ‘bottom-up’ model-driven development. This means that the focus on domain-specific abstractions remains, as well as the separation of platform-specific and platform-independent software. This approach, which is related to Domain-Driven Design and domain-specific languages (DSLs), aims to exploit the advantages of modeling in terms of abstractions, while at the same time reducing the gap between models and code. This can be achieved by specifying the models in code, while separating platform-specific code from the model code. An important issue is the capability to combine several different models, without getting into technical difficulties: we discuss existing as well as a novel approach, entitled Co-op, which aim to address this problem.
Finally, we discuss how the presented approach fits with the ‘scalable design’ approach for developing software that is scalable with respect to evolving requirements.
The document provides an overview of model-driven software development (MDSD). It discusses key concepts like models, domain-specific languages, code generation, and separation of concerns. The document also outlines some of the potential benefits of MDSD, including economies of scale and scope through reusable models and code generation. Overall, MDSD aims to increase productivity and quality by raising the level of abstraction and automating repetitive tasks.
Intelligent Tutoring Systems: The DynaLearn ApproachWouter Beek
The document describes the DynaLearn approach to developing intelligent tutoring systems. It focuses on using conceptual modeling to help students construct knowledge about systems. Students build qualitative models and receive feedback to improve their understanding. The approach includes several interactive learning spaces to provide guidance, diagnosis of errors, and engagement through virtual characters. The goal is to develop an environment that supports open-ended conceptual modeling to address declines in science education.
This document is a presentation on D Programming by Jonathan Mercier. It includes an introduction to D Programming and covers topics like objects, functions, parallelism, and basics of the language. The presentation is divided into sections on introduction, basics, GTK D, and thanks. It also provides context on why a new language was needed by listing the dates of other major languages like C++, Java, Python, and Ruby.
Unified Systems Engeneering with GoedelWorksEric Verhulst
1) The document discusses a metamodel for systems engineering called a "systems grammar" developed by Open License Society and used in various EU projects.
2) It is currently commercialized by Altreonic as GoedelWorks and refined by adding structure and properties to avoid overlapping concepts.
3) The metamodel takes a multi-level approach with different views and user levels that correspond to domains like process, engineering, modeling, and software.
From programming to software engineering: ICSE keynote slides availableCelso Martins
Meyer's blog:
"In response to many requests, I have made available [1] the slides of my education keynote at ICSE earlier this month. The theme was “From programming to software engineering: notes of an accidental teacher”. Some of the material has been presented before, notably at the Informatics Education Europe conference in Venice in 2009. (In research you can give a new talk every month, but in education things move at a more senatorial pace.) Still, part of the content is new. The talk is a summary of my experience teaching programming and software engineering at ETH."
The document introduces model-driven software development (MDSD) and provides examples to illustrate key concepts. MDSD uses models as primary artifacts in the development process which are transformed to executable code. Models conform to metamodels and can be transformed through one or more steps. Examples show models of components, workflows, and a power grid, along with their corresponding metamodels. MDSD aims to increase reuse, separate domain expertise from technical concerns, and make the development process more efficient.
This document provides a summary of design patterns including the Creational, Structural, and Behavioral categories. It lists 23 common design patterns such as Observer, Strategy, Command, Composite, and more. For each pattern it provides a brief description, example use case, and class/object diagram. The full document is intended as a quick reference guide to design patterns.
The document discusses applying structural operational semantics (SOS) to model-driven engineering (MDE). It introduces SOS and outlines how it can be used to formally define the semantics of domain-specific languages (DSLs) in MDE. The document presents an example of using SOS to define the semantics of a simple expression language to demonstrate how SOS rules specify the transition relation between language states. The goal is to make SOS useful for MDE by providing a semantic language and tool to simulate models defined using DSLs.
Industrial and Academic Experiences with a User Interaction Modeling Language...Marco Brambilla
This document discusses an industrial and academic modeling language called WebML used for modeling user interaction and interfaces. WebML was created to address the need for a standard modeling notation for user interaction that had usability and tool support. The document outlines the objectives of WebML which are to model the view components, modules, events and interactions of applications. It also describes the WebML notation and how it effectively models concepts like pages, navigation, and events with minimal overhead. Several successful industrial use cases are presented, including applications developed for Acer, GTT transportation group, and A2A utility, which demonstrate the benefits of WebML for rapid prototyping.
Assignment brief 32 & 33 idents & sto mo 2012 suevenables
This document provides an assignment brief for two BTEC National Diploma units: Unit 32 Designing Idents for Television and Unit 33 Stop Motion Animation. Students are asked to create a 30-60 second stop motion animation ident for the CWC TV channel. The ident must reflect the style and branding of CWC. Students will work in pairs but submit individual work. The brief outlines four tasks: understanding television idents and stop motion techniques; planning animation ideas; originating television ident plans; and producing a final animation and ident. It also provides grading criteria for evaluating work based on the units' learning outcomes.
This chapter discusses software design patterns, including why they evolved to capture recurring design solutions, defines a design pattern as describing communicating objects and classes that solve general problems, and describes fundamental GRASP patterns that assign responsibilities to experts, creators, or controllers to achieve high cohesion and low coupling.
The document discusses object-oriented programming concepts in C#, including abstract classes, sealed classes, interfaces, and file input/output operations. Abstract classes provide a partial implementation of an interface and contain abstract methods to be implemented in derived classes. Sealed classes cannot be inherited from. Interfaces define properties and methods without implementation. File input/output uses streams to read from and write to files, with the FileStream class opening and accessing files.
The document discusses Acceleo, a code generation tool from Eclipse. It provides an overview of Acceleo's history and capabilities. Key points include: (1) Acceleo allows generating code from models using templates based on the MTL standard; (2) A prototype demonstrates generating an Android app from a model using Acceleo templates; (3) Templates can be customized and extended to override default generation behavior. The tutorial aims to help beginners, experienced Acceleo users, and Android developers learn how to build code generators with Acceleo.
This document provides an overview of instance-based learning and k-nearest neighbors (kNN) classification. It discusses how kNN works by storing all training examples and classifying new instances based on the majority class of the k nearest neighbors. It covers selecting k, different distance functions, variants like distance-weighted and attribute-weighted kNN, and the strengths and weaknesses of the approach. The next class will discuss case-based reasoning and learning distance functions and prototypes.
The document provides an overview of object-oriented programming using C#. It discusses the rationale for using an object-oriented approach and describes the key concepts like classes, objects, states, behaviors, and interactions. It also outlines the objectives of learning about features of OOP methodology, defining classes and variables in C#, and writing and executing C# programs. The document uses examples like a car class to illustrate concepts like classes, objects, states and behaviors.
DUNE on current and next generation HPC PlatformsMarkus Blatt
In this talk we present the Distributed and Unified Numerics
Environment (DUNE). It is a software framework for the parallel
numerical solution of partial differential equations with grid-based
methods. Using generic programming techniques it strives for both:
high flexibility (efficiency of the programmer) and high performance
(efficiency of the program).
We present parallel applications realized with DUNE and
show their scalability on current HPC platforms such as the Blue
Gene/P system in Jülich.
Finally we will take a closer look on hardware attributes that
influence the scalability of DUNE and software solving partial
differential equations in general. We investigate how DUNE will
perform on future hardware like Blue Gene/Q.
Special emphasis will be put on the performance of parallel
iterative solvers both in general and in DUNE.
This document discusses using a relevance vector machine (RVM) for classifying remotely sensed images. It proposes a methodology that involves extracting features from remote sensing images using wavelet transforms, then classifying the features using an RVM. The RVM classification results in fewer "relevance vectors" than other methods, allowing for faster classification, which is important for applications requiring low complexity or real-time classification. The document provides background on RVMs and describes the key steps of the proposed classification methodology.
Learn more about C++Builder at http://www.embarcadero.com/products/cbuilder. John Thomas of Embarcadero Technologies presents C++ and its renewed usage in the high-growth mobile application development market with emphasis on the iOS and Android platforms. The presentation covers the brief history of C/C++, its renewed importance in modern application development with current frameworks, new C++11 language features, and vendor language extensions.
EMF-IncQuery 0.7 Presentation for ItemisIstvan Rath
The document introduces EMF-INCQUERY, a model query engine for Eclipse Modeling Framework (EMF) models. It provides an expressive graph pattern query language and incremental query evaluation based on the Rete algorithm. This enables efficient complex queries over large models. EMF-INCQUERY addresses performance issues of model queries in modeling tools and simplifies writing complex queries through reusable query libraries and pattern composition. It integrates with EMF-based applications and provides features like on-the-fly validation and view maintenance.
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationIstvan Rath
This document discusses a new framework for semantic collaboration on Eclipse modeling projects. It aims to provide fine-grained access control for modeling assets while retaining compatibility with traditional version control systems. The framework uses model queries and transformations to filter models on the server-side according to access rules. This allows for rule-based, context-aware access policies without modifying modeling tools or infrastructure. A demonstration of the framework showed how standard version control features like locking, history and merging still work while providing improved security and flexibility over file-based access control. The framework was presented at MODELS 2016 and the authors are looking for contributors to help bring it to Eclipse.
Xcore meets IncQuery: How the New Generation of DSLs are MadeIstvan Rath
Slides for the presentation at EclipseCon Europe 2013.
For more details, see
http://www.eclipsecon.org/europe2013/xcore-meets-incquery-how-new-generation-dsls-are-made
http://incquery.net/blog/2013/10/xcore-meets-incquery-how-new-generation-dsls-are-made-talk-eclipsecon-europe-2013
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIstvan Rath
Slides for our talk at EclipseCon Europe 2015. More details at https://www.eclipsecon.org/europe2015/session/iot-supercharged-complex-event-processing-mqtt-eclipse-technologies
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Istvan Rath
Ebben a DemoCamp előadásban az EclipseCon Europe 2016 és SiriusCon 2016 konferenciák legfontosabb témáit, technológiáit foglalom össze, kiegészítve néhány szubjektív véleménnyel és megérzéssel a technológiai trendekről.
Modelling and code generation in .NET at IcineticIcinetic
MDD tools has matured a lot also in the .NET platform. This talk provides insights about how to use this technology to successfully used an MDD approach to professional development.
Pragmatic Model Driven Development using openArchitectureWareMichael Vorburger
The document discusses Odyssey Financial Technologies' use of Pragmatic Model Driven Development (MDD) using the openArchitectureWare framework. It positions their approach within the broader MDD/MDA landscape and describes openArchitectureWare and how it is used to generate code from models. Their Eclipse-based modeling tools are demonstrated, which utilize domain-specific languages to model different artifact types through a graphical interface.
SiriusCon 2015 - Breathe Life into Your Designer!melbats
You have your shiny new DSL up and running thanks to the Eclipse Modeling Technologies and you built a powerful tooling with graphical modelers, textual syntaxes or dedicated editors to support it. But how can you see what is going on when a model is executed ? Don't you need to simulate your design in some way ? Wouldn't you want to see your editors being animated directly within your modeling environment based on execution traces or simulator results?
The GEMOC Research Project designed a methodology to bring animation and execution analysis to DSLs. The companion technologies required to put this in action are small dedicated components (all open-source) at a "proof of concept" maturity level extending proven components : Sirius, Eclipse Debug, Xtend making such features within the reach of Eclipse based tooling. The general intent regarding those OSS technologies is to leverage them within different contexts and contribute them to Eclipse once proven strong enough. The method covers a large spectrum of use cases from DSLs with a straightforward execution semantic to a combination of different DSLs with concurrent execution semantic. Any tool provider can leverage both the technologies and the method to provide an executable DSL and animated graphical modelers to its users enabling simulation and debugging at an early phase of the design.
This talk presents the approach, the technologies and demonstrate it through an example: providing Eclipse Debug integration and diagram animation capabilities for Arduino Designer (EPL) : setting breakpoints, stepping forward or backward in the execution, inspecting the variables states... We will walk you through the steps required to develop such features, the choices to make and the trade-offs involved. Expects live demos with simulated blinking leds and a virtual cat robot ! This talks presents also xCapella an industrial use case onwhich the Gemoc methodology was applied.
This talks was presented at SiriusCon 2015 in collaboration with Jérôme Le Noir from Thales.
The Arduino Designer documentation is available on : https://github.com/mbats/arduino/wiki/Documentation
Reifying the concurrency concern into xDSML specificationsBenoit Combemale
This document discusses reifying the concurrency concern into executable domain-specific modeling language (xDSML) specifications. It describes an approach that separates concerns by defining a concurrency model and domain-specific actions with a mapping defined by domain-specific events. This approach has been implemented in the GEMOC studio tool and applied to languages like Activity Diagram. Managing semantic variation points in concurrency modeling is also discussed.
Spy On Your Models, Standard talk at EclipseCon 2011Hugo Bruneliere
The document discusses MoDisco, an Eclipse modeling project that uses models to represent and manipulate existing software systems. MoDisco aims to help with software modernization tasks like understanding legacy code, performing quality analysis, and migrating to new technologies. It includes a model browser for navigating and querying large and complex models. MoDisco is developed by a joint team from INRIA and Ecole des Mines de Nantes, with contributions from Mia-Software, Obeo, and other Eclipse members.
The Fedora Project provides free and open source software and content, including expert tools for electronics design, simulation, and embedded systems development. Fedora Electronic Lab offers a full suite of EDA tools integrated within the Fedora Linux distribution, including schematic capture, circuit simulation, FPGA and ASIC design, PCB layout, and microcontroller programming. The project aims to reduce costs and increase productivity for designers through its focus on open source solutions.
Introduction to the User Interface domain for business applications, a pattern based approach to model the UI and code generation techniques to make it possible.
Session for Code Generation 2011
This document provides guidance on framework design. It discusses how organizational structure and culture can impact a product. Frameworks should manage dependencies and balance new features with maintaining compatibility. Duplication and unfinished features should be avoided. APIs should be designed based on code samples for key scenarios before defining object models. Simplicity is important and thorough testing and measurement is needed. Framework engineering best practices from Microsoft, Cwalina, and Schmidt are referenced.
This document discusses domain-specific modeling languages (DSLs) and presents opportunities and challenges in their construction and use. It proposes an example-based process to engage domain experts in DSL development by automatically inducing a meta-model from example model fragments provided by experts. It also discusses opportunities to make DSLs more "active" by extending their use beyond static design-time scenarios, such as through mobile and context-aware modeling.
This document provides an overview of Model Driven Architecture (MDA). MDA is a framework defined by OMG that uses modeling languages as programming languages rather than just for design. It focuses on standardizing modeling to address issues with proliferated middleware solutions. MDA uses metamodeling to define modeling languages and transformations between models. It aims to improve portability, interoperability and productivity through separation of concerns between platform independent and specific models. However, challenges include limitations of existing modeling languages and lack of standardization for model transformations.
Close encounters in MDD: when Models meet Codelbergmans
Model-Driven Development (MDD) promises a number of advantages, which include the ability to work at higher abstraction levels, static reasoning about models, and generation of platform-specific code. To achieve this, generally a transformation-based approach is adopted, which generates code from models. In this presentation we discuss –in addition to the potential advantages– a number of possible misunderstandings and risks of MDD.
In particular, we address the risks of transformation-based software development, such as:
• It is rarely possible to generate the full functionality of a (sub-)system from models; as a result, it is necessary to either do additional ‘manual coding’ –a challenge to integrate with the generated code– or annotate the model with small or larger fragments of executable code, which has several restrictions and practical consequences: for instance it mingles abstraction levels, and reduces maintainability of code and models.
• MDD is particularly effective when various different models can be used, each optimized for a specific domain. However, when using transformation techniques, de combination of multiple models in an integrated application is far from trivial.
In this talk we propose –as a low-threshold approach–, ‘bottom-up’ model-driven development. This means that the focus on domain-specific abstractions remains, as well as the separation of platform-specific and platform-independent software. This approach, which is related to Domain-Driven Design and domain-specific languages (DSLs), aims to exploit the advantages of modeling in terms of abstractions, while at the same time reducing the gap between models and code. This can be achieved by specifying the models in code, while separating platform-specific code from the model code. An important issue is the capability to combine several different models, without getting into technical difficulties: we discuss existing as well as a novel approach, entitled Co-op, which aim to address this problem.
The document introduces model-driven development and domain-specific languages. It discusses how programming languages have evolved from being close to hardware to more abstract representations. Domain-specific languages allow focusing on specific concerns using natural notations for stakeholders. DSLs can be executed by transforming models into general purpose programs. The document provides examples of DSLs and discusses tools and standards for model-driven development.
Software Architecture: views and viewpointsHenry Muccini
This is an introductory lecture to Software Architecture Views and Viewpoints, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Future Trends on Software and Systems ModelingJordi Cabot
Modeling is more popular than ever, even if sometimes hidden behind other names (e.g. low-code). But of course, we can always do better.
In this talk, I'll describe the main technical/social challenges modeling is facing and the key trends that could solve them. We'll even throw some AI, Machine Learning and bots in the mix to show how modeling can be also useful there and even more, benefit from them, to move towards a smarter modeling future.
Software Modeling and Artificial Intelligence: friends or foes?Jordi Cabot
(1) Modeling and AI can be both friends and foes, depending on how they are used together.
(2) Model-driven engineering (MDE) approaches can help make AI systems like chatbots and machine learning pipelines more rigorous, robust, and interoperable by applying modeling principles.
(3) AI techniques like machine learning and deep learning also have the potential to enhance MDE, for example by enabling automated model transformations and smarter modeling tools with features like autocomplete.
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
5th of April 2016. My presentation done at the 3rd Architecture Centric Virtual Integration Workshop (ACVI) workshop, co-located with WICSA and Comparch 2016, Venice, Italy.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/IEEESoftware_2015.pdf
- The document discusses lessons learned from building the AMMA Model Engineering Platform, including the need for sound modeling principles with models treated as first-class entities.
- It describes how different technical spaces, like MDE, XML, and databases each have their own modeling conventions defined by metamodels.
- Transforming models across technical spaces requires understanding their different metamodels and representation schemes.
Similar to Event-driven Model Transformations in Domain-specific Modeling Languages (20)
The document discusses cloud-based modeling solutions from IncQuery Labs that enable tool integration. It describes challenges with large-scale collaboration and automation across multiple teams and tools. The IncQuery Model Checking Tool Suite uses a custom query language to perform validation checks and transformations across models stored in a repository. Case studies demonstrate tool integration workflows at companies like Airbus. Live demos of the solutions are also provided.
IncQuery Labs provides cloud-based modeling solutions to enable tool integration in model-based systems engineering (MBSE). Their IncQuery tool suite includes a desktop query authoring tool and backend server that allows running complex queries on large models. IncQuery was used to develop an interoperability platform for Airbus that automates workflows involving transformations between modeling tools and generates reports through a web interface.
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...Istvan Rath
Slides of the talk at the MBSE Cyber Experience Symposium 2019 (https://mbsecyberexperience2019.com/speakers/abstracts/item/mbse-meets-industrial-iot-introducing-the-new-magicdraw-connext-dds-plug-in)
IncQuery Server for Teamwork Cloud - Talk at IW2019Istvan Rath
IncQuery Server provides scalable query evaluation over collaborative model repositories. It uses a hybrid database technology that is 10-100x faster than conventional databases and supports large models and complex queries. IncQuery Server integrates with MagicDraw and Teamwork Cloud to enable version control, access control, and customizable queries for model validation and impact analysis.
Easier smart home development with simulators and rule enginesIstvan Rath
The document discusses using simulators and rule engines like Drools Fusion to make smart home development easier. It presents a smart home demonstrator that uses a HomeIO MQTT adapter, an extended event bus, and Drools rules to integrate a simulator with OpenHAB. Rules provide a simple yet flexible way to program smart home logic. The demonstrator source code is open source and available on GitHub to help developers prototype and test smart home applications.
- The VIATRA framework provides a model query and transformation engine for design tools, with applications in systems engineering.
- It features a declarative query language called VQL, Java and Xtend APIs, and a reactive engine for live queries and transformations.
- VIATRA helps validate design rules on large models, allowing designers to be immediately notified of violations during architecture design. It can efficiently query models with millions of elements.
Smarter internet of things with stream and event processing virtual io_t_meet...Istvan Rath
This document summarizes a presentation on using stream and event processing for smarter IoT applications. It introduces concepts like IoT, stream processing, complex event processing (CEP), and discusses how IncQuery Labs' smart home CEP demonstrator uses Drools Fusion for CEP integrated with Eclipse SmartHome and OpenHAB. The demonstrator features a home simulator, extended event bus, and sample rules. It aims to make smart home development easier by bringing CEP capabilities to the edge for low latency offline operation.
Modes3: Model-based Demonstrator for Smart and Safe SystemsIstvan Rath
A talk on Modes3, presented at the IoT Budapest Meetup (April 2017). https://www.meetup.com/IoT-Budapest/events/238267893/
More information:
http://inf.mit.bme.hu/en/research/projects/modes3
https://github.com/FTSRG/BME-MODES3
http://modes3.tumblr.com
The SENSORIA Development Environment is a CASE tool for service-oriented architecture (SOA) development from the SENSORIA EU FP6 project. It has 19 partners from 7 countries over 4 years with 4 million Euro funding. The tool provides an integrated platform for SOA development tools, allowing tools to be discovered, installed, composed, and orchestrated as services. The environment is based on Eclipse and OSGi services. It addresses challenges in SOA such as service specification, composition correctness, and continuous operation in changing environments.
Incremental pattern matching in the VIATRA2 model transformation frameworkIstvan Rath
This document discusses incremental pattern matching in the VIATRA2 model transformation framework. It introduces incremental pattern matching using the RETE algorithm as implemented in VIATRA2. The RETE algorithm caches pattern matches and incrementally updates them as the model changes. This allows pattern matching to be performed incrementally for efficient model transformations on evolving models. The document outlines how RETE networks are constructed from patterns and how they are updated based on model changes notified through the VIATRA framework. Initial performance analysis is discussed to compare incremental versus local search approaches.
Model transformations in the VIATRA2 frameworkIstvan Rath
This document discusses model transformations and their use in tool integration. It presents the VIATRA2 transformation framework, which allows modeling languages and tools to be connected through model transformations. Model transformations help address the major challenges of tool integration, including different modeling languages and continuous tool evolution. They enable moving models between tools while refining and synchronizing the models. This allows performing analyses like mathematical analysis on refined models and generating code or deployment descriptions to implement systems.
Live model transformations driven by incremental pattern matchingIstvan Rath
Live model transformations can be driven incrementally by detecting changes to the matching set of patterns over the model. The VIATRA implementation uses RETE networks to efficiently maintain and update the matching sets when models change. This enables live transformations to respond instantly to modifications by mapping only the changes to the target model. Future work aims to improve performance further and enhance the language for debugging and static analysis of live transformations.
Efficient model transformations by combining pattern matching strategiesIstvan Rath
This document discusses combining different pattern matching strategies to improve efficiency in model transformations. It presents research from the Budapest University of Technology and Economics on using both local search-based and incremental pattern matching techniques. The researchers developed a hybrid approach that selects the most efficient strategy for each pattern to optimize performance and memory usage during model transformations.
A benchmark evaluation for incremental pattern matching in graph transformationIstvan Rath
This document summarizes a presentation given at the Budapest University of Technology and Economics about benchmarking incremental pattern matching in graph transformation. It describes two case studies used as benchmarks: model simulation using petri nets and object-relational mapping for synchronization. Performance results are presented showing that the Rete algorithm provides predictable linear scaling for incremental pattern matching in practical problems.
Incremental pattern matching in the VIATRA2 model transformation systemIstvan Rath
Incremental pattern matching allows model transformations to update target models incrementally based on changes to the source model. The VIATRA model transformation system implements incremental pattern matching using a RETE network to efficiently retrieve matching sets as models change. Benchmark results show near-linear performance for sparse models and constant execution time for certain patterns. Future work includes improving construction algorithms and enabling event-driven live transformations.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
CAKE: Sharing Slices of Confidential Data on BlockchainClaudio Di Ciccio
Presented at the CAiSE 2024 Forum, Intelligent Information Systems, June 6th, Limassol, Cyprus.
Synopsis: Cooperative information systems typically involve various entities in a collaborative process within a distributed environment. Blockchain technology offers a mechanism for automating such processes, even when only partial trust exists among participants. The data stored on the blockchain is replicated across all nodes in the network, ensuring accessibility to all participants. While this aspect facilitates traceability, integrity, and persistence, it poses challenges for adopting public blockchains in enterprise settings due to confidentiality issues. In this paper, we present a software tool named Control Access via Key Encryption (CAKE), designed to ensure data confidentiality in scenarios involving public blockchains. After outlining its core components and functionalities, we showcase the application of CAKE in the context of a real-world cyber-security project within the logistics domain.
Paper: https://doi.org/10.1007/978-3-031-61000-4_16
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Mind map of terminologies used in context of Generative AI
Event-driven Model Transformations in Domain-specific Modeling Languages
1. Event-driven Model Transformations in
Domain-specific Modeling Languages
PhD thesis
István Ráth
Budapesti Műszaki és Gazdaságtudományi Egyetem
Méréstechnika és Információs Rendszerek Tanszék
7. Research goals
Advanced language Tool integration
engineering features
Change
propagation
Abstraction
Model Incremental
transformations code
generation
Simulation
“Middleware”
for MDSE
Multi-aspect
DSM complexity and usability
modeling challenges
Advanced language engineering solutions
9. Motivation: limited abstractions
Limitations of abstract-concrete syntax
representation in DSM language engineering
frameworks
Usability problem!
10. Separating abstract and concrete syntax
What?
Abstract Concrete
o concrete syntax diagrams
syntax syntax
o abstract syntax logical model
Why? Test : Class Test
o reduce complexity for the user
ID : Attribute
o Give more power
ID: id0
to the language engineer
“id0” :String
11. Objectives
Arbitrary mapping
o abstraction o diagram-specific
o aggregation elements
o decorators
Logical model Diagram
h0
p0 : Place
:token :token :token 3
t0:Token t1:Token t2:Token
12. Solution
Bi-directional mapping
o goal: arbitrary mapping
o means: event-driven transformations (EDT)
Logical model Diagram model Diagram
:model
p0 : Place _p0 : PlaceFigure h0
:token :token :token EDT :property
3
t0:Token t1:Token t2:Token tokenCount
:Property
13. Motivation: no design-time simulation support
Dynamic semantics specification and execution still a
missing feature from industrial DSM environments
Dedicated simulators serve a different purpose
General case: execution semantics introduced only during code
generation phase delayed appearance of design errors
14. Design-time simulation
Discrete Event System Specification (DEVS)
o Denotational semantics (specified by event-driven GT
rules) generic approach
o Supports state automata, Kripke structures, Petri nets,
DFNs, BPEL/BPMN, UML statecharts, …
Execution modes
o Interactive (guided debugging)
o Automatic (stochastic)
15. Simulation efficiency
Sparse Petri net benchmark
1000000
Viatra/RETE
100000 (x1k)
Execution time (ms)
10000
Viatra/LS (x1k)
1000
100 Viatra/RETE
(x1M)
10
100 1000 10000 100000
Petri net size
16. Thesis 2: automatic model transformations in domain-specific languages
2.1. Multi-aspect modeling for DSMLs based on multiple instantiation
and metamodel hierarchies
2.2. Complete separation of abstract and concrete syntax
representations
2.3. Design-time interactive simulation (specification and execution
semantics)
2.4. Efficient implementation techniques, verification by benchmarking
Collaboration
2.2. András Ökrös (MSc student)
2.3. Dávid Vágó
17. Important related publications
Journal paper
István Ráth, András Ökrös, and Dániel Varró. Synchronization of abstract and concrete syntax in
domain-specific modeling languages. Software and Systems Modeling, 9:453–471, 2010. 6 citations
International Conferences
Ajab Khan, Reiko Heckel, Paolo Torrini, and István Ráth. Model-based stochastic simulation of P2P
VoIP using graph transformation. 17th International Conference on Analytical and Stochastic Modeling
Techniques and Applications, 2010. 3 citations
Paolo Torrini, Reiko Heckel, and István Ráth. Stochastic simulation of graph transformation systems.
Fundamental Approaches to Software Engineering, 6013/2010 LNCS pp. 154–157. 3 citations
István Ráth, Dávid Vágó, and Dániel Varró. Design-time simulation of domain-specific models by
incremental pattern matching. The IEEE Symposium on Visual Languages and Human-Centric
Computing, VL/HCC 2008 pp. 219–222. Acceptance rate: 29%. 2 citations
István Ráth and Dániel Varró. Challenges for advanced domain-specific modeling frameworks.
International Workshop on Domain Specific Program Development(DSPD2006), Nantes, France, July
2006. 7 citations
National conferences
István Ráth. Modelltranszformációk integrált alkalmazása domain-specifikus nyelvekben. In Tavaszi
Szél Konferenciakiadvány, 2009.
István Ráth. Declarative mapping between abstract and concrete syntax of domain- specific visual
languages. In The Proceedings of the Fifth Conference of PhD Students in Computer Science, 2006.
18. Research goals
Advanced language Tool integration
engineering features
Change
propagation
Abstraction
Model Incremental
transformations code
generation
Simulation
“Middleware”
for MDSE
Multi-aspect
Efficiency
modeling for language engineering
Integrated MTs
new execution model
20. Motivation
Domain-specific modeling applications don’t align
well with the batch execution model
o Model/view synchronization
o Model queries and reports
modification
Key ideas:
Source model S1 S2 •
S3 Correlate events to
Sn
model changes
t tL transformation tL
• Capture formally by
tL
context graph pattern match
update set changes
Target model T1 T2
• Adapt graph
T3 Tn
transformations to
specify reactions
21. Graph Transformations in VIATRA2
LHS RHS
a1:inarc a2:outarc a1:inarc a2:outarc
Place Tran. Place Place Tran. Plan
ttn1:tokens tkn2:tokens
Token Token
matching updating
Phases of GT matching
– Pattern Matching phase
– Updating phase: delete+ create
Pattern Matching is the most critical issue from performance viewpoint
Matches can be cached and updated incrementally by RETE nets
Changes in the match sets can be detected efficiently
22. Event-driven graph
transformations C
C
D
Conditions
Transaction1
U
Incremental pattern
matcher C
Notification
Events D
D
Matching set delta monitor U
fall Model Store
MS(PA)
Execution
Commit
Engine
rise trigger
Transaction2
MS(PB)
actions
Transactions
23. Event-driven graph
transformations C
C
D
Conditions
Transaction1
U
Incremental pattern
matcher C
Notification
Events D
D
Matching set delta monitor U
fall Model Store
Event-Condition-Action
MS(PA) formalism Execution
Commit
• Adapted from expert systems Engine
• Specification language: graph triggers
• Execution semantics: priority queue automaton
rise trigger
Transaction2
MS(PB)
actions
Event-driven Transformations
• Run in the background
• React when necessary
• Model/view synchronization, change processing, … Transactions
24. Thesis 1: event-driven model transformations
1.1. Concepts for event-driven GT based on incremental pattern
matching
1.2. Execution semantics based on a queue automaton model
1.3. GT-based specification language: graph triggers
1.4. Efficient implementation techniques and a software
framework, verification by benchmarking
Collaboration
1.4. András Ökrös, Gábor Bergmann (MSc students)
25. Important related publications
Journal paper
István Ráth, András Ökrös, and Dániel Varró. Synchronization of abstract and concrete syntax in
domain-specific modeling languages. Software and Systems Modeling, 9:453–471, 2010. 6
citations
International conferences
István Ráth, Gábor Bergmann, András Ökrös, and Dániel Varró. Live model transformations
driven by incremental pattern matching. International Conference on Model Transformations
(ICMT2008), 5063/2008 LNCS, pp 107–121. Acceptance rate: 31%. 10 citations
Gábor Bergmann, Ákos Horváth, István Ráth, and Dániel Varró. Efficient model transformations
by combining pattern matching strategies. International Conference on Model Transformations
(ICMT2009), 5563/2009 LNCS, pp 20–34. Acceptance rate: 23% 4 citations
Gábor Bergmann, Ákos Horváth, István Ráth, and Dániel Varró. A benchmark evaluation of
incremental pattern matching in graph transformation. International Conference on Graph
Transformations, 5214/2008 LNCS, pp. 396–410. Acceptance rate: 40%. 11 citations
Gábor Bergmann, András Ökrös, István Ráth, Dániel Varró, and Gergely Varró. Incremental
pattern matching in the VIATRA transformation system. 3rd International Workshop on Graph
and Model Transformation. 30th International Conference on Software Engineering, 2008. 9
citations
27. Research goals
Advanced language Tool integration
engineering features
Change
propagation
Abstraction
Model Incremental
transformations code
generation
Simulation
“Middleware”
for MDSE
Multi-aspect
modeling
New applications
new execution infrastructure
28. Tool integration chains
Tool k
Tool 3 (documentation)
Tool 1 (model annotation)
(modeling)
Tool n
(code generator)
Tool 2
(analysis)
Tool m
(test generator)
Tool x (test
bench)
29. Tool integration chains
Tool k
Tool 3 (documentation)
Tool 1 (model annotation)
(modeling)
Tool n
(code generator)
Tool 2
(analysis)
Challenge 1: Tool m
Efficient change (test generator)
propagation
Tool x (test
bench)
30. Change-driven transformations
Incremental change propagation
Source model Traceability model Target model
MA TR MB
changeA changeB
Change-driven transformations
M’A TR’ M’B
Model-based
domain- Model
independent transformations for
change change processing
representation
31. Incremental and asynchronous code generation by CDTs
MA TR MB
changeA CMB
Asynchronous CDT
jPDL
Process
M’A TR’ M’B Description
IF
JBoss Workflow Engine
Graphical DSML <node name=“Interface Type Mapping”>
<action name=“UML2SAL Transformation”
class = “…”>
<toolId>UML2SAL transformer</toolId>
<functionId>UML2SAL</functionId>
<returnType>SALModel</returnType>
<params>
<entry>
<key>umlModel</key><value>...<value>
</entry>
</params>
</action>
<transition from=“initial_node”
to=“TCG-with-SAL-ATG” />
</node>
32. Incremental and asynchronous code generation by CDTs
MA TR MB
2 3
changeA CMB
Asynchronous CDT
jPDL
Process
M’A TR’ Description
IF 4 M’ B
JBoss Workflow Engine
Graphical DSML <node name=“Interface Type Mapping”>
<action name=“UML2SAL Transformation”
class = “…”>
<toolId>UML2SAL transformer</toolId>
<functionId>UML2SAL</functionId>
<returnType>SALModel</returnType>
<params>
<entry>
5
<key>umlModel</key><value>...<value>
1 </entry>
</params>
</action>
<transition from=“initial_node”
to=“TCG-with-SAL-ATG” />
</node>
33. Integration challenges
Tool k
Infrastructural challenges: (documentation)
• Many tools
• Many formats Tool 3
Tool 1
(modeling) (model annotation)
• Many (types of) users
• Collaborative data access Tool n
(code generator)
• Process management
Tool m
(test generator)
Solution:
Tool x (test bench)
Tool 2 SENSORIA Development Environment
(analysis) • Tool integration framework
• Model-based workflow orchestrations
• Distributed infrastructure based on a
model bus
34. Thesis 3: Tool integration based on change-driven transformations
3.1. Concept of change-driven transformations
3.2. New implementation techniques for incremental code generation by CDTs
3.3. Remote service invocation in the SENSORIA Development Environment
3.4. Implementation architecture for tool integration
3.5. Model-based framework for development workflows and synchronization
Collaboration
3.3. Ádám Horváth (MSc student)
3.4-3.5. Dr. Balázs Polgár & others
35. Important related publications
Book chapters
István Ráth and Philip Mayer. The SENSORIA Development Environment. Book chapter in: Rigorous
Software Engineering for Service-Oriented Systems: Results of the SENSORIA project on Software
Engineering for Service-Oriented Computing, Springer, 2010 (Accepted).
András Balogh, Gábor Bergmann, György Csertán, László Gönczy, Ákos Horváth, István Majzik, András
Patariza, Balázs Polgár, István Ráth, Dániel Varró, Gergely Varró. Workflow-driven tool integration
using model transformations. Book chapter in: Graph Transformations and Model-Driven
Engineering, 5765 LNCS, pp. 224–248. 1 citation
Journal paper
Bergmann Gábor, István Ráth, Gergely Varró, and Dániel Varró. Change-driven model transformations:
Change (in) the rule to rule the change. Journal of Software and Systems Modeling, 2011 (Accepted).
International conferences
István Ráth, Gergely Varró, and Dániel Varró. Change-driven model transformations. Model Driven
Engineering Languages and Systems, 12th International Conference, MODELS 2009. 5795/2009 LNCS.
Springer Best Paper Award and ACM Distinguished Paper Award; Acceptance rate: 18%. 2 citations
Balázs Polgár, István Ráth, Zoltán Szatmári, and István Majzik. Model-based Integration, Execution and
Certification of Development Tool-chains. The 2nd ECMDA Workshop on Model-Driven Tool and
Process Integration, 2009. 1 citation
37. New results
Event-driven transformations by incremental pattern matching
• Specification language
• Execution semantics and infrastructure
Advanced language engineering by EDTs
• Interactive/stochastic simulation of dynamic semantics
• Abstract-concrete synchronization
Tool integration by change-driven transformations
• Incremental code generation
• Incremental change propagation to deployed models
38. Applications of new results in the VIATRA2 project
VIATRA2: state-of-the-art graph transformation
framework
o Event-driven transformation engine
o ViatraDSM: domain-specific modeling front-end
Collaborative follow-up research
o GraTS: stochastic simulator developed with the
University of Leicester
o EMF-IncQuery: EMF-based implementation platform
for all of the new results
39. Applications in EU projects
DSM tools and incremental transformations
o Development workflow modeling
o Model synchronization,
change impact analysis
for requirements modeling
Tool integration
o SENSORIA Development Environment
• software engineering for SOA
SENSORIA
• automated configuration generation
Software Engineering for
• formal verification by model checking
o MOGENTES extended tool integration framework
Service-Oriented Overlay
• automated test generation for railway systems
Computers
40. Publication overview
Number of publications: 28
o Book chapters: 3
o International journal articles: 5
o International conference papers: 15
o National conference papers: 4
Peer reviewed: 24
Independent citations: 81, h-index: 6
ACM Distinguished Paper and Springer Best Paper
Awards at the MODELS 2009 Conference
42. Remark 1
„While the thesis demonstrates the breadth of
application of event-driven transformations, the
introduction of the thesis might be improved by
focusing more on event-driven
transformations, perhaps by including one or two
coherent, concise scenarios where event-driven
transformations are the most suitable approach to
apply solving the problem. These scenarios are
straightforward to produce, and may improve
readability.”
43. Answer
“Typical” EDT scenarios
o Model synchronization
o Well-formedness constraint evaluation
o Simulation
o Traceability management
44. Remark 2
„The breadth of applicability of the concepts outside
of the VIATRA2 framework would be strengthened
with either more detailed comparison with related
model management frameworks (oAW, AMMA and
Epsilon come to mind), or by summarising briefly
how the concept of event driven transformations
could be supported in other approaches. At the
moment, the thesis is presented almost entirely in
the context of VIATRA2; I am convinced that the
work is more generally applicable, but the thesis
could help the community more by synthesising
lessons learned that could help other model
management framework developers.”
45. Answer
Key: notion of event
Transformation needs to be split into two major
phases
o Query: Pattern matching-based approach for queries
supported by EMF-IncQuery over EMF models
o Model manipulation: EMF-based MT tools can be
invoked
o Care needs to be taken for technological issues
(parameter passing, …)
Other approaches for incremental queries also
feasible (Drools, Egyed’s inconsistency
management framework, …)
46. Question 1
„I would ask them, in particular, about the amount
of context needed to run an event
transformation, and about the relationship
between event-driven and batch transformation
(i.e., what problems may occur when having batch
and event-driven transformations interact).”
47. Answer
Context
o Detection of changes: match sets of patterns
o Global (session) variables
Event-driven vs. batch transformations
o EDT lifecycle can be managed by BTs
o BT (modules) can be called by EDTs
o Possible problems
• Parameter passing
• execution timeout
Open research question: how to transform an existing
BT into an EDT?
o Currently under investigation
48. Question 2
„I would also ask about the relationship between
event-driven transformations and complex event
processing engines, and the extent to which the
event infrastructure can deal with large numbers
of events.”
49. Answer
Event processing engines
o Drools
o IBM WebSphere JRules (ILOG)
o Esper
Slight difference in the notion of event
o Explicit events vs. inferred events
o Adaptation very well possible as shown by ongoing
research
Keys to Scalability
o (Filtering)
o Hybrid PM
• Combine INC + LS strategies
51. Question 1
„The thesis uses Petri nets as example. Did you
make experiments with real life domain specific
languages regarding any of your contributions?
(For example AUTOSAR is mentioned in Chapter 6
in connection with limitations of GMF.)”
52. Answer
DSMLs for academic prototypes
o E-R, Petri net, UML profile adaptations, …
DSMLs for workflow modeling
(SENSORIA, MOGENTES)
Queries for AUTOSAR (collaboration with OptXware)
Model synchronization in the SecMER tool
(SecureChange)
New work (not included in thesis):
o DSML synthesis based on ontologies
o Quick fix generation for BPMN
o Other industrial applications
53. Question 2
„In Section 5.4 when performance of event-driven
transformation engine is evaluated, it is stated
that practical model size is below 5000 nodes. How
is this number estimated?”
54. Answer
“It is important to note that for practical model sizes
(e.g. below the 5000 node count range), the event-
driven VIATRA/RETE engine can perform a
synchronization affecting a considerable portion of the
model in the 10-500 msec range which makes the
approach very suitable for interactive applications.”
Will be reworded
Illustrative example of what might be considered
practical
In general, this depends very much on the concrete
application
o scalability limit of our engine: 10^6 model elements
55. Question 3
„Design time model simulation can be controlled
through a user interface of the ViatraDSM
framework. Model elements can be decorated
using an API (in Figure 7.4 fireable transitions are
colored.) What kind of services are provided by
this programming interface? Beyond modifying
model elements, is there a possibility for example
to define regions – set of elements – and modify
their properties together?”
56. Answer
ViatraDSM’s model access and manipulation API
o Domain-specific queries (types)
o Basic CRUD
o Access to concrete syntax (arbitrary customization
w.r.t. Draw2D possible)
Generic queries (regions of elements)
o Possible by graph patterns
o Can be invoked from anywhere in the code
57. Question 4
„In Chapter 8 change-driven transformations are
introduced, where change impact analysis is
named as an application. As I could not find
[4], please explain the main results shortly. Give
an overview on other impact analysis techniques
(for example model level slicing) compared to
your solution.”
58. Answer
Impact analysis by slicing
o Change the program calculate the set of affected parts of the
program (control or data dependence)
Model slicing
o Change the model calculate a simplified set of (affected)
models
• Preserving semantics w.r.t. the sliced data
• Make formal analysis easier/faster
o Relies on a formalization of the language (e.g. class invariants
and operation pre/postconditions in UML)
Impact analysis in SecureChange
o interpretation of the model is performed by humans, so only
guidance is given
o Solved by change patterns defined on interconnected models