SlideShare una empresa de Scribd logo
1 de 49
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

Más contenido relacionado

La actualidad más candente

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 EngineeringJordi Cabot
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger 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 ProfilesPhilip 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 ECLIPSEijcsit
 
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 JavaEric 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 iintroductionRai 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 TransformationsJordi 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 APIsJordi Cabot
 
Computer Systems Lab Overview
Computer Systems Lab OverviewComputer Systems Lab Overview
Computer Systems Lab Overviewbutest
 

La actualidad más candente (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 a 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 languageVicente 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
 
Synapse india fundamentals of dotnet development
Synapse india fundamentals of dotnet  developmentSynapse india fundamentals of dotnet  development
Synapse india fundamentals of dotnet developmentSynapseindiappsdevelopment
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesTao Xie
 
2014 01-ticosa
2014 01-ticosa2014 01-ticosa
2014 01-ticosaPharo
 
ModelWriter Presentation International 01-07-2015
ModelWriter Presentation International 01-07-2015ModelWriter Presentation International 01-07-2015
ModelWriter Presentation International 01-07-2015Ferhat Erata
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfCarlos Paredes
 
Summer trainingsoftware 2011
Summer trainingsoftware 2011Summer trainingsoftware 2011
Summer trainingsoftware 2011dkhari
 
SystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFSSystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFSmeharikiros2
 
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
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDRaNa HaSan
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET FrameworkKamlesh Makvana
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross IntroductionStuart Lodge
 

Similar a 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
 

Más de 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
 

Último

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 

Último (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

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

Notas del editor

  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í.