This document discusses approaches to reuse model transformations across different but related meta-models. It begins by motivating the problem of having to recreate transformations when meta-models change slightly. It then examines existing ad-hoc approaches to reuse that involve copying and adapting transformations, which is error-prone. The document proposes two main approaches: concept-based reuse and multi-level reuse. Concept-based reuse involves defining transformations over abstract concepts and automatically adapting them to concrete meta-models through bindings. Multi-level reuse defines transformations at a meta-meta-model level to apply generically to any language conforming to that meta-meta-model. The document discusses advantages and limitations of each approach, and considers how aspects of both could
Formally Defining and Iterating Infinite Models (MODELS 2012)Benoit Combemale
Talk given at MODELS 2012 and various seminars about a formal definition of the concept of infinite (software design) model, and associated iterators. Preprint available at https://hal.inria.fr/hal-00716623
This document discusses the implications of substitution in object-oriented programming. It explores issues like memory allocation, the meaning of assignment, and differences between equality and identity testing. Key challenges include not knowing object sizes until runtime, which leads to complex semantics or dynamic objects and garbage collection. Dynamic semantics also tend toward pointer semantics for assignment and non-guarantees for equality. The programmer must be able to redefine equality as needed but this can introduce paradoxes.
The document describes VHDL entities, architectures, and processes. It defines the entity as declaring the inputs and outputs of a model, while the architecture describes its operation. A process contains sequential statements and is sensitive to signals in its list. If-then-else statements allow describing a model's behavior. Generics allow parameterizing and reusing models for different sizes.
Differences between method overloading and method overridingPinky Anaya
The document discusses the differences between method overloading and method overriding in C#. Method overloading involves having multiple methods with the same name but different parameters, and can be used with or without inheritance. Method overriding involves having methods with the same name and signature in a base and derived class, requires inheritance, and uses virtual and override keywords. It is an example of runtime polymorphism.
LAST VERSION available here:
https://speakerdeck.com/opimedia/an-efficient-and-parallel-abstract-interpreter-in-scala-first-algorithm
Presentation for this master thesis.
https://bitbucket.org/OPiMedia/efficient-parallel-abstract-interpreter-in-scala
This is an intermediate conversion course for C++, suitable for second year computing students who may have learned Java or another language in first year.
The document discusses queues and their implementation and operations. It provides the names and roll numbers of group members working on a presentation about queues. It then defines a queue as a first-in first-out (FIFO) data structure where items can be inserted at one end and removed from the other. Various examples of queue applications are given. Implementation of queues using arrays is described, including tracking the front and rear indexes and how elements are added and removed. Pseudocode for queue insertion and removal algorithms is also provided.
The document summarizes news from the Business Council of Mongolia newsletter. It highlights that MCS won contracts over $33 million, fuel shortages may impact SouthGobi operations, and Voyager Resources acquired a porphyry copper project. It also provides updates on bond issuances, World Bank optimism for Mongolia's growth but warnings about similarities to pre-2008 crisis conditions, and plans for the country's first sovereign bond issuance later in May.
Formally Defining and Iterating Infinite Models (MODELS 2012)Benoit Combemale
Talk given at MODELS 2012 and various seminars about a formal definition of the concept of infinite (software design) model, and associated iterators. Preprint available at https://hal.inria.fr/hal-00716623
This document discusses the implications of substitution in object-oriented programming. It explores issues like memory allocation, the meaning of assignment, and differences between equality and identity testing. Key challenges include not knowing object sizes until runtime, which leads to complex semantics or dynamic objects and garbage collection. Dynamic semantics also tend toward pointer semantics for assignment and non-guarantees for equality. The programmer must be able to redefine equality as needed but this can introduce paradoxes.
The document describes VHDL entities, architectures, and processes. It defines the entity as declaring the inputs and outputs of a model, while the architecture describes its operation. A process contains sequential statements and is sensitive to signals in its list. If-then-else statements allow describing a model's behavior. Generics allow parameterizing and reusing models for different sizes.
Differences between method overloading and method overridingPinky Anaya
The document discusses the differences between method overloading and method overriding in C#. Method overloading involves having multiple methods with the same name but different parameters, and can be used with or without inheritance. Method overriding involves having methods with the same name and signature in a base and derived class, requires inheritance, and uses virtual and override keywords. It is an example of runtime polymorphism.
LAST VERSION available here:
https://speakerdeck.com/opimedia/an-efficient-and-parallel-abstract-interpreter-in-scala-first-algorithm
Presentation for this master thesis.
https://bitbucket.org/OPiMedia/efficient-parallel-abstract-interpreter-in-scala
This is an intermediate conversion course for C++, suitable for second year computing students who may have learned Java or another language in first year.
The document discusses queues and their implementation and operations. It provides the names and roll numbers of group members working on a presentation about queues. It then defines a queue as a first-in first-out (FIFO) data structure where items can be inserted at one end and removed from the other. Various examples of queue applications are given. Implementation of queues using arrays is described, including tracking the front and rear indexes and how elements are added and removed. Pseudocode for queue insertion and removal algorithms is also provided.
The document summarizes news from the Business Council of Mongolia newsletter. It highlights that MCS won contracts over $33 million, fuel shortages may impact SouthGobi operations, and Voyager Resources acquired a porphyry copper project. It also provides updates on bond issuances, World Bank optimism for Mongolia's growth but warnings about similarities to pre-2008 crisis conditions, and plans for the country's first sovereign bond issuance later in May.
This document summarizes a newsletter from the Business Council of Mongolia dated March 1, 2013. It includes sections on business, economy, and politics news highlights. In the business section, it discusses ongoing talks between investors of the Oyu Tolgoi project and the Mongolian government. It also mentions several personnel changes at companies operating in Mongolia like Turquoise Hill Resources and Energy Resources LLC expanding its coal processing capacity. The economic section notes updates on mining, finance, and economic indicators. The politics section discusses proposed revisions to Mongolia's minerals law and investigations into corruption cases.
This document discusses developing academic numeracy and IT skills. It includes a range showing the ages of respondents, with the largest group being between 30-40 years old. Several charts show results of a survey on topics like rating tourism in Brunei, preferred types of tourism to develop, opinions on if transportation is a main problem, and preferred types of transport to install. The document analyzes survey results related to skills, tourism, and transportation in Brunei.
2nd International Conference on Inclusive Innovation and Innovative managemen...Pramila (มีล่า) Shrestha
The abstract from various presenters/researchers who presented their papers on 2nd International Conference on Inclusive Innovation and Innovative management held on December 11-12, 2014.
Your final year engineering project could be your first startup. This PPT aims to help final year student by answering small doubts they may have before or during their final year project development. Get answers like:
1. How a good final year project can land them in their dream job.
2. How to get ideas for final year project.
3. Why and how to maintain team.
4. How to plan properly in order to finish project before time.
5. Why presentation is important.
6. My contact details for guidance at any time.
The document provides 20 potential topics for persuasive essays. Each topic is accompanied by a brief overview of the issue and notes that there are generally two sides to each topic that could be argued. Some of the topics included are: whether social media causes isolation, if guns should be allowed on college campuses, if the minimum wage should be increased, and if childhood vaccinations should be mandatory. The document was created by M. Riddell and is based on information from a website with tips for choosing persuasive essay topics.
'What's it like to be an app?' experience prototyping workshop -- the outputMade by Many
For Internet Week Europe 2012, Made by Many held an experience prototyping workshop entitled 'What's it like to be an app?'.
This presentation documents the output of the workshop. For more information on experience prototyping, check out Made by Many's presentations.
Rubén Darío fue el máximo representante del modernismo literario en español. Nació en Nicaragua en 1867 y viajó por Sudamérica. Publicó varios libros de poesía como Azul... (1888) y Prosas profanas y otros poemas (1896), que introdujeron el estilo modernista con temas exóticos y variada métrica. También escribió obras en prosa como España contemporánea (1901) y Peregrinaciones (1901). Se le considera el iniciador del modernismo hispanoamericano.
This document instructs the reader to write a shell program that is similar to the example shell program shown in Figure 1-19, but contains fully functioning code that can be tested. The reader is also encouraged to add additional shell features such as input/output redirection, pipes, and background jobs to the program.
The document summarizes model-driven engineering (MDE) and discusses approaches to reuse in MDE transformations. Specifically:
- MDE aims to increase abstraction in software development by modeling at a higher level of abstraction rather than coding directly. Models are used to describe problems, simulate/verify/test, and generate code.
- Reusing MDE artifacts like transformations is challenging as they are defined for specific meta-models. Current practice involves ad-hoc copying and adapting transformations, which is error-prone.
- The document presents three approaches to improve reuse: concepts, multi-level modeling, and a-posteriori typing. Concepts define transformations at a more abstract level and allow automated adaptation.
This document provides an overview of the Model-Driven Engineering (MDE) research activities at the MISO group at the Autonomous University of Madrid. The MISO group conducts research in (meta-)modeling, domain-specific languages, and model transformations. Their work includes multi-level modeling, a-posteriori typing, modeling through social networks, active DSLs, transformation analysis, and techniques for improving the reusability of model transformations.
The document provides an overview of the Model-Driven Engineering (MDE) research activities of the MISO group at the Universidad Autónoma de Madrid. The MISO group focuses on areas like (meta-)modelling, domain-specific languages, and model transformations. Some of their work includes multi-level modelling, a-posteriori typing, modelling through social networks, pattern-based development of DSLs, and analysis of model transformations for correctness.
The document discusses using Model Driven Architecture (MDA) to reengineer legacy software systems in a more automated way compared to traditional reengineering approaches. MDA provides platform independent and specific models that can be used to generate code for different platforms, formalizing the mapping of services between source and target platforms. Several papers are referenced that propose techniques for static and dynamic analysis of code to generate UML models as part of the reengineering process using MDA.
Twins: Object Oriented Programming and Functional ProgrammingRichardWarburton
Object-Oriented Programming has well established design principles, such as SOLID. For many developers architecture and functional programming are at odds with each other: they don’t know how their existing tricks of the trade convert into functional design. This problem becomes worse as hybrid languages such as Java 8 or Scala become common. We’ll talk about how functional programming helps you implement the SOLID principles, and how a functional mindset can actually help you achieve cleaner and simpler OO design.
This document discusses object-oriented programming (OOP) principles and functional programming (FP) concepts. It covers SOLID principles like single responsibility, open/closed principles and dependency inversion. It also discusses design patterns like command and observer patterns and how they can be expressed functionally using higher-order functions. The document notes that popular programming languages have evolved from a multiparadigm approach in the 1980s to an object-oriented dominance period, and are now becoming increasingly multiparadigm again with integrated support for functional programming concepts.
The document discusses reviewing object-oriented design patterns. It begins with definitions of design patterns and their history. It then covers the core tenets of OOP like encapsulation, abstraction, inheritance, polymorphism. Specific patterns like singleton, command, and dependency injection are explained with examples. The document stresses principles for good design like avoiding duplication, loose coupling, single responsibility.
On the Semantics of Real-Time Domain Specific Modeling LanguagesJose E. Rivera
This document summarizes Jose E. Rivera's PhD thesis on providing formal semantics for real-time domain specific modeling languages. The thesis defines a framework for specifying the timed behavior of domain specific modeling languages using rewriting logic. It extends in-place model transformations to include time-dependent behavior. Models are formally specified in Maude, enabling simulation and analysis of real-time properties. The work contributes tools and techniques for formally specifying, simulating, and analyzing real-time domain specific modeling languages.
This document discusses the development of executable models of fissile reactor systems for hardware simulation and design. The models are converted from DESIRE simulation models to C++ code using an automatic conversion process. This allows the models to be run on Windows computers and used for engineering design and training simulations. The conversion process and numerical integration engine are described. The document also outlines the engineering design interface and simulator backend that have been developed to utilize the executable models.
A seminar in advanced Software Engineering concerning using models to guide the development process, and QVT to transfer a model into another model automatically
This document summarizes a newsletter from the Business Council of Mongolia dated March 1, 2013. It includes sections on business, economy, and politics news highlights. In the business section, it discusses ongoing talks between investors of the Oyu Tolgoi project and the Mongolian government. It also mentions several personnel changes at companies operating in Mongolia like Turquoise Hill Resources and Energy Resources LLC expanding its coal processing capacity. The economic section notes updates on mining, finance, and economic indicators. The politics section discusses proposed revisions to Mongolia's minerals law and investigations into corruption cases.
This document discusses developing academic numeracy and IT skills. It includes a range showing the ages of respondents, with the largest group being between 30-40 years old. Several charts show results of a survey on topics like rating tourism in Brunei, preferred types of tourism to develop, opinions on if transportation is a main problem, and preferred types of transport to install. The document analyzes survey results related to skills, tourism, and transportation in Brunei.
2nd International Conference on Inclusive Innovation and Innovative managemen...Pramila (มีล่า) Shrestha
The abstract from various presenters/researchers who presented their papers on 2nd International Conference on Inclusive Innovation and Innovative management held on December 11-12, 2014.
Your final year engineering project could be your first startup. This PPT aims to help final year student by answering small doubts they may have before or during their final year project development. Get answers like:
1. How a good final year project can land them in their dream job.
2. How to get ideas for final year project.
3. Why and how to maintain team.
4. How to plan properly in order to finish project before time.
5. Why presentation is important.
6. My contact details for guidance at any time.
The document provides 20 potential topics for persuasive essays. Each topic is accompanied by a brief overview of the issue and notes that there are generally two sides to each topic that could be argued. Some of the topics included are: whether social media causes isolation, if guns should be allowed on college campuses, if the minimum wage should be increased, and if childhood vaccinations should be mandatory. The document was created by M. Riddell and is based on information from a website with tips for choosing persuasive essay topics.
'What's it like to be an app?' experience prototyping workshop -- the outputMade by Many
For Internet Week Europe 2012, Made by Many held an experience prototyping workshop entitled 'What's it like to be an app?'.
This presentation documents the output of the workshop. For more information on experience prototyping, check out Made by Many's presentations.
Rubén Darío fue el máximo representante del modernismo literario en español. Nació en Nicaragua en 1867 y viajó por Sudamérica. Publicó varios libros de poesía como Azul... (1888) y Prosas profanas y otros poemas (1896), que introdujeron el estilo modernista con temas exóticos y variada métrica. También escribió obras en prosa como España contemporánea (1901) y Peregrinaciones (1901). Se le considera el iniciador del modernismo hispanoamericano.
This document instructs the reader to write a shell program that is similar to the example shell program shown in Figure 1-19, but contains fully functioning code that can be tested. The reader is also encouraged to add additional shell features such as input/output redirection, pipes, and background jobs to the program.
The document summarizes model-driven engineering (MDE) and discusses approaches to reuse in MDE transformations. Specifically:
- MDE aims to increase abstraction in software development by modeling at a higher level of abstraction rather than coding directly. Models are used to describe problems, simulate/verify/test, and generate code.
- Reusing MDE artifacts like transformations is challenging as they are defined for specific meta-models. Current practice involves ad-hoc copying and adapting transformations, which is error-prone.
- The document presents three approaches to improve reuse: concepts, multi-level modeling, and a-posteriori typing. Concepts define transformations at a more abstract level and allow automated adaptation.
This document provides an overview of the Model-Driven Engineering (MDE) research activities at the MISO group at the Autonomous University of Madrid. The MISO group conducts research in (meta-)modeling, domain-specific languages, and model transformations. Their work includes multi-level modeling, a-posteriori typing, modeling through social networks, active DSLs, transformation analysis, and techniques for improving the reusability of model transformations.
The document provides an overview of the Model-Driven Engineering (MDE) research activities of the MISO group at the Universidad Autónoma de Madrid. The MISO group focuses on areas like (meta-)modelling, domain-specific languages, and model transformations. Some of their work includes multi-level modelling, a-posteriori typing, modelling through social networks, pattern-based development of DSLs, and analysis of model transformations for correctness.
The document discusses using Model Driven Architecture (MDA) to reengineer legacy software systems in a more automated way compared to traditional reengineering approaches. MDA provides platform independent and specific models that can be used to generate code for different platforms, formalizing the mapping of services between source and target platforms. Several papers are referenced that propose techniques for static and dynamic analysis of code to generate UML models as part of the reengineering process using MDA.
Twins: Object Oriented Programming and Functional ProgrammingRichardWarburton
Object-Oriented Programming has well established design principles, such as SOLID. For many developers architecture and functional programming are at odds with each other: they don’t know how their existing tricks of the trade convert into functional design. This problem becomes worse as hybrid languages such as Java 8 or Scala become common. We’ll talk about how functional programming helps you implement the SOLID principles, and how a functional mindset can actually help you achieve cleaner and simpler OO design.
This document discusses object-oriented programming (OOP) principles and functional programming (FP) concepts. It covers SOLID principles like single responsibility, open/closed principles and dependency inversion. It also discusses design patterns like command and observer patterns and how they can be expressed functionally using higher-order functions. The document notes that popular programming languages have evolved from a multiparadigm approach in the 1980s to an object-oriented dominance period, and are now becoming increasingly multiparadigm again with integrated support for functional programming concepts.
The document discusses reviewing object-oriented design patterns. It begins with definitions of design patterns and their history. It then covers the core tenets of OOP like encapsulation, abstraction, inheritance, polymorphism. Specific patterns like singleton, command, and dependency injection are explained with examples. The document stresses principles for good design like avoiding duplication, loose coupling, single responsibility.
On the Semantics of Real-Time Domain Specific Modeling LanguagesJose E. Rivera
This document summarizes Jose E. Rivera's PhD thesis on providing formal semantics for real-time domain specific modeling languages. The thesis defines a framework for specifying the timed behavior of domain specific modeling languages using rewriting logic. It extends in-place model transformations to include time-dependent behavior. Models are formally specified in Maude, enabling simulation and analysis of real-time properties. The work contributes tools and techniques for formally specifying, simulating, and analyzing real-time domain specific modeling languages.
This document discusses the development of executable models of fissile reactor systems for hardware simulation and design. The models are converted from DESIRE simulation models to C++ code using an automatic conversion process. This allows the models to be run on Windows computers and used for engineering design and training simulations. The conversion process and numerical integration engine are described. The document also outlines the engineering design interface and simulator backend that have been developed to utilize the executable models.
A seminar in advanced Software Engineering concerning using models to guide the development process, and QVT to transfer a model into another model automatically
This document provides an overview and introduction to LINQ (Language Integrated Query). It discusses key LINQ concepts like LINQ to SQL, LINQ providers, extension methods, lambda expressions, and expression trees. It explains that LINQ allows querying over various data sources using a consistent SQL-like syntax. The document also previews upcoming sections on LINQ usage, performance, advanced topics, and references additional learning resources.
Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)Ovidiu Farauanu
Discussing Design Patterns and OOP popularity,
Multithreading and OOP,
Functional Design for Multithreaded programming
and how Multithreading does not mean always concurency but multicore paralelism.
A-posteriori typing for model-driven engineeringmiso_uam
This document describes a-posteriori typing for model-driven engineering. A-posteriori typing decouples an object's instantiation from its classification, allowing objects to have multiple classifiers and change classifiers at runtime. This is more flexible than traditional constructive typing. The document outlines the design space of possible MDE typings and proposes specifying typings at the type level and instance level. It also discusses analyzing type safety, applying typings to enable bidirectional model transformations through reclassification, and flexibly reusing operations across models. A-posteriori typing supports more flexible reuse, transformation, and analysis for model-driven engineering.
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxMarco Parenzan
Did interfaces in C# need evolution? Maybe yes. Are they violating some fundamental principles? We see. Are we asking for some hoops? Let's see all this by telling a story (of code, of course)
The document discusses situational method engineering and describes methods as units of modeling and description for work allocation, coordination, and execution. It notes the abundance of methods used in different domains and problems with comparing and combining methods. Situational method engineering is proposed as an approach to generate methods tailored to specific situations by selecting appropriate elements from a reference library of methods. Key aspects discussed include method representation using models and ontologies, roles in situational method engineering such as methodologists and method engineers, and enacting methods with tools and through reflection and improvement cycles.
The document provides a biography and background information on Daniel N. Egan, including his roles as a Microsoft Regional Director, Microsoft MVP for ASP.Net, author, and speaker. It then outlines the topics to be covered in the presentation, including object relational mappers, language enhancements in C# and VB.Net, LINQ goals, fundamentals and usage.
Task Models describe how to perform activities to reach users' goals. Task models represent the intersection between user interface design and more systematic approaches. Task models can be represented at various abstraction levels. When designers want to specify only requirements regarding how activities should be performed, they consider only the main high-level tasks. On the other hand, when designers aim to provide precise design indications then the activities are represented at a small granularity, thus including aspects related to the dialogue model of a user interface (which defines how system and user actions can be sequenced). In this paper a comparative analysis of selected models involving multiple users in an interaction is provided in order to identify concepts which are underexplored in today’s multi-user interaction task modeling. This comparative analysis is based on three families of criteria: information criteria, conceptual coverage, and expressive¬ness. Merging the meta-models of the selected models enables to come up with a broader meta-model that could be instantiated in most situations involving multi-user interaction, like workflow information systems, CSCW.
Aggregates, Entities and Value objects - Devnology 2010 community dayRick van der Arend
This document summarizes a presentation about aggregates, entities, and value objects. It begins with introductions and definitions of these terms. It then discusses the nature of methods, models, and aggregates. Specifically, it defines aggregates as clusters of associated objects treated as a unit for data changes. It suggests modeling aggregates as actors with an incoming message queue to handle changes asynchronously. This improves concurrency and models aggregates as consistency and concurrency boundaries.
Similar to Approaches to Model Transformation Reuse: from Concepts to A-posteriori typing (20)
This document describes a model-driven approach to building augmented reality (AR) applications. Key points:
- AR applications are specified using models that describe the domain, AR representation, object anchoring using techniques like QR codes and beacons, and interaction with external APIs.
- An AR interpreter renders the virtual objects based on the models and allows interaction in the physical world.
- The approach was evaluated through case studies of AR apps for networking, museums, home design, inventory, and social media. A user study found the AR apps to have good usability.
- Future work includes adding physics, collaborative editing, migrating the designer to the web, and more user studies.
This document presents a modular approach to defining families of domain-specific languages (DSLs) using graph transformations. The approach uses language modules that define the abstract syntax and semantics of DSL variants. Module dependencies and extensions define how the variants relate and combine. Configurations select modules to derive a specific DSL meta-model and rules. The approach reduces specification effort compared to defining each variant separately while ensuring behavioral consistency. Tool support and experiments demonstrate the feasibility of the modular approach.
Multi-level modelling allows modelling at more than two meta-levels at once. The document discusses how multi-level modelling can be used for model-driven engineering. It presents the basics of multi-level modelling using concepts like clabjects, potency, levels and the orthogonal classification architecture. Examples are provided where multi-level modelling has advantages over two-level modelling, such as for modelling product types and instances, and domain-specific process modelling languages. Tool support for multi-level modelling is discussed, as well as how multi-level models can be managed through constraints, transformations and code generation.
The document proposes a novel approach called multi-level model product lines (MLM PLs) that combines multi-level modeling and product lines to create highly configurable families of modeling languages. MLM PLs support open variability through instantiation at different meta-levels and closed variability through feature configurations. A theory and tool implementation are presented, allowing exploratory modeling where variability can be resolved incrementally. The approach is demonstrated using the MetaDepth modeling environment.
This document provides an overview of scientific paper writing. It discusses why publishing research is important, different types of venues and their review processes. It also covers topics such as ethics in publishing, rankings of venues and authors, and types of papers. The document then describes how to structure a research paper, including sections such as the introduction, main body, related work, and conclusions. Finally, it provides tips for scientific writing and the publication process.
The document discusses flexible modeling based on facets. It introduces facets as objects that can be added to and removed from host objects, acquiring their slots, types, and constraints. This allows objects to become open and dynamically extendable. Facets provide a way to reuse operations on models, extend existing objects with new information, and view models through different "scenes". Facet laws and interfaces control facet acquisition and removal and which meta-models can be used for facets.
The document discusses mutation testing for ATL model transformations. It introduces mutation testing and how it can be applied to ATL. The key contributions are new mutation operators for ATL that mimic common developer errors, evaluation of test generation techniques and operators, and an open-source tool for mutation testing of ATL.
Máster en Métodos Formales en Ingeniería Informáticamiso_uam
Presentación del Máster en Métodos Formales en Ingeniería Informática en jornadas de posgrado en la facultad de ciencias de la Universidad Autónoma de Madrid
This document discusses analysing meta-model product lines (MMPLs) through lifted analysis techniques. It presents MMPLs as a compact representation of multiple meta-model variants defined through features. It aims to ensure the correctness of MMPLs by lifting existing meta-model analysis techniques to the product line level, including syntactic analysis of meta-models and checking meta-model properties. The key contributions are a declarative notion of MMPLs, lifted analyses to check well-formedness and properties more efficiently than enumerating each meta-model, and a classification of different property types that can be analysed on MMPLs. Tool support for specification and analysis of MMPLs is also discussed.
This document discusses facet-oriented modeling, which introduces the concept of facets to provide flexibility and dynamism to model-driven engineering. Facets allow objects to dynamically acquire and drop slots, types, and constraints. A facet is an object that becomes part of a host object, making its slots accessible. A DSL is presented for adding and removing facets. Facet interfaces and laws specify valid facet combinations and when hosts should acquire facets. The approach is evaluated in scenarios like integrating annotation models and reuse of transformations. It is implemented in the MetaDepth modeling tool.
This document discusses requirements for flexible modelling tools that can accommodate different modelling purposes and stages of development. It proposes a meta-modelling language and explicit modelling process to provide flexibility in modelling. The meta-modelling language supports multiple classification levels and types, as well as extensibility through untyped elements. An explicit modelling process defines phases, conformance rules, and transitions between phases to provide guidance for model development. Process-aware assistance filters model checks and fixes according to the current process intent.
The document discusses developing a transformation product line (TPL) approach to define model transformations over variants of a meta-model product line (MMPL) in a compact, reusable, extensible, and analyzable way by using transformation fragments with presence conditions and composing them through abstraction and overriding mechanisms. It aims to address the challenges of defining transformations over many variants of a meta-model in a scalable way while maintaining correctness through analysis at the TPL level.
The document discusses the need for and concepts around active domain-specific languages (DSLs) that can be used across devices and enable more advanced modeling scenarios. It presents a feature space for DSLs that includes characteristics like being geolocated, supporting external interactions and context-sensitivity. An active DSL is defined as combining these features. The initial realization of these ideas is demonstrated with DSL-Comet, which allows specifying DSLs for use on desktop and mobile and supports collaboration. Future work includes expanding DSL-Comet's capabilities and applying DSLs to large-scale collaborative modeling applications.
This document presents an approach for reusing model transformations through the extraction of typing requirements models (TRMs) from transformations. TRMs characterize the minimal requirements that source and target meta-models must satisfy for a transformation to be well-typed. The approach extracts TRMs from ATL transformations through an attribute grammar. Meta-models can then be checked for conformance to the TRMs to determine if a transformation can be reused. An evaluation of the approach on four transformations showed that it achieved high precision and recall in checking over 2,000 mutated meta-models for conformance.
This document summarizes some experiments conducted by researchers from the Universidad Autónoma de Madrid on model-driven engineering. It introduces the researchers and their work analyzing meta-models, model transformations, and evaluating modeling tools and notations with users. Specific experiments discussed include checking meta-models for refactoring opportunities, statically analyzing transformations to find errors, and evaluating domain-specific modeling tools and construction notations. The researchers find multi-level modeling patterns commonly occur in meta-models and show examples of refactoring modeling scenarios to a multi-level structure.
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.
MDE can take the form of OMG's Model Driven Architecture (MDA) using UML profiles or domain-specific languages (DSLs) with custom meta-models and notations. MDA is more generally applicable but also heavier weight and tool-dependent, while DSLs are lighter weight but have higher initial costs to develop the language environment. Both approaches have strengths when the right tooling is developed, such as reduced development time and higher quality, but challenges remain in reducing costs, improving flexibility and applicability to different scenarios.
14 th Edition of International conference on computer visionShulagnaSarkar2
About the event
14th Edition of International conference on computer vision
Computer conferences organized by ScienceFather group. ScienceFather takes the privilege to invite speakers participants students delegates and exhibitors from across the globe to its International Conference on computer conferences to be held in the Various Beautiful cites of the world. computer conferences are a discussion of common Inventions-related issues and additionally trade information share proof thoughts and insight into advanced developments in the science inventions service system. New technology may create many materials and devices with a vast range of applications such as in Science medicine electronics biomaterials energy production and consumer products.
Nomination are Open!! Don't Miss it
Visit: computer.scifat.com
Award Nomination: https://x-i.me/ishnom
Conference Submission: https://x-i.me/anicon
For Enquiry: Computer@scifat.com
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...Luigi Fugaro
Vector databases are transforming how we handle data, allowing us to search through text, images, and audio by converting them into vectors. Today, we'll dive into the basics of this exciting technology and discuss its potential to revolutionize our next-generation AI applications. We'll examine typical uses for these databases and the essential tools
developers need. Plus, we'll zoom in on the advanced capabilities of vector search and semantic caching in Java, showcasing these through a live demo with Redis libraries. Get ready to see how these powerful tools can change the game!
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
Preparing Non - Technical Founders for Engaging a Tech AgencyISH Technologies
Preparing non-technical founders before engaging a tech agency is crucial for the success of their projects. It starts with clearly defining their vision and goals, conducting thorough market research, and gaining a basic understanding of relevant technologies. Setting realistic expectations and preparing a detailed project brief are essential steps. Founders should select a tech agency with a proven track record and establish clear communication channels. Additionally, addressing legal and contractual considerations and planning for post-launch support are vital to ensure a smooth and successful collaboration. This preparation empowers non-technical founders to effectively communicate their needs and work seamlessly with their chosen tech agency.Visit our site to get more details about this. Contact us today www.ishtechnologies.com.au
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
Odoo releases a new update every year. The latest version, Odoo 17, came out in October 2023. It brought many improvements to the user interface and user experience, along with new features in modules like accounting, marketing, manufacturing, websites, and more.
The Odoo 17 update has been a hot topic among startups, mid-sized businesses, large enterprises, and Odoo developers aiming to grow their businesses. Since it is now already the first quarter of 2024, you must have a clear idea of what Odoo 17 entails and what it can offer your business if you are still not aware of it.
This blog covers the features and functionalities. Explore the entire blog and get in touch with expert Odoo ERP consultants to leverage Odoo 17 and its features for your business too.
An Overview of Odoo ERP
Odoo ERP was first released as OpenERP software in February 2005. It is a suite of business applications used for ERP, CRM, eCommerce, websites, and project management. Ten years ago, the Odoo Enterprise edition was launched to help fund the Odoo Community version.
When you compare Odoo Community and Enterprise, the Enterprise edition offers exclusive features like mobile app access, Odoo Studio customisation, Odoo hosting, and unlimited functional support.
Today, Odoo is a well-known name used by companies of all sizes across various industries, including manufacturing, retail, accounting, marketing, healthcare, IT consulting, and R&D.
The latest version, Odoo 17, has been available since October 2023. Key highlights of this update include:
Enhanced user experience with improvements to the command bar, faster backend page loading, and multiple dashboard views.
Instant report generation, credit limit alerts for sales and invoices, separate OCR settings for invoice creation, and an auto-complete feature for forms in the accounting module.
Improved image handling and global attribute changes for mailing lists in email marketing.
A default auto-signature option and a refuse-to-sign option in HR modules.
Options to divide and merge manufacturing orders, track the status of manufacturing orders, and more in the MRP module.
Dark mode in Odoo 17.
Now that the Odoo 17 announcement is official, let’s look at what’s new in Odoo 17!
What is Odoo ERP 17?
Odoo 17 is the latest version of one of the world’s leading open-source enterprise ERPs. This version has come up with significant improvements explained here in this blog. Also, this new version aims to introduce features that enhance time-saving, efficiency, and productivity for users across various organisations.
Odoo 17, released at the Odoo Experience 2023, brought notable improvements to the user interface and added new functionalities with enhancements in performance, accessibility, data analysis, and management, further expanding its reach in the market.
Malibou Pitch Deck For Its €3M Seed Roundsjcobrien
French start-up Malibou raised a €3 million Seed Round to develop its payroll and human resources
management platform for VSEs and SMEs. The financing round was led by investors Breega, Y Combinator, and FCVC.
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESanfaltahir1010
Image: Include an image that represents the concept of precision, such as a AI helix or a futuristic healthcare
setting.
Objective: Provide a foundational understanding of precision medicine and its departure from traditional
approaches
Role of theory: Discuss how genomics, the study of an organism's complete set of AI ,
plays a crucial role in precision medicine.
Customizing treatment plans: Highlight how genetic information is used to customize
treatment plans based on an individual's genetic makeup.
Examples: Provide real-world examples of successful application of AI such as genetic
therapies or targeted treatments.
Importance of molecular diagnostics: Explain the role of molecular diagnostics in identifying
molecular and genetic markers associated with diseases.
Biomarker testing: Showcase how biomarker testing aids in creating personalized treatment plans.
Content:
• Ethical issues: Examine ethical concerns related to precision medicine, such as privacy, consent, and
potential misuse of genetic information.
• Regulations and guidelines: Present examples of ethical guidelines and regulations in place to safeguard
patient rights.
• Visuals: Include images or icons representing ethical considerations.
Content:
• Ethical issues: Examine ethical concerns related to precision medicine, such as privacy, consent, and
potential misuse of genetic information.
• Regulations and guidelines: Present examples of ethical guidelines and regulations in place to safeguard
patient rights.
• Visuals: Include images or icons representing ethical considerations.
Content:
• Ethical issues: Examine ethical concerns related to precision medicine, such as privacy, consent, and
potential misuse of genetic information.
• Regulations and guidelines: Present examples of ethical guidelines and regulations in place to safeguard
patient rights.
• Visuals: Include images or icons representing ethical considerations.
Real-world case study: Present a detailed case study showcasing the success of precision
medicine in a specific medical scenario.
Patient's journey: Discuss the patient's journey, treatment plan, and outcomes.
Impact: Emphasize the transformative effect of precision medicine on the individual's
health.
Objective: Ground the presentation in a real-world example, highlighting the practical
application and success of precision medicine.
Data challenges: Address the challenges associated with managing large sets of patient data in precision
medicine.
Technological solutions: Discuss technological innovations and solutions for handling and analyzing vast
datasets.
Visuals: Include graphics representing data management challenges and technological solutions.
Objective: Acknowledge the data-related challenges in precision medicine and highlight innovative solutions.
Data challenges: Address the challenges associated with managing large sets of patient data in precision
medicine.
Technological solutions: Discuss technological innovations and solutions
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...The Third Creative Media
"Navigating Invideo: A Comprehensive Guide" is an essential resource for anyone looking to master Invideo, an AI-powered video creation tool. This guide provides step-by-step instructions, helpful tips, and comparisons with other AI video creators. Whether you're a beginner or an experienced video editor, you'll find valuable insights to enhance your video projects and bring your creative ideas to life.
Liberarsi dai framework con i Web Component.pptxMassimo Artizzu
In Italian
Presentazione sulle feature e l'utilizzo dei Web Component nell sviluppo di pagine e applicazioni web. Racconto delle ragioni storiche dell'avvento dei Web Component. Evidenziazione dei vantaggi e delle sfide poste, indicazione delle best practices, con particolare accento sulla possibilità di usare web component per facilitare la migrazione delle proprie applicazioni verso nuovi stack tecnologici.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Approaches to Model Transformation Reuse: from Concepts to A-posteriori typing
1. APPROACHES TO MODEL
TRANSFORMATION REUSE
ICMT’2016, Viena
Juan de Lara
joint work with
Esther Guerra and Jesús Sánchez Cuadrado
Modelling&Software Engineering Research Group
http://miso.es @miso_uam
2. FROM CONCEPTS TO
A-POSTERIORI TYPING
Juan de Lara
joint work with
Esther Guerra and Jesús Sánchez Cuadrado
Modelling&Software Engineering Research Group
http://miso.es @miso_uam
ICMT’2016, Viena
3. Model-transformations are the key elements
for automation in model-based approaches
MOTIVATION
3
Domain-specific
languages
Proliferation of domain
meta-models
4. MOTIVATION
4
Transformations are defined over specific meta-models
Difficult to reuse for other related meta-models
How to avoid creating (essentially)
the same transformation for
different meta-models?
5. MOTIVATION:
PROCESS MODELS TO PETRI NETS
5
Task
name: String
initial: boolean
next
* Place
Transitionid: String
tokens: int
inps
outs
*
*
8. 8
TRANSFORMATION
(ATL)
rule Task2Place {
from t : Process!Task
to p : PN!Place (
id <- t.name,
tokens <- if t.initial then 1 else 0 endif
)
}
rule next2Transition {
from t1 : Process!Task,
t2 : Process!Task (t1.next->includes(t2))
to tr : PN!Transition (
inps <- t1,
outs <- t2
)
}
…
9. REUSE FOR ANOTHER
META-MODEL
9
Task
name: String
initial: boolean
next
* Place
Transitionid: String
tokens: int
inps
outs
*
*
Activity
ident: String
InitialActivity
task2PN
FlowEdge
from
to
10. 10
rule Task2Place {
from t : Process!Task
to p : PN!Place (
id <- t.name,
tokens <- if t.initial then 1 else 0 endif
)
}
rule next2Transition {
from t1 : Process!Task,
t2 : Process!Task (t1.next->includes(t2))
to tr : PN!Transition (
inps <- t1,
outs <- t2
)
}
…
AD-HOC REUSE (COPY+ADAPT)
11. AD-HOC REUSE (COPY+ADAPT)
11
rule Task2Place {
from t : Process!Activity
to p : PN!Place (
id <- t.ident,
tokens <- if t.oclIsTypeOf(Process!InitialActivity) then
1 else 0 endif
)
}
rule next2Transition {
from t1 : Process!Activity,
t2 : Process!Activity
(Process!FlowEdge.allInstances()->exist(e |
e.from=t1 and e.to=t2))
to tr : PN!Transition (
inps <- t1,
outs <- t2
)
}
12. AD-HOC REUSE (COPY+ADAPT)
12
rule Task2Place {
from t : Process!Activity
to p : PN!Place (
name <- t.ident,
tokens <- if t.oclIsTypeOf(Process!InitialActivity) then
1 else 0 endif
)
}
rule next2Transition {
from t1 : Process!Activity,
t2 : Process!Activity
(Process!FlowEdge.allInstances()->exist(e |
e.from=t1 and e.to=t2))
to tr : PN!Transition (
inps <- t1,
outs <- t2
)
}
• Complex and error prone
• Repetitive
• Does not scale to large
transformations
13. EXPLICIT MODEL ADAPTATION
1313
Task
name: String
initial: boolean
next
* Place
Transitionid: String
tokens: int
inps
outs
*
*
Activity
ident: String
InitialActivity
task2PN
FlowEdge
from
to
activity2task;task2PN
activity2task
14. MOTIVATION
14
rule Activity2Task {
from t : Activities!Activity
to p : Process!Task (
id <- t.ident,
initial <- t.oclIsKindOf(Activities!InitialActivity),
next <- Activities!FlowEdge.allInstances()->
select (e | e.from = t)->
collect(e | e.to )
)
}
t:
InitialActivity
ident=“a0”
p: Task
name=“a0”
initial=true
pl: Place
name=“a0”
tokens=1
activity2task task2PN
15. MOTIVATION
15
rule Activity2Task {
from t : Activities!Activity
to p : Process!Task (
name <- t.ident,
initial <- t.oclIsKindOf(Activities!InitialActivity),
next <- Activities!FlowEdge.allInstances()->
select (e | e.from = t)->
collect(e | e.to )
)
}
• Three models involved,
complicates traceability
• Two transformations: less
efficient
• May require a transformation
back to the initial model
16. Concept-based reuse
de Lara, Guerra. “From types to type requirements: genericity for model-driven
engineering”. SoSyM 2103.
Sánchez Cuadrado, Guerra, de Lara. “A Component Model for Model
Transformations”. IEEE Trans. Software Eng. 2014.
Multi-level based reuse
de Lara, Guerra, Sánchez Cuadrado. “Model-driven engineering with domain
specific meta-modelling languages”. SoSyM 2015.
A-posteriori typing
de Lara, Guerra, Sánchez Cuadrado. “A-posteriori typing for Model-Driven
Engineering”. MoDELS 2015: 156-165
Transformation co-evolution
Di Ruscio, Iovino, Pierantonio. “A Methodological Approach for the Coupled
Evolution of Metamodels and ATL Transformations”. ICMT’13
Model (sub-)typing
Steel, Jezequel. “On Model Typing”. SoSyM 2007.
Guy, et al. “On Model Subtyping”. ECMFA'12.
SO WHAT?
16
17. Concept-based reuse
de Lara, Guerra. “From types to type requirements: genericity for model-driven
engineering”. SoSyM 2103.
Sánchez Cuadrado, Guerra, de Lara. “A Component Model for Model
Transformations”. IEEE Trans. Software Eng. 2014.
Multi-level based reuse
de Lara, Guerra, Sánchez Cuadrado. “Model-driven engineering with domain
specific meta-modelling languages”. SoSyM 2015.
A-posteriori typing
de Lara, Guerra, Sánchez Cuadrado. “A-posteriori typing for Model-Driven
Engineering”. MoDELS 2015: 156-165
Transformation co-evolution
Di Ruscio, Iovino, Pierantonio. “A Methodological Approach for the Coupled
Evolution of Metamodels and ATL Transformations”. ICMT’13
Model (sub-)typing
Steel, Jezequel. “On Model Typing”. SoSyM 2007.
Guy, et al. “On Model Subtyping”. ECMFA'12.
SO WHAT?
17
18. Automate ad-hoc copy-adaptation:
CONCEPT-BASED REUSE
18
Concept
Msrc Mtar
from to
«conforms to» «conforms to»
Template
execution
MMsrc
Instantiated
template
to
binding
MMtar
HOT
Transformation
template
definition
from
Final user
Transformation
developer
(with reuse)
Transformation
developer
(for reuse)
1
2 3
4
• Transformations defined over “concepts”
• Binding to concrete meta-model
• Automated transformation adaptation
19. 19
STRUCTURAL
CONCEPTS
Structural Concepts.
• They gather the structure needed
from meta-models for the
transformation to be applicable.
• They have the form of a meta-
model as well.
SimpleTask concept
Task
name: String
initial: boolean
next
*
Their elements are treated as variables, which need to be bound
to elements in specific meta-models.
Interface of the transformation
• No superflous elements
• No extra complexity
• Transformations become as simple as possible
20. 20
REUSABLE
TRANSFORMATIONS
Transformations defined using the types of the concept.
L R=NAC
t:Task
name=n
t:Task
name=n
:Place
id=n
tokens=t.initial?1:0
t1:Task
t2:Task
:next
p1:Place
p2:Place
t1:Task
t2:Task
:next
p1:Place
p2:Place
:Transition
:inps
:outs
L R=NAC
21. 21
BINDING
Concept binding:
• Bind each element in the
concept to an element in the
meta-model.
Task SETask
name id
initial isInitial
next following
Binding SETaskEngineer
Coding Testing
actors
*
Software Engineering processes
Design
SimpleTask concept
Task
name: String
initial: boolean
next
*
Analysis
id: String
isInitial: boolean
following
0..5
22. ADAPTATION
The transformation gets automatically adapted
Similar to template instantiation in generic programming
22
t:SETask
id=n
t:SETask
id=n
:Place
id=n
tokens=t.isInitial?1:0
t1:SETask
t2:SETask
:following
p1:Place
p2:Place
t1:SETask
t2:SETask
:following
p1:Place
p2:Place
:Transition
:inps
:outs
23. WAIT A MOMENT…
IS THE RESULTING
TRANSFORMATION
CORRECT?
Rules for the binding
• Cardinalities
• Composition, features, subtyping, etc
Depends on what you do with the concept
• Read only (e.g., for M2M transformation)
• Write (e.g., for in-place transformation)
23
SETaskTask
SETaskTask
Concept Meta-modelbinding
R
W
Sánchez Cuadrado, Guerra, de Lara. “Flexible Model-to-Model Transformation Templates: An Application
to ATL”. JOT 2012.
Task next
* SETask
R following 0..5
SETask
following 0..5
Task next
*
W
24. WAIT A MOMENT…
ISN’T THIS JUST A
RENAMING?
HOW FLEXIBLE IS THE
BINDING?
Basic binding
• Renaming of types, attributes
• N-to-1 mappings
More flexibility is needed in practice
• Hybrid concepts
• Cardinalities in concept elements
• Adapters
24
25. 25
MORE FLEXIBLE
BINDINGS
Concepts express a
particular design choice on
how structure is organized
Different meta-models may
implement the same
structure differently
• Association as
intermediate class
• Enumerate as subclases
• etc.
binding
Task
name: String
initial: boolean
next
*
Activity
ident: String
InitialActivity
FlowEdge
from
to
26. 26
HYBRID CONCEPTS
Hide “unessential” structure behind
required operations
Operations need to be implemented
together with the binding
The generic transformation may use
these required operations
Task
getName(): String
isInitial():boolean
getNext(): Task[*]
SimpleTask hybrid
concept
28. 28
HYBRID CONCEPTS
operation Activity getName() : String { return self.ident }
operation Activity isInitial() : boolean { return false; }
operation Activity getNext() : Set(Activity) {
return FlowEdge.all.select(f|f.from=self).collect(f|f.to);
}
operation InitialActivity isInitial() : boolean { return true;}
Task Activity
binding
Allows bridging a large number of
heterogeneities
The generic transformation needs
to be written using these
operations. Difficult for e.g. graph
transformation approaches
29. 29
BINDING ADAPTERS
Elements in the concept are variables
• Allow binding them to expressions: adapters
Adapters resolve the heterogeneities between the
concept and the meta-model
They induce an adaptation of the transformation
30. rule Task2Place {
from t : Pr!Task
to p : PN!Place (
tokens <- if t.initial
then 1 else 0
endif )}
30
Task
initial: boolean
next
*
Concept
Activity
InitialActivity
Flow
Edge
from
to
Task Activity
Task.initial if (self.oclIsKindOf(InitialActivity)) then
true else false endif
Task.next FlowEdge.allInstances()->
select(e|e.from=self)->
collect(to)
Meta-model
typed on
helper context Pr!Activity
def: initial : Boolean =
if (…) then true else
false endif;
rule Task2Place {
from t : Pr!Activity
to p : PN!Place (
tokens <- if t.initial
then 1 else 0
endif )}
typed on
adaptation
31. 31
ADAPTERS VS
HYBRID CONCEPTS
Bridge a large number of
heterogeneities
The generic transformation
remains agnostic w.r.t. the
binding
Adaptation mechanism
dependent on the
particular transformation
language (e.g., ATL)
Bridge a large number of
heterogeneities
The generic
transformation needs to
be written using
operations
Adaptation mechanism
dependent on the
particular transformation
language (e.g., Epsilon)
Hybrid concepts Adapters
32. WAIT A MOMENT…
Aren’t concepts characterizing a set of “suitable”
meta-models for the transformation?
Isn’t that exactly what meta-models do (for
models)?
Concepts as meta-meta-models
Rely on typing: no need to adapt the
transformation
32
33. Language families as instances of a
common meta-model
MULTI-LEVEL BASED
REUSE
33
Process Modelling
Software Process
Modelling Language
Educational
Modelling Language
Software Process
Models
Educational
Models
34. 34
MULTI-LEVEL BASED
GENERICITY
Transformations can be
defined at the top meta-level
Applicable to instances of
all languages in the family
Process Modelling
Software Process
Modelling Language
Educational
Modelling Language
Software Process
Models
Educational
Models
…
Transformation
defined on
applicableto
35. 35
MULTI-LEVEL BASED
GENERICITY
Task
Kind
Gateway
Kind
Seq Par
src
tar
*
*
Test: TaskKindCoding:TaskKind
T2C: Seq
C2T: Seq
src tar
srctar
data:
Coding
unitDt:
Test
gui:
Coding
: C2T
src
tar
: T2C
tar
src
«conf»
«conf» data:
Coding
unitDT:
Test
gui:
Coding
rule Task2Place
transform t : Level0!TaskKind
to p : Place
{
...
}
....
defined on
36. rule Task2Place
transform t : Level0!TaskKind
to p : Place
{
...
}
....
36
MULTI-LEVEL BASED
GENERICITY
data:
Coding
unitDT:
Test
gui:
Coding
rule Coding2Place
transform t : Coding
to p : Place
{…}
rule Test2Place
transform t : Test
to p : Place
{…}
defined
on
data:
Coding
unitDt:
Test
gui:
Coding
: C2T
src
tar
: T2C
tar
src
«conf»
Task
Kind
Gateway
Kind
Seq Par
src
tar
*
*
Test: TaskKindCoding:TaskKind
T2C: Seq
C2T: Seq
src tar
srctar
«conf»
37. 37
MULTI-LEVEL VS CONCEPT-
BASED GENERICITY
Concept-based Genericity
Multi-level-based Genericity
• A posteriori binding: meta-
models may exist first.
• Adapters and hybrid concepts
to solve heterogeneities.
• A priori: meta-meta-model
should exist first.
• Ability to apply an operation
several meta-levels below.
• Domain-Specific meta-
modelling.
38. 38
CAN WE GET THE BEST OF
BOTH APPROACHES?
• A posteriori binding:
meta-models may exist
first.
• Adapters or Hybrid
concepts to solve
heterogeneities.
• Independence of the
transformation
language
Concept-based reuse Multi-level reuse
39. 39
CAN WE GET THE BEST OF
BOTH APPROACHES?
• A posteriori binding:
meta-models may exist
first.
• Adapters to solve
heterogeneities.
• Independence of the
transformation
language
Concept-based reuse Multi-level reuse
Let’s make the typing relation:
• A-posteriori
• As flexible as adapters
40. A-POSTERIORI TYPING
40
A more flexible typing mechanism for MDE
Decouple instantiation from classification
• Interfaces in object-oriented programming
• Roles in role-based programming languages
Allow dynamic typing and multiple classifiers for objects
Type and instance-level reclassification specifications
41. CONSTRUCTIVE VS
A-POSTERIORI TYPING
41
Task
start: Date
duration: int
name: String
review: Task
start= 8/5/15
duration= 30
name= “rev”
creation «instance of»
Measurable
quantity: int
Schedulable
date: Date
review: Task
Tasks meta-model
model
Scheduling MM Measuring MM
model
«instance of» «instance of»
start= 8/5/15
duration= 30
name= “rev”
«Schedulable,Measurable»
Constructive typing A-posteriori typing
Constructive typing A-posteriori typing
42. 42
*topics
*
*
res
Task
start: Date
duration: int
name: String
Tasks meta-model (constructive types)
Resource
Person
owner
assigned
1..* 1..*
0..3
reviewsArticle
title: String
Conference meta-model (dynamic types)
Reviewer
Authorauthors
Topic
desc: String
«Author»
p2: Person
«Reviewer»
p1: Person
«Article»
r: Resource
:owner
t1:Task
start: 8/5/15
duration: 30
name: “rev”
:res
:assigned
«Author,Reviewer»
p2: Person
«Reviewer»
p1: Person
«Article»
r: Resource
:owner
t1:Task
start: 8/5/15
duration: 30
name: “rev”
:res
:assigned
«Author»
p3: Person
«Article»
s: Resource
:owner
t2:Task
start: 9/5/15
duration: 30
name: “rev”
:res
:assigned
the model
changes
and gets
retyped
creation «instance of»
model
• A Person (constructive type) is only a Reviewer (a posteriori type)
when some condition is met.
A-POSTERIORI TYPING:
FLEXIBLE REUSE
43. SPECIFYING AP TYPINGS
AT THE TYPE-LEVEL
43
Schedulable
date: Date
span: double
review: Task
Tasks meta-model ( MMC )
start= 8/5/15
/months= 1
duration= 30
name= “rev”
Scheduling MM ( MMR )
Task
start: Date
duration: int
name: String
Typing Specification
Task Schedulable
self.start date
/months: double=self.duration/30 span
«Schedulable»
«date»
«span»
creation «instance of»
(constructive)
«instance of»
(a-posteriori)
• Derived attributes (months) defined in the typing
specification.
• Typing rules: ensure syntactic correctness
48. Activity Task
ident name
/init : boolean =
self.oclsKindOf(InitialActivity) initial
/follow: Task[*] = FlowEdge.allInstances()->
select(e|e.from=self)->
collect(e|e.to) next
EXAMPLE
48
Task
name: String
initial: boolean
next
*
Activity
ident: String
InitialActivity
FlowEdge
from
to
49. Aren’t retypings now a kind of transformation?
Producing a view of a given model
How expressive are retypings considered as
model transformations?
49
WAIT A MOMENT…
50. A-POSTERIORI TYPING AS A
TRANSFORMATION
50
Task
name: String
initial: boolean
next
Place
Transitionid: String
tokens: int
inps
outs
*
*
task2PN
Task.allInstances() Place
name id
/toks : int = if (self.initial) then 1 else 0 tokens
Task.allInstances()->select(t|t.next.isDefined()) Transition
/prevs : Task[*] = Set{self} inps
/nexts : Task[*] = Set{self.next} outs
0..1
51. A-POSTERIORI TYPING AS A
TRANSFORMATION
51
Place
Transitionid: String
tokens: int
inps
outs
*
*
t1:Task
name=“t1”
initial=false
name=“t2”
initial=true
:next
name=“t3”
initial=false
:next
t2:Task
t3:Task
Task
name: String
initial: boolean
next
0..1
task2PN
52. A-POSTERIORI TYPING AS A
TRANSFORMATION
52
Place
Transitionid: String
tokens: int
inps
outs
*
*
«Place»
«Place, Transition»
«Place, Transition»
«id»
«id»
«id»
Task
name: String
initial: boolean
next
0..1
task2PN
t1:Task
name=“t1”
initial=false
name=“t2”
initial=true
:next
name=“t3”
initial=false
:next
t2:Task
t3:Task
53. A-POSTERIORI TYPING AS A
TRANSFORMATION
53
Place
Transitionid: String
tokens: int
inps
outs
*
*
t2:Task
t3:Task
«Transition»
«Transition»
«outs»
«outs»
«inps»
«inps»
Task
name: String
initial: boolean
next
0..1
task2PN
«Place»
«Place»
«id»
«id»name=“t2”
initial=true
name=“t3”
initial=false
t2:Task
t3:Task
«Place»
«id»
t1:Task
name=“t1”
initial=false
54. TYPING AS TRANSFORMATION:
THE GOOD
54
No objects need to be created
• Just retype existing elements
Incrementality (forwards)
• For free
Bidirectionality
• For restricted cases of type-level specifications
• Incrementality (backwards) for (more) restricted cases
Analysis
• Executability
• Totality
• Surjectivity
55. 55
Limited expressivity
• 1-to-1 or N-to-1 mappings
• 1-to-N and N-to-M only in certain cases
No replacement for regular transformation languages
• Helpers, auxiliary operations, etc
Efficiency operations for instance-level specifications
• T.allInstances() needs to compute all objects belonging to T
• Type caches and “smart” update policies
TYPING AS TRANSFORMATION:
THE BAD
56. ANALYSIS OF
A-POSTERIORI RETYPING
56
Schedulable
date: Date
span: double
Tasks meta-model ( MMC ) Scheduling MM ( MMR )
Task
start: Date
duration: int
name: String
Typing Specification
Task Schedulable
self.start date
/months: double=self.duration/30 span
• Creation and role meta-models may have OCL constraints.
• Executability: Can some “Tasks” models become valid
Scheduling models?.
• Totality: Can all Tasks models become valid Scheduling
model?.
• Surjectivity: Can every Scheduling instance be obtained via
retyping some Tasks instance?
CR0: self. span>0
CC0: self. duration<100
57. 57
SO WHAT?
WHAT HAVE WE
GAINED?
• The transformation is
adapted
• Adapters to solve
heterogeneities
• Automate ad-hoc reuse
• Language families
• Independence of the
transformation language
• Transformation applicable
across levels
Concept-based reuse Multi-level reuse
• Independence of the transformation language
• Heterogeneities can be resolved
• Typing becomes dynamic and multiple
• Improve model-adaptation-based reuse
Retyping-based reuse
59. TOOL SUPPORT
59
bentō (http://www.miso.es/tools/bento.html)
• Component model for transformations
• Concepts
• Domain specific language for bindings
• ATL transformations
metaDepth (http://metadepth.org)
• Multi-level textual modelling
• Integrated with the Epsilon languages (EOL, ETL, EGL)
• Concepts (structural and hybrid)
• Multi-level based reuse
• A-posteriori typing
60. BENTŌ
Adaptation of ATL transformations according to the binding
Support for refactoring meta-models into concepts
60
Sánchez Cuadrado, Guerra, de Lara. “A Component Model for Model Transformations”. IEEE TSE 2014
Sánchez Cuadrado, Guerra, de Lara. “Reusable Model Transformation Components with bentō”. ICMT’ 15
61. // Model
Tasks someTasks {
Task t0 {
start = "30/04/2015";
duration = 30;
name = "coding";
}
}
METADEPTH
61
Multi-level textual modelling
Concepts
• Over every Epsilon language
• Hybrid concepts
A-posteriori typing
• Over every Epsilon language
Analysis of type-level specs
• Integration with the USE validator
• Bidirectional reclassification
• Reclassification totality and surjectivity
// Meta-model
Model Tasks {
Node Task {
start : Date;
duration : int;
name : String;
}
}
65. Simple bidirectional model transformations by reclassification
65
type Factory PetriNet {
Conveyor::parts > Place::tokens,
Generator::outps > Transition::outs, Terminator::inps > Transition::ins,
Assembler::inps > Transition::ins, Assembler::outps > Transition::outs,
}
A-POSTERIORI TYPING:
BX MODEL TRANSFORMATIONS
66. Simple bidirectional model transformations by reclassification
66
Forward reclassification
A-POSTERIORI TYPING:
BX MODEL TRANSFORMATIONS
67. Factory example { // 1st typing
Conveyor p {}
Terminator t { inps= [p]; }
}
Factory example { // 2nd typing
Conveyor p {}
Assembler t { inps= [p]; }
}
67
PetriNet example {
Place p {}
Transition t { ins = [p]; }
}
MetaDepth console
> dump example as Factory
The typing specification can also be used backwards!
Might yield multiple AP typings for a model
A-POSTERIORI TYPING:
BX MODEL TRANSFORMATIONS
68. // Model witness with no Petri net equivalent
Factory noRefinementWitness {
Assembler assembler2 { outps= [conveyor2, conveyor1]; }
Conveyor conveyor1 { name= "string1"; }
Conveyor conveyor2 { name= "string1"; }
Generator generator2 { outps= [conveyor1]; }
Part part2 {
qa = true;
} // This part would become a token outside any Place
}
68
The reclassification is not total
• Equivalently, the backwards reclassification is not surjective
The solver produces a witness
• A Factory model that cannot be reclassified into a Petri net
A-POSTERIORI TYPING:
BX MODEL TRANSFORMATIONS
69. APPLICATIONS:
REUSE OF OPERATIONS
Simulator for Petri nets can be reused “as is” for Factory
• Provide an AP typing from Factory to Petri nets
• Factory models become typed as Petri nets
69
// EOL excerpt of the simulator
operation Transition enabled() : Boolean {
return self.ins.forAll(p| p.tokens.size()>0);
}
operation step() : Boolean {
var enabled : Set(Transition) := Transition.all.select( t | t.enabled());
... // fire one random Transition from enabled
}
70. APPLICATIONS:
FLEXIBLE REUSE
70
// Type parts as tokens only if QA is passed
type Factory PetriNet inst {
$Conveyor.all$ > Place with {
/sp : Token[*] = $self.parts.select(p|p.qa=true)$ > tokens
}
$Part.all.select( p | p.qa = true )$ > Token
}
71. SUMMARY
Approaches to reuse in model transformation
• Reuse transformations for other meta-models
Concept-based
• Ideas from generic programming
• Hybrid concepts, adapters
Multi-level modelling
• Families of languages
A-posteriori typing
• Provide additional types via retyping specifications
• Dynamic typing
71
72. FUTURE WORK
72
Syntactic vs Semantic reuse correctness
• Transformation intents
Improve tool support for retypings and reuse
• Repositories of reusable transformations
• Reuse recommenders
Exploit structural typing in MDE
Explore multiple typings for MDE
Explore more in detail retypings as bx transformations
73. 73
if you put water into a cup, it
becomes the cup
TAKE-HOME LESSON
74. 74
if you put water into a cup, it
becomes the cup
you put water into a bottle, it
becomes the bottle
TAKE-HOME LESSON
75. 75
if you put water into a cup, it
becomes the cup
you put water into a bottle, it
becomes the bottle
you put it in a teapot, it becomes
the teapot
TAKE-HOME LESSON
76. 76
if you put water into a cup, it
becomes the cup
you put water into a bottle, it
becomes the bottle
you put it in a teapot, it becomes
the teapot
be like water my friend
Bruce Lee
77. 77
if you put water into a cup, it
becomes the cup
you put water into a bottle, it
becomes the bottle
you put it in a teapot, it becomes
the teapot
(let transformations) be like water
my friendBruce Lee