SlideShare a Scribd company logo
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
Software Architecture 
School of Computer Science University of Oviedo
Software Architecture 
School of Computer Science University of Oviedo 
3 
Source: http://blog.drummondhouseplans.com/category/multi-family/
Software Architecture 
School of Computer Science University of Oviedo 
4 
Source: http://www.flightglobal.com//
Software Architecture 
School of Computer Science University of Oviedo 
Formula 1 
car 
(domain) 
What is a model? (I) 
Model 
describes
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
Software Architecture 
School of Computer Science University of Oviedo 
• Of course… 
7 
Models in software development? 
Model Development Product
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
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
Software Architecture 
School of Computer Science University of Oviedo 
Could we automate the software 
development process? 
Model-Driven Engineering 
(MDE) 
10
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]
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
Software Architecture 
School of Computer Science University of Oviedo 
13 
Brief History (II)
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
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)
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
Software Architecture 
School of Computer Science University of Oviedo
Software Architecture 
School of Computer Science University of Oviedo 
Mobile applications 
Source: http://www.metacase.com/support/45/manuals/S60%20Phone%20Example.pdf
Software Architecture 
School of Computer Science University of Oviedo 
Insurance Products 
Source: [Kelly and Tolvanen, 2008]
Software Architecture 
School of Computer Science University of Oviedo 
IP telephony 
Source: [Kelly and Tolvanen, 2008]
Software Architecture 
School of Computer Science University of Oviedo 
Digital watches 
Source: [Kelly and Tolvanen, 2008]
Software Architecture 
School of Computer Science University of Oviedo 
Home automation 
Source: [Kelly and Tolvanen, 2008]
Software Architecture 
School of Computer Science University of Oviedo 
Food traceability systems
Software Architecture 
School of Computer Science University of Oviedo 
GADE4ALL (I)
Software Architecture 
School of Computer Science University of Oviedo 
GADE4ALL (II)
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/
Software Architecture 
School of Computer Science University of Oviedo
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
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
Software Architecture 
School of Computer Science University of Oviedo
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
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
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..*
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
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
Software Architecture 
School of Computer Science University of Oviedo 
Concrete syntax (graphical)
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
Software Architecture 
School of Computer Science University of Oviedo 
Metamodel (abstract syntax)
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
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
Software Architecture 
School of Computer Science University of Oviedo
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
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 
…
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
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)
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…
Software Architecture 
School of Computer Science University of Oviedo 
Meta-Object Facility (MOF)  ECORE 
• Ecore 
ECORE META-METAMODEL
Software Architecture 
School of Computer Science University of Oviedo
Software Architecture 
School of Computer Science University of Oviedo 
Introduction to Architectures based on 
Models, Models and Metamodels. 
Model-Driven Architecture 
Thank you

More Related Content

What's hot

MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010fmadiot
 
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Jordi Cabot
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software Engineering
Jordi Cabot
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
Roger Xia
 
Educating in MDE
Educating in MDE Educating in MDE
Educating in MDE
Jordi Cabot
 
You need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF ProfilesYou need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF Profiles
Philip Langer
 
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Jordi Cabot
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 MetamodelDang Tuan
 
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Hugo Bruneliere
 
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSEMODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
ijcsit
 
Transforming a 15 year old model-driven application from C++ to Java
Transforming a 15 year old model-driven application from C++ to JavaTransforming a 15 year old model-driven application from C++ to Java
Transforming a 15 year old model-driven application from C++ to Java
Eric Malotaux
 
08 iec t1_s1_oo_ps_session_11
08 iec t1_s1_oo_ps_session_1108 iec t1_s1_oo_ps_session_11
08 iec t1_s1_oo_ps_session_11Niit Care
 
Mca 2 sem u-1 iintroduction
Mca 2 sem u-1 iintroductionMca 2 sem u-1 iintroduction
Mca 2 sem u-1 iintroduction
Rai University
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
Jordi Cabot
 
A UML profile for OData Web APIs
A UML profile for OData Web APIsA UML profile for OData Web APIs
A UML profile for OData Web APIs
Jordi Cabot
 
Computer Systems Lab Overview
Computer Systems Lab OverviewComputer Systems Lab Overview
Computer Systems Lab Overviewbutest
 
Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
Fáber D. Giraldo
 

What's hot (20)

MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010
 
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
 
UML01
UML01UML01
UML01
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software Engineering
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Acceleo Code Generation
Acceleo Code GenerationAcceleo Code Generation
Acceleo Code Generation
 
6
66
6
 
Educating in MDE
Educating in MDE Educating in MDE
Educating in MDE
 
You need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF ProfilesYou need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF Profiles
 
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 Metamodel
 
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
 
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSEMODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
 
Transforming a 15 year old model-driven application from C++ to Java
Transforming a 15 year old model-driven application from C++ to JavaTransforming a 15 year old model-driven application from C++ to Java
Transforming a 15 year old model-driven application from C++ to Java
 
08 iec t1_s1_oo_ps_session_11
08 iec t1_s1_oo_ps_session_1108 iec t1_s1_oo_ps_session_11
08 iec t1_s1_oo_ps_session_11
 
Mca 2 sem u-1 iintroduction
Mca 2 sem u-1 iintroductionMca 2 sem u-1 iintroduction
Mca 2 sem u-1 iintroduction
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
 
A UML profile for OData Web APIs
A UML profile for OData Web APIsA UML profile for OData Web APIs
A UML profile for OData Web APIs
 
Computer Systems Lab Overview
Computer Systems Lab OverviewComputer Systems Lab Overview
Computer Systems Lab Overview
 
Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
 

Similar to Introduction to architectures based on models, models and metamodels. model driven architecture

Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific language
Vicente García Díaz
 
Special Purpose IBM Center of excellence lab
Special Purpose IBM Center of excellence lab Special Purpose IBM Center of excellence lab
Special Purpose IBM Center of excellence lab
Ganesan Narayanasamy
 
VIRTUAL LAB
VIRTUAL LABVIRTUAL LAB
VIRTUAL LAB
SAFAD ISMAIL
 
Synapse india fundamentals of dotnet development
Synapse india fundamentals of dotnet  developmentSynapse india fundamentals of dotnet  development
Synapse india fundamentals of dotnet development
Synapseindiappsdevelopment
 
1 module intro
1 module intro1 module intro
1 module intro
Rashath Mohamed
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
Tao Xie
 
2014 01-ticosa
2014 01-ticosa2014 01-ticosa
2014 01-ticosa
Pharo
 
ModelWriter Presentation International 01-07-2015
ModelWriter Presentation International 01-07-2015ModelWriter Presentation International 01-07-2015
ModelWriter Presentation International 01-07-2015
Ferhat Erata
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
Ivano Malavolta
 
Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdf
Carlos Paredes
 
Summer trainingsoftware 2011
Summer trainingsoftware 2011Summer trainingsoftware 2011
Summer trainingsoftware 2011dkhari
 
why to do BCA course?
why to do BCA course?why to do BCA course?
why to do BCA course?
L.POONGOTHAI SHALINI
 
SystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFSSystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFS
meharikiros2
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDRaNa HaSan
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDRaNa HaSan
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDMohamed Bayomi
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
Kamlesh Makvana
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross IntroductionStuart Lodge
 

Similar to Introduction to architectures based on models, models and metamodels. model driven architecture (20)

Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific language
 
Special Purpose IBM Center of excellence lab
Special Purpose IBM Center of excellence lab Special Purpose IBM Center of excellence lab
Special Purpose IBM Center of excellence lab
 
VIRTUAL LAB
VIRTUAL LABVIRTUAL LAB
VIRTUAL LAB
 
V5I1-IJERTV5IS010514
V5I1-IJERTV5IS010514V5I1-IJERTV5IS010514
V5I1-IJERTV5IS010514
 
Synapse india fundamentals of dotnet development
Synapse india fundamentals of dotnet  developmentSynapse india fundamentals of dotnet  development
Synapse india fundamentals of dotnet development
 
1 module intro
1 module intro1 module intro
1 module intro
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
 
2014 01-ticosa
2014 01-ticosa2014 01-ticosa
2014 01-ticosa
 
ModelWriter Presentation International 01-07-2015
ModelWriter Presentation International 01-07-2015ModelWriter Presentation International 01-07-2015
ModelWriter Presentation International 01-07-2015
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdf
 
Summer trainingsoftware 2011
Summer trainingsoftware 2011Summer trainingsoftware 2011
Summer trainingsoftware 2011
 
why to do BCA course?
why to do BCA course?why to do BCA course?
why to do BCA course?
 
Intro1
Intro1Intro1
Intro1
 
SystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFSSystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFS
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SD
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SD
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SD
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 

More from Vicente García Díaz

jBPM
jBPMjBPM
Wikitude. KML y ARML
Wikitude. KML y ARMLWikitude. KML y ARML
Wikitude. KML y ARML
Vicente García Díaz
 
Wikitude. ARchiect
Wikitude. ARchiectWikitude. ARchiect
Wikitude. ARchiect
Vicente García Díaz
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
Vicente García Díaz
 
Introducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosIntroducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosVicente García Díaz
 
Iniciación a ARToolKit
Iniciación a ARToolKitIniciación a ARToolKit
Iniciación a ARToolKit
Vicente García Díaz
 
Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)
Vicente García Díaz
 
Wikitude. Servicios Seb
Wikitude. Servicios SebWikitude. Servicios Seb
Wikitude. Servicios Seb
Vicente García Díaz
 
LaTeX
LaTeXLaTeX
Automatización y Microsoft Word
Automatización y Microsoft WordAutomatización y Microsoft Word
Automatización y Microsoft Word
Vicente García Díaz
 
Árboles
ÁrbolesÁrboles
Dispersión y tablas hash
Dispersión y tablas hashDispersión y tablas hash
Dispersión y tablas hash
Vicente García Díaz
 
Grafos
GrafosGrafos

More from Vicente García Díaz (15)

jBPM
jBPMjBPM
jBPM
 
Wikitude. KML y ARML
Wikitude. KML y ARMLWikitude. KML y ARML
Wikitude. KML y ARML
 
Wikitude. ARchiect
Wikitude. ARchiectWikitude. ARchiect
Wikitude. ARchiect
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
 
Introducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosIntroducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelos
 
Iniciación a OpenGL
Iniciación a OpenGLIniciación a OpenGL
Iniciación a OpenGL
 
Iniciación a la realidad aumentada
Iniciación a la realidad aumentadaIniciación a la realidad aumentada
Iniciación a la realidad aumentada
 
Iniciación a ARToolKit
Iniciación a ARToolKitIniciación a ARToolKit
Iniciación a ARToolKit
 
Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)
 
Wikitude. Servicios Seb
Wikitude. Servicios SebWikitude. Servicios Seb
Wikitude. Servicios Seb
 
LaTeX
LaTeXLaTeX
LaTeX
 
Automatización y Microsoft Word
Automatización y Microsoft WordAutomatización y Microsoft Word
Automatización y Microsoft Word
 
Árboles
ÁrbolesÁrboles
Árboles
 
Dispersión y tablas hash
Dispersión y tablas hashDispersión y tablas hash
Dispersión y tablas hash
 
Grafos
GrafosGrafos
Grafos
 

Recently uploaded

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 

Recently uploaded (20)

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: 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
  • 2. Software Architecture School of Computer Science University of Oviedo
  • 3. Software Architecture School of Computer Science University of Oviedo 3 Source: http://blog.drummondhouseplans.com/category/multi-family/
  • 4. Software Architecture School of Computer Science University of Oviedo 4 Source: http://www.flightglobal.com//
  • 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
  • 13. Software Architecture School of Computer Science University of Oviedo 13 Brief History (II)
  • 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
  • 17. Software Architecture School of Computer Science University of Oviedo
  • 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]
  • 23. Software Architecture School of Computer Science University of Oviedo Food traceability systems
  • 24. Software Architecture School of Computer Science University of Oviedo GADE4ALL (I)
  • 25. Software Architecture School of Computer Science University of Oviedo GADE4ALL (II)
  • 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/
  • 27. Software Architecture School of Computer Science University of Oviedo
  • 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
  • 30. Software Architecture School of Computer Science University of Oviedo
  • 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
  • 36. Software Architecture School of Computer Science University of Oviedo Concrete syntax (graphical)
  • 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
  • 38. Software Architecture School of Computer Science University of Oviedo Metamodel (abstract syntax)
  • 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
  • 41. Software Architecture School of Computer Science University of Oviedo
  • 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
  • 48. Software Architecture School of Computer Science University of Oviedo
  • 49. Software Architecture School of Computer Science University of Oviedo Introduction to Architectures based on Models, Models and Metamodels. Model-Driven Architecture Thank you

Editor's Notes

  1. http://www.metacase.com/support/45/manuals/S60%20Phone%20Example.pdf
  2. 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í.