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.
Meta-modeling: concepts, tools and applicationsSaïd Assar
Presentation made as a tutorial at the rcis2015 conference in Athens, Greece, on May 13, 2015.
Video recording available online on IEEE Education (http://www.computer.org/web/computingnow/education)
Meta-modeling: concepts, tools and applicationsSaïd Assar
Presentation made as a tutorial at the rcis2015 conference in Athens, Greece, on May 13, 2015.
Video recording available online on IEEE Education (http://www.computer.org/web/computingnow/education)
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Jordi Cabot
Slides of Marsha Chechik´s Keynote at the European Conference on Modelling Foundations and Applications 2014.
Marsha´s webpage: http://www.cs.toronto.edu/~chechik/
ECMFA webpage: http://ecmfa2014.lcc.uma.es/
Our research lines on Model-Driven Engineering and Software EngineeringJordi Cabot
Highlighting some of our research lines (March 2015 Edition)
Learn more about what we do on : http://modeling-languages.com , http://som-research.uoc.edu and http://jordicabot.com
When talking about modeling, I think there will be a bundle of terms that will come to our mind, UML, domain driven development, DSL, forward/reverse enginerring, MDD, MDA, BPMN. These technology or methodology have been there for years; And obviously, modeling has proven itself to provide value by improving communication, business-alignment, quality, and productivity. Its applicability includes a number of disciplines such as analysis, design, or development. But why aren’t we all doing Model Driven Development yet?
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Jordi Cabot
Slides for the mdse-book.com chapter 4: MODEL DRIVEN ARCHITECTURE (MDA)
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSEijcsit
Domain-specific modeling is more and more understood as a comparable solution compared to classical software development. Textual domain-specific languages (DSLs) already have a massive impactin contrast
tographical DSLs, they still have to show their full potential. The established textual DSLs are normally generated from a domain specific grammar or maybe other specific textual descriptions. And advantage of textual DSLs is thatthey can be development cost-efficient. In this paper, we describe asimilar approach for the creation of graphical DSLs from textual descriptions. We present a set of speciallydeveloped textual
DSLs to fully describe graphical DSLs based on node and edge diagrams. These are, together with an EMF
meta-model, the input for a generator that produces an eclipse-based graphical Editor. The entire project
is available as open source under the name MoDiGen.
An LSTM-Based Neural Network Architecture for Model TransformationsJordi Cabot
We propose to take advantage of the advances in Artificial Intelligence and, in particular, Long Short-Term Memory Neural Networks (LSTM), to automatically infer model transformations from sets of input-output model pairs.
Generate an OData implementation for your data based on an initial UML domain model. Refine the model with OData information for a more precise generation.
Very preliminar intro to MDE for software developer communities and other kind of software practitioners. Contains material from several recognized sources.
The purpose of the lab to the latest skills required for Job opportunities in many industries . This helps faculties to develop their skills and publish papers in intenational conferences and also innovate solutions
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Jordi Cabot
Slides of Marsha Chechik´s Keynote at the European Conference on Modelling Foundations and Applications 2014.
Marsha´s webpage: http://www.cs.toronto.edu/~chechik/
ECMFA webpage: http://ecmfa2014.lcc.uma.es/
Our research lines on Model-Driven Engineering and Software EngineeringJordi Cabot
Highlighting some of our research lines (March 2015 Edition)
Learn more about what we do on : http://modeling-languages.com , http://som-research.uoc.edu and http://jordicabot.com
When talking about modeling, I think there will be a bundle of terms that will come to our mind, UML, domain driven development, DSL, forward/reverse enginerring, MDD, MDA, BPMN. These technology or methodology have been there for years; And obviously, modeling has proven itself to provide value by improving communication, business-alignment, quality, and productivity. Its applicability includes a number of disciplines such as analysis, design, or development. But why aren’t we all doing Model Driven Development yet?
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Jordi Cabot
Slides for the mdse-book.com chapter 4: MODEL DRIVEN ARCHITECTURE (MDA)
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSEijcsit
Domain-specific modeling is more and more understood as a comparable solution compared to classical software development. Textual domain-specific languages (DSLs) already have a massive impactin contrast
tographical DSLs, they still have to show their full potential. The established textual DSLs are normally generated from a domain specific grammar or maybe other specific textual descriptions. And advantage of textual DSLs is thatthey can be development cost-efficient. In this paper, we describe asimilar approach for the creation of graphical DSLs from textual descriptions. We present a set of speciallydeveloped textual
DSLs to fully describe graphical DSLs based on node and edge diagrams. These are, together with an EMF
meta-model, the input for a generator that produces an eclipse-based graphical Editor. The entire project
is available as open source under the name MoDiGen.
An LSTM-Based Neural Network Architecture for Model TransformationsJordi Cabot
We propose to take advantage of the advances in Artificial Intelligence and, in particular, Long Short-Term Memory Neural Networks (LSTM), to automatically infer model transformations from sets of input-output model pairs.
Generate an OData implementation for your data based on an initial UML domain model. Refine the model with OData information for a more precise generation.
Very preliminar intro to MDE for software developer communities and other kind of software practitioners. Contains material from several recognized sources.
The purpose of the lab to the latest skills required for Job opportunities in many industries . This helps faculties to develop their skills and publish papers in intenational conferences and also innovate solutions
ModelWriter Presentation International 01-07-2015Ferhat Erata
The project envisions an integrated authoring environment called "ModelWriter" for Technical Authors (such as Software or Systems Engineers etc.) which will combine a Semantic Word Processor (= the "Writer" part), looking like a usual word processor but capable to "understand" pieces of text and transparently create models of contents out of them; and a Knowledge Capture Tool (= the "Model" part), looking like familiar information modelling tools such as UML, BPMN, ReqIF, etc. ModelWriter will allow Technical Authors to freely move bi-directionally and interactively between text and model to enhance the quality (consistency and completeness) of the technical documents.
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Introduction to architectures based on models, models and metamodels. model driven architecture
1. Software Architecture
School of Computer Science University of Oviedo
University of Oviedo
Software Architecture
Part III
Class #1
Introduction to Architectures based
on Models, Models and Metamodels.
Model-Driven Architecture
2014 Vicente García Díaz
5. Software Architecture
School of Computer Science University of Oviedo
Formula 1
car
(domain)
What is a model? (I)
Model
describes
6. Software Architecture
School of Computer Science University of Oviedo
6
What is a model? (II)
1. Point of reference to imitate or reproduce
2. Element, that, for its perfection must be
followed and reproduced
3. Small representation of something
4. It is a theoretical scheme, usually
mathematical, of a system or of a complex
reality, as the economic development of a
country, which is made to facilitate the
understanding and the study of its behavior
Source: http://www.rae.es/rae.html
7. Software Architecture
School of Computer Science University of Oviedo
• Of course…
7
Models in software development?
Model Development Product
8. Software Architecture
School of Computer Science University of Oviedo
• Classical engineering is based on the use of
models to produce a product after conducting
a development
▫ Is not possible to fully automate the
development
8
Typical development process
9. Software Architecture
School of Computer Science University of Oviedo
• Peculiarity: software products can be
designed and created without “going out" of
the computer
• Informatics Information + Automatic
9
Software development process
Model Development Product
10. Software Architecture
School of Computer Science University of Oviedo
Could we automate the software
development process?
Model-Driven Engineering
(MDE)
10
11. Software Architecture
School of Computer Science University of Oviedo
11
Motivation
• Growth of software complexity
• It is not being reused the technological and domain
knowledge
• It is necessary to industrialize software development
• The term software crisis is still valid
The major cause of the software crisis is
that the machines have become several
orders of magnitude more powerful! To
put it quite bluntly: as long as there were
no machines, programming was no
problem at all; when we had a few weak
computers, programming became a mild
problem, and now we have gigantic
computers, programming has become an
equally gigantic problem [Dijkstra, 1972]
[Standish Group, 2004]
12. Software Architecture
School of Computer Science University of Oviedo
• The level of abstraction of languages is
growing
▫ Binary
▫ Assembly
▫ Procedural
▫ Object oriented
• Towards the solution space of the problem
• In the 80s CASE tools emerge
▫ They did not have much success
12
Brief History (I)
+ number of errors in the development
+ level of abstraction
14. Software Architecture
School of Computer Science University of Oviedo
Goals (I)
• Reduce the complexity of current platforms
14
• Express the concepts of different domains in a more
approximate way
Domain concepts
Domain concepts
Mental work of developers
Concepts of the
technology used
Concepts of the
technology used
15. Software Architecture
School of Computer Science University of Oviedo
• Abstract the specification of systems from the
implementation in the target platform
• Improve portability, interoperability and
reusability
• Optimize productivity
15
Goals (II)
16. Software Architecture
School of Computer Science University of Oviedo
For what is mainly used MDE?
• To create software models
16
• Such models define the concepts of a particular
domain
• Existing technologies encompassed in MDE allowed
to work with the models as if they were
programming languages of high-level
abstraction
▫ Usually domain-specific languages
18. Software Architecture
School of Computer Science University of Oviedo
Mobile applications
Source: http://www.metacase.com/support/45/manuals/S60%20Phone%20Example.pdf
19. Software Architecture
School of Computer Science University of Oviedo
Insurance Products
Source: [Kelly and Tolvanen, 2008]
20. Software Architecture
School of Computer Science University of Oviedo
IP telephony
Source: [Kelly and Tolvanen, 2008]
21. Software Architecture
School of Computer Science University of Oviedo
Digital watches
Source: [Kelly and Tolvanen, 2008]
22. Software Architecture
School of Computer Science University of Oviedo
Home automation
Source: [Kelly and Tolvanen, 2008]
26. Software Architecture
School of Computer Science University of Oviedo
Others
Fuente: http://www.pleus.net/articles/boodsl/boodsl.htm
http://sandervanderburg.blogspot.com.es/2011/05/deployment-abstractions-for-webdsl.html
http://mpov.timmorgan.org/cascadingrubies-ruby-dsl-for-generating-css/
28. Software Architecture
School of Computer Science University of Oviedo
• Cascading relationship between models and
metamodels
28
The metamodel
Elements of
the real
world
(domain)
describe describe
Model Metamodel
29. Software Architecture
School of Computer Science University of Oviedo
29
Conceptual space
Meta-metamodel
<<instanceof>>
Domain Metamodel
Abstract
syntax
Semantics
Concrete
syntax
Domain-specific
language
Formal
model
Describe
concepts of
<<instanceof>>
Based on
Respects
Sub-domains
31. Software Architecture
School of Computer Science University of Oviedo
31
The domain of Petri Nets
• They were defined in the 60's by Carl Adam Petri
• They are a specialization of automata theory which allows to
express concurrent events
• They have places, transitions and arcs
• Application areas: data analysis, software design, reliability,
workflows ...
P1
P2
T1
T2
15
4
17
3 4 6
P3 P1 P5
P4
32. Software Architecture
School of Computer Science University of Oviedo
32
A metamodel for the domain
Node
+Name : string
Arc
+weight : int
Place Transition
PetriNet
1
0..*
1
0..*
P1
P2
T1
T2
15
4
17
3 4 6
P3 P1 P5
33. Software Architecture
School of Computer Science University of Oviedo
33
A meta-meta model for the domain
Model Element
Generalizable Element
Typed Element
Attribute Association Class
Node
+Name : string
Arc
+weight : int
Place Transition
PetriNet
1
0..*
1
0..*
34. Software Architecture
School of Computer Science University of Oviedo
34
Mapping between concrete and
abstract syntaxes
Node
+Name : string
Arc
+weight : int
T1
15 17
Place Transition
PetriNet
1 0..*
1
0..*
P1 P2
35. Software Architecture
School of Computer Science University of Oviedo
Metamodel (abstract syntax)
• A metamodel defines the elements of a modeling language,
the relationships among them and constraints
CompositeState
Event
StateMachine
0..n
0..1
Transition
0..1
+trigger
State
0..n
0..n
0..1 0..n
0..n
+transitions
0..1
1
+top
37. Software Architecture
School of Computer Science University of Oviedo
Concrete syntax (textual)
State machine: an example of a state machine
State: state1
State: state2
State: state3
Transition: state1 – state2
Transition: state1 – state3
Transition: state2 – state3
39. Software Architecture
School of Computer Science University of Oviedo
Concrete syntax (textual)
table Country do
field name, varchar(100),primary_key
field area, integer
end
table Person do
field id, autoinc, primary_key
field name, varchar(200)
field id_country, varchar(100), foreign_key(:Country)
end
40. Software Architecture
School of Computer Science University of Oviedo
• Key in model-driven engineering
• It is imperative to:
1. Build domain-specific languages
2. Validate models
3. Transform models
4. Generate artifacts (code, documentation,
etc.)
5. Integration of tools
40
Benefits of the use of a metamodel
42. Software Architecture
School of Computer Science University of Oviedo
• Defined by the Object Management Group OMG, approach whereby the
system design is geared towards models
• OMG Object Management Group 1989
▫ International consortium of the software industry
▫ Composed of many organizations, IBM, Eclipse Foundation, W3C,
Microsoft, HP, etc.
▫ Definition of standards
• http://www.omg.org/mda
42
Introduction to MDA
43. Software Architecture
School of Computer Science University of Oviedo
• Computation Independent Model
(CIM)
• Platform Independent Model (PIM)
• Platform Specific Model (PSM)
• Implementation Specific Model (ISM)
43
Points of view
CIM
PIM
PSM 1 PSM n
…
ISM 1 ISM n
…
44. Software Architecture
School of Computer Science University of Oviedo
Vertical transformations
PIM
Transformation
PSM
J2EE
Transformation
ISM
Java
Definition of automatic
transformation 1
Definition of automatic
transformation 2
45. Software Architecture
School of Computer Science University of Oviedo
45
Four-layer architecture
MOF
UML SysML
UML models SysMLmodels
…
…
System
Meta-metamodel
(M3)
Metamodel (M2)
Model (M1)
Reality (M0)
46. Software Architecture
School of Computer Science University of Oviedo
Standards of the OMG
• UML (Unified Model Language)
• MOF (Meta Object Facility)
• XMI (XML Metadata Interchange)
• OCL (Object Constraint Language)
• QVT (Query View Transformation)
• There are others…
47. Software Architecture
School of Computer Science University of Oviedo
Meta-Object Facility (MOF) ECORE
• Ecore
ECORE META-METAMODEL
49. Software Architecture
School of Computer Science University of Oviedo
Introduction to Architectures based on
Models, Models and Metamodels.
Model-Driven Architecture
Thank you
El metamodelado (o meta-metamodelo) es uno de los temas más importantes de MDE. ES LA BASE. Se necesita para todo:
-Para definir la sintaxis abstracta de los lenguajes en función de un meta-metamodelo origen
-Para definir la sintaxis concreta de los lenguajes en función de un meta-metamodelo origen
Los modelos (equivalente a los programas que se hacen con Java, por ejemplo) pueden ser validados en base a las restricciones puestas en el metamodelo (que a su vez se basan en el meta-metamodelo origen)
Se pueden realizar transformaciones de modelos en base a reglas de transformación entre los metamodelos
Generar código, artefactos en base a las reglas de las plantillas de transformación
Como todos los lenguajes se basan en un mismo meta-metamodelo, entonces se consigue que las herramientas se integren entre sí.