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

49
School of Computer Science Software Architecture Part III Class #1 Introduction to Architectures based on Models, Models and Metamodels. Model-Driven Architecture Vicente García Díaz 2014 University of Oviedo

description

Introduction to Model-Driven Engineering and Model-Driven Architecture

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

Page 1: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Software ArchitecturePart III

Class #1

Introduction to Architectures based on Models, Models and Metamodels. Model-Driven Architecture

Vicente García Díaz2014

University of Oviedo

Page 2: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Page 3: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

3

Source: http://blog.drummondhouseplans.com/category/multi-family/

Page 4: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

4

Source: http://www.flightglobal.com//

Page 5: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Formula 1 car

(domain)Model

describes

What is a model? (I)

Page 6: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

6

What is a model? (II)

1. Point of reference to imitate or reproduce2. Element, that, for its perfection must be

followed and reproduced3. Small representation of something4. 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

Page 7: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• Of course…

7

Models in software development?

Model ProductDevelopment

Page 8: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• 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

Page 9: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• Peculiarity: software products can be designed and created without “going out" of the computer

• Informatics Information + Automatic

9

Software development process

Model ProductDevelopment

Page 10: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Could we automate the software development process?

Model-Driven Engineering(MDE)

10

Page 11: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• 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

11

Motivation

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]

Page 12: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• 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

Page 13: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

13

Brief History (II)

Page 14: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• Reduce the complexity of current platforms

• Express the concepts of different domains in a more approximate way

14

Goals (I)

Domain concepts

Domain concepts

Concepts of the technology used

Mental work of developers

Concepts of the technology used

Page 15: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• Abstract the specification of systems from the implementation in the target platform

• Improve portability, interoperability and reusability

• Optimize productivity

15

Goals (II)

Page 16: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• To create software models

• 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

16

For what is mainly used MDE?

Page 17: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Page 18: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Mobile applications

Source: http://www.metacase.com/support/45/manuals/S60%20Phone%20Example.pdf

Page 19: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Insurance Products

Source: [Kelly and Tolvanen, 2008]

Page 20: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

IP telephony

Source: [Kelly and Tolvanen, 2008]

Page 21: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Digital watches

Source: [Kelly and Tolvanen, 2008]

Page 22: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Home automation

Source: [Kelly and Tolvanen, 2008]

Page 23: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Food traceability systems

Page 24: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

GADE4ALL (I)

Page 25: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

GADE4ALL (II)

Page 26: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Others

Fuente: http://www.pleus.net/articles/boodsl/boodsl.htmhttp://sandervanderburg.blogspot.com.es/2011/05/deployment-abstractions-for-webdsl.html

http://mpov.timmorgan.org/cascadingrubies-ruby-dsl-for-generating-css/

Page 27: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Page 28: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• Cascading relationship between models and metamodels

28

The metamodel

Elements of the real world

(domain)

Model Metamodeldescribedescribe

Page 29: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

29

Conceptual space

Domain Metamodel

Meta-metamodel

Abstractsyntax

Semantics

Concrete syntax

Domain-specific

language

Formal model

Describe concepts of

<<instanceof>>

<<instanceof>>

Based on

Respects

Sub-domains

Page 30: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Page 31: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

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

31

The domain of Petri Nets

P1

P2

P1P3 P5

T1

T2

15

4

17

3 4 6P4

Page 32: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

32

A metamodel for the domain

+Name : string

Node

+weight : int

Arc

Place Transition

PetriNet

10..*

1

0..*

P1

P2

P1P3 P5

T1

T2

15

4

17

3 4 6

Page 33: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

33

A meta-meta model for the domain

Model Element

Generalizable Element

Association ClassAttribute

Typed Element+Name : string

Node

+weight : int

Arc

Place Transition

PetriNet

10..*

1

0..*

Page 34: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

34

Mapping between concrete and

abstract syntaxes

+Name : string

Node

+weight : int

Arc

Place Transition

PetriNet

1 0..*

1

0..*

P1 P2

T1

15 17

Page 35: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• A metamodel defines the elements of a modeling language, the relationships among them and constraints

CompositeState

Event

Transition

0..n

0..1

0..n

0..1+trigger

State

0..n

0..n

0..n

0..n

0..n0..1 0..n0..1

StateMachine

0..n

0..1

0..n

+transitions

0..1

0..1

1

0..1

1

+top

Metamodel (abstract syntax)

Page 36: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Concrete syntax (graphical)

Page 37: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

State machine: an example of a state machineState: state1State: state2State: state3Transition: state1 – state2Transition: state1 – state3Transition: state2 – state3

Concrete syntax (textual)

Page 38: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Metamodel (abstract syntax)

Page 39: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

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

Concrete syntax (textual)

Page 40: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• 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

Page 41: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Page 42: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• 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

Page 43: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• 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

Page 44: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

PIM

PSMJ2EE

ISMJava

Transformation

Transformation

Definition of automatictransformation 1

Definition of automatictransformation 2

Vertical transformations

Page 45: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

45

Four-layer architecture

MOF

UML SysML

UML models SysML models

System

Meta-metamodel (M3)

Metamodel (M2)

Model (M1)

Reality (M0)

Page 46: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• UML (Unified Model Language)

• MOF (Meta Object Facility)

• XMI (XML Metadata Interchange)

• OCL (Object Constraint Language)

• QVT (Query View Transformation)

• There are others…

Standards of the OMG

Page 47: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

• Ecore

ECORE META-METAMODEL

Meta-Object Facility (MOF) ECORE

Page 48: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Page 49: Introduction to architectures based on models, models and metamodels. model driven architecture

Software ArchitectureS

ch

oo

l o

f C

om

pu

ter

Sc

ien

ce

Un

ive

rsit

y o

f O

vie

do

Introduction to Architectures based on

Models, Models and Metamodels.

Model-Driven Architecture

Thank you