introduction to model- driven engineering - irisa · pdf fileintroduction to model-driven...

27
1 Introduction to Model- Driven Engineering Prof. Jean-Marc Jézéquel (Univ. Rennes 1 & INRIA) Triskell Team @ IRISA Campus de Beaulieu F-35042 Rennes Cedex Tel : +33 299 847 192 Fax : +33 299 847 171 e-mail : [email protected] http://www.irisa.fr/prive/jezequel (or: Why I'd like write program that write programs rather than write programs) © J.-M. Jézéquel, Sep-13 2 Who (does not) know this? Rovio’s Angry Bird more than 1.7 billion downloads hundreds of millions of monthly active users Revenue > $500M

Upload: truongnguyet

Post on 21-Mar-2018

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

1

Introduction to Model-Driven Engineering

Prof. Jean-Marc Jézéquel(Univ. Rennes 1 & INRIA)

Triskell Team @ IRISACampus de Beaulieu

F-35042 Rennes CedexTel : +33 299 847 192 Fax : +33 299 847 171

e-mail : [email protected]

http://www.irisa.fr/prive/jezequel

(or: Why I'd like write program that write programs rather than write programs)

© J.-M. Jézéquel, Sep-13 2

Who (does not) know this? Rovio’s Angry Bird

– more than 1.7 billion downloads

– hundreds of millions of monthly active users

– Revenue > $500M

Page 2: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

2

© J.-M. Jézéquel, Sep-13 3

How would you buildAngry Birds?

Only from a technical perspective– Leaving away the Art Design & brilliant marketing

The game is physics-based– you adjust the trajectory and power of the slingshot with

your finger

Architecture?

© J.-M. Jézéquel, Sep-13 4

Additional issues– Frameworks: Box2d, PlayN

– Plateform: Android, Chrome, webOS, iOS, Mac, Maemo, Symbian, PlayStation Portable, PlayStation 3,Windows, Windows Phone, Bada

– Versions: Angry Birds, Angry Birds Seasons, Angry BirdsRio, Angry Birds Space, Angry Birds Heikki, Angry BirdsStar Wars, Bad Piggies

– Pb: sync accross devices?

Page 3: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

3

© J.-M. Jézéquel, Sep-13 5

Philips (Medical Systems)

Not just for games

© J.-M. Jézéquel, Sep-13 6

Airbus

Page 4: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

4

© J.-M. Jézéquel, Sep-13 7

Modern Software Problems

Importance of non-functional properties– distributed systems, parallel & asynchronous– quality of service : reliability, latency, performance...

Flexibility of functional aspects: Product Lines– notion of product lines (space, time)

Versions(Time)

Variants (Functionalities)

Timeto

Market!

Timeto

Market!1.1

1.2

1.01.0 1.0 1.0 1.0 1.0

1.1 1.1 1.1 1.1 1.1

1.2 1.2 1.2 1.2 1.2

1.3 1.3 1.3 1.3 1.3

1.4 1.4 1.4 1.4 1.4

© J.-M. Jézéquel, Sep-13 8

Practice of Software Engineering

1965 1975 1985 1995 2005 2015 Time

Size of« big »projects(LOC)

109

108

107

106

105

104 Compiler

Packet Switching System

Nuclear Submarine Control

GSM Network

Linux, Windows

Systems of Systems

Page 5: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

5

© J.-M. Jézéquel, Sep-13 9

From the object as the only one concept– As e.g. in Smalltalk

To a multitude of concepts

Once upon a time…software development looked simple

Design patterns

Collaborations

Required port Provided Port

<<Component>>Decoder

DecoderIReceiverI

DaDataI

ComponentsApple iOS

CORBAIIOP

MicrosoftC# & .Net

XMLSOAP

Android Java &EJB

HTTPHTML

+ until the next ultimate middleware platform (~2005)

ProprietaryMiddleware(eg. automotive)

It's difficult -- in fact, next to impossible – for a large enterprise to standardize on a single middleware platform. (R. Soley)

Middleware (middle war)

Aspects

© J.-M. Jézéquel, Sep-13 10

Collaborations

Objects should be as simple as possible– To enable modular understanding

But then where is the complexity?– It is in the way objects interact!

– Cf. Collaborations as a

standalone diagram in UML(T. Reenskaug’s works)

Page 6: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

6

© J.-M. Jézéquel, Sep-13 11

Design Patterns

Embody architectural know-how of experts

As much about problems as about solutions– pairs problem/solution in a context

About non-functional forces – reusability, portability, and extensibility…

Not about classes & objects but collaborations– Actually, design pattern applications are parameterized

collaborations

© J.-M. Jézéquel, Sep-13 12

From Objects to Components

Object = instance of a class

Class = reusable unit of software– focus on structural and functional properties

– development concept

Component = deployment unit– focus on non-functional properties

– installation/execution concept» Explicit dependencies

» Configuration and connection

Page 7: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

7

© J.-M. Jézéquel, Sep-13 13

Middleware or Middle War?

Apple iOS

CORBAIIOP

MicrosoftC# & .Net Win8

XMLSOAP

Android Java &

EJB

HTTPHTML5 No clear winner until now

And probably not in the near future

Migration is expensive and disruptive

The OMG tried to send in the ‘’blue helmets’’

with the MDA initiative

+ until the next ultimate middleware platform

ProprietaryMiddleware(eg. automotive)

It's difficult -- in fact, next to impossible – for a large enterprise to standardize on a single middleware platform. (R. Soley)

© J.-M. Jézéquel, Sep-13 14

Aspect Oriented Programming Kiczales et al., ECOOP’97

– MIT’s one of 10 key technologies for 2010

Encapsulation of cross-cutting concerns in OO programs– Persistence, contract checking, etc.

Weaving at some specific points (join points) in the program execution– Hence more than macros on steroids

AspectJ for AOP in Java– Some clumsiness in describing dynamic join points

Spring AOP complements Spring IoC

Page 8: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

8

© J.-M. Jézéquel, Sep-13 15

good modularity

XML parsing in org.apache.tomcat– red shows relevant lines of code

– nicely fits in one box

XML parsing

© J.-M. Jézéquel, Sep-13 16

good modularity

URL pattern matching in org.apache.tomcat– red shows relevant lines of code

– nicely fits in two boxes (using inheritance)

URL pattern matching

Page 9: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

9

© J.-M. Jézéquel, Sep-13 17

problems like…

where is logging in org.apache.tomcat– red shows lines of code that handle logging – not in just one place– not even in a small number of places

logging is not modularized

© J.-M. Jézéquel, Sep-13 18

Expected benefits of using AOP

good modularity,even for crosscutting concerns

– less tangled code

– more natural code

– shorter code

– easier maintenance and evolution» easier to reason about, debug, change

– more reusable» library aspects

» plug and play aspects when appropriate

Page 10: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

10

© J.-M. Jézéquel, Sep-13 19

AspectJ™ basic mechanisms 1 overlay onto Java

– Dynamic join points » “points in the execution” of

Java programs

4 additions to Java– Pointcuts : specification of joinpoints

» pick out join points and values at those points primitive pointcuts : call(void Line.setP1(Point)) user-defined pointcuts

– Advice» additional action to take at join points in a pointcut

– Intra-class declarations (aka “open classes”)– Aspect

» a modular unit of crosscutting behavior comprised of advice, intra-class declarations,

field,constructor and method declarations

pointcut move(): call(void Line.setP1(Point)) || call(void Line.setP2(Point));

after() returning: move() {<code here runs after each move>

}

© J.-M. Jézéquel, Sep-13 20

An Aspect in AspectJ

aspect DisplayUpdating {

pointcut move():call(void FigureElement.moveBy(int, int)) ||call(void Line.setP1(Point)) ||call(void Line.setP2(Point)) ||call(void Point.setX(int)) ||call(void Point.setY(int));

after() returning: move() {Display.update();

}}

Page 11: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

11

© J.-M. Jézéquel, Sep-13 21

Spring AOP Provides declarative enterprise services,

especially as a replacement for EJB declarative services. – e.g... declarative transaction management

Allow users to implement custom aspects, complementing their use of OOP with AOP.

import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @Aspect public class BeforeExample { @Before("execution(* com.xyz.myapp.dao.*.*(..))") public void doAccessCheck() { // ... }

}

© J.-M. Jézéquel, Sep-13 22

Problématique

Complexité croissante des logiciels

Séparations des préoccupations

Séparations des métiers

Multiplicité des besoins

Multiplicité des plateformes

Évolution permanente

Logiciel = Code ? Est-ce la solution ?

Page 12: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

12

© J.-M. Jézéquel, Sep-13 23

Why modeling: master complexity Modeling, in the broadest sense, is the cost-effective use of

something in place of something else for some cognitive purpose. It allows us to use something that is simpler, saferor cheaper than reality instead of reality for some purpose.

A model represents reality for the given purpose; the model is an abstraction of reality in the sense that it cannot represent all aspects of reality. This allows us to deal with the world in a simplified manner, avoiding the complexity, danger and irreversibility of reality.

Jeff Rothenberg.

© J.-M. Jézéquel, Sep-13 24

Modeling in Science & Engineering

A Model is a simplified representation of an aspectof the World for a specific purpose

M0(the world)

M1(modelingspace) Is represented by

Specificity of Engineering:Model something not yet existing (in order to build it)

Specificity of Engineering:Model something not yet existing (in order to build it)

+Applicant()+ApplicantInfo()+MakeApplication()

-companyName : CString-experience : CString-reference1 : CString-reference2 : CString-reference3 : CString

Applicant

+Person()+PersonInfo()

-personID : unsigned long-surname : CString-givenName : CString-middleInitial : char-streetAddress : CString-postCode : CString-countryname : CString-eMailAddress : CString

Person

-is taught by

1

-teaches

0..*+CourseSession()+CourseSessionInfo()

-courseSessionID : unsigned long-courseDate : unsigned long-courseID : unsigned long-courseLocation : CString

CourseSession

+AppStatus()+AppStatusInfo()

-statusCode : char-statusName : CString

AppStatus

+CourseRegistration()+CourseRegistrationInfo()

-registrationDate : unsigned long-completionFlag : bool-confirmedDate : unsigned long

CourseRegistration

+Test()+TestInfo()

-testScore : unsigned long

Test

+Application()+ApplicationInfo()

-productNr : unsigned long-certificationLevel : unsigned long-applicationDate : unsigned long

Application

+PermittedStatusChange()+StatusChangeInfo()

-fromStatus : char-toStatus : char

PermittedStatusChange

+ExamSession()+ExamSessionInfo()

-examSession : unsigned long-examlocation : CString-examDate : unsigned long

ExamSession

-gives0..*

-is achieved1

-is made by

1

-makes

0..*

-allows change in

0..*

-has a

1..*

-is taken by1

-takes0..*

-is made by a1

-made a1..*

-is in1

-is filled by0..*

-uses

1

-is used in

0..*

-applies to a0..*

-is for a1

+Exam()+ExamInfo()

-examID : unsigned long-certificationLevel : unsigned long

Exam

+Employee()+GetCurrentAge()+EmployeeInfo()

-jobType : CString-roomNr : unsigned long-department : CString-division : CString-jobTitle : CString-manager : unsigned long-headsDept : CString-headsDivision : CString-mobileNr : CString-birthDate : unsigned long

Employee

+registrationform()

RegistrationForm

-uses**

ApplicantApplicantList PersonList

findApplicant()

ApplicationRegForm

Applicant()

findPerson()

addPerson()

addApplication()

Application()

MakeApplication()

ApplicationList

Page 13: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

13

© J.-M. Jézéquel, Sep-13 35

Model and Reality in Software Sun Tse: Do not take the map for the reality Magritte

Software Models: from contemplative to productive

© J.-M. Jézéquel, Sep-13 36

Modeling and Weaving

DesignModel

Use CaseModel

SecurityModel

QoSModel Business

Model

ObjectModel

TestModel

UIModel

PlatformModel

CodeModel

tester

Challenges:-Product Families-Reuse of Weaving Process

-Automatic Weaving

Challenges:-Product Families-Reuse of Weaving Process

-Automatic Weaving

Page 14: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

14

© J.-M. Jézéquel, Sep-13 37

Modeling Languages General Purpose Modeling Languages

– UML and its profiles (MARTE for RT…)

Domain Specific Modeling Languages– Airbus, automotive industry…

– Matlab/Simulink

General Purpose Programming Languages– With restrictions (not everything allowed)

» GWT (Google Web Toolkit)

Annotations, aspects…

In any case, Need for Language Processors

© J.-M. Jézéquel, Sep-13 38

Assigning Meaning to Models If a UML model is no longer just

– fancy pictures to decorate your room

– a graphical syntax for C++/Java/C#/Eiffel...

Then tools must be able to manipulate models– Let’s make a model

of what a model is!

– => meta-modeling» & meta-meta-modeling..

ConstraintNamespace

Package

GeneralizableElement

0..*

0..*+supertype

{ordered}0..*

+subtype

0..*

Generalizes

Classifier

Class AssociationDataType

Feature

BehavioralFeature Struc turalFeature

Operation

AssociationEnd

Reference

0.. *

1

+referent0.. *

+referencedEnd1

RefersTo

MofAttribute

ModelElement

0..*0..1

+containedElement

{ordered}

0..*+container

0..1

Contains

0..*

1..*

0..*

+constrainedElement

1..*Constrains

Page 15: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

15

© J.-M. Jézéquel, Sep-13 39

UML2 meta-model

(part.)

© J.-M. Jézéquel, Sep-13 40

Zoom: comments

Page 16: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

16

© J.-M. Jézéquel, Sep-13 41

Generalizations

NB: Tell you nothing about:•generalization being acyclic, •or semantics of dynamic binding

*

© J.-M. Jézéquel, Sep-13 42

Example with StateMachines

S 1 S3S2

a /b x/y

b /a

y/x

run()

reset()

FSM

name: EString

step()

State input: EString

output: EString

fire()

Transition

initialState

1

owningFSM 1 ownedState*currentState

0..1

source

1

outgoingTransition

*target

1

incomingTransition

0..1

Model

Meta-Model

Page 17: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

17

© J.-M. Jézéquel, Sep-13 44

The 4 layers in practice

© J.-M. Jézéquel, Sep-13 45

Comparing Abstract Syntax Systems

Pascal LanguageGrammar

A specificPascal Program

A specificexecution

of a Pascal program

EBNF MOF

The UMLmeta-Model

A Specificphenomenon

corresponding toa UML Model

A SpecificUML Model

Technology #2(MOF + OCL)

M3

M2

M1

Technology #1(formal grammars

attribute grammars,etc.)

A XMLdocument

A XML DTDOr Schema

A XMLdocument

A XML DTDor Schema

Technology #3(XML Meta-Language)

KIFTheories

Upper LevelOntologies

Technology #4(Ontology engineering)

[XMI=MOF+XML+OCL]

+DescriptionLogics

+ConceptualGraphs+etc.

+ Xlink, Xpath, XSLT+ RDF, OIL, DAML+ etc.

(From J. Bézivin)

Page 18: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

18

© J.-M. Jézéquel, Sep-13 46

MDA: the OMG new vision

"OMG is in the ideal position to provide the model-based standards that are necessary to extend integration beyond the middleware approach… Now is the time to put this plan into effect. Now is the time for the Model Driven Architecture."

Richard Soley & OMG staff,

MDA Whitepaper Draft 3.2

November 27, 2000

© J.-M. Jézéquel, Sep-13 47

Mappings to multiple and evolving platforms

COM+DCOM

CORBA C#.Net XML

SOAP

JavaEJB HTTP

HTML

MOF & UML as the core

Organization assets expressed as models

Model transformations to map to technology specific platforms

Platform neutral models basedon UML & MOF

Page 19: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

19

© J.-M. Jézéquel, Sep-13 48

The core idea of MDA:PIMs & PSMs

MDA models– PIM: Platform Independent Model

» Business Model of a system abstracting away the deployementdetails of a system

» Example: the UML model of the GPS system

– PSM: Platform Specific Model» Operational model including platform specific aspects» Example: the UML model of the GPS system on .NET

Possibly expressed with a UML profile (.NET profile for UML)

– Not so clear about platform models» Reusable model at various levels of abstraction

CCM, C#, EJB, EDOC, …

© J.-M. Jézéquel, Sep-13 49

A PSM for our GPS Here, the platform is .NET

Page 20: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

20

© J.-M. Jézéquel, Sep-13 50

How to go From PIM to PSM?

"just" weave the platform aspect !

How can I do that?– Through Model transformations

– OMG Standard: QVT» Query/View/Transformation

– But many other tools used in practice» Other model transformation tools

» but also Annotation processors

Language processors (GWT…): cf Angry birds!

© J.-M. Jézéquel, Sep-13 51

Weaving aspects into UML Models?

It’s what Model Driven Architecture is about!

Requirements Analysis ArchitecturalDesign

DetailedDesign

Implementation Validation

Lifecycle

Modelingpoint of views

Proofs,QoS

Analysis,Simulation

Technical Aspects

BusinessAspects

Text(e.g. XML)

PIM

Doc Doc Doc Doc Doc Doc

PIM PIM PSM

PIM PSM

Code Tests

Formal Models Formal Models

Endomorphic TransformationsExomorphic TransformationsOutside UML scope

PIM=Platform Independent ModelPSM= Platform Specific Model

Page 21: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

21

© J.-M. Jézéquel, Sep-13 52

But many more dimensions in modeling!

Beyond Design Model – where UML is arguably good…

Business model

GUI model

Development process model

Performance & Resource model

Deployment model

Test model

Etc.

© J.-M. Jézéquel, Sep-13 53

How to take these dimensions into account?

Expression with either– UML, using built-in extension

mechanisms to link with other semantic domains

– DS(M)L, based on MOF

Exploitation– Weave all these aspects

into a design model

– Define mappings between these aspects (as in e.g. federations)

Servicemodel

Domainmodel

Resourcemodel

DesignModel

Testmodel

Installationmodel

Page 22: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

22

© J.-M. Jézéquel, Sep-13 54

Element stereotype

Design pattern application(parametric collaboration)

Historycmd_executed : string

last_command() : string

<<persistent>>

ServiceProvider

<<com mand>> action_1()<<com mand>> action_2()<<com mand>> action_3()

Interpreter

execute()

0..*

1

0..*

11..*1..* 1..*

+invoker

1..*

…and alsoTagged values& Contracts

Command pattern

receiver

invoker

Embedding implicit semantics into a model

© J.-M. Jézéquel, Sep-13 55

…and the result we want...

Historycmd_executed : string

last_command() : string

<<persistent>>

History_StorageProxy

load_last_command() : stringstore_last_command(cmd : string)

action_1_cmd

do()

action_2_cmd

do()

action_3_cmd

do()

ServiceProvider

<<command>> action_1()<<command>> action_2()<<command>> action_3()

+proxy

Interpreter

execute()

0..*

1

0..*

1

ServiceProvider_Command

do() 10..*

+cmdTarget

10..*1..*0..* 1..*

+commands

0..*

Page 23: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

23

© J.-M. Jézéquel, Sep-13 56

0..*

1

Historycm d_executed : str ing

last_comm and() : string

<<persistent>>

Interpreter

execute()

ServiceProvider

<<command>> action_1()<<command>> action_2()<<command>> action_3()

History_StorageProxy

load_last_comm and() : stringstore_last_command(cmd : str ing)

Persitence implementation

1..*0..*

ServiceProvider_Command

do() 10..*

action_3_cmd

do()

action_2_cmd

do()

action_1_cmd

do()

Command pattern implementation

How To: Automatic Model Transformations

In some domains (e.g.; RT systems)transformations can get more complexthan initial model!=> must be managed with sound SE principles

© J.-M. Jézéquel, Sep-13 57

Why complex transformations? Example: Air Traffic Management

– “business model” quite stable & not that complex

Various modeling languages used beyond UML– As many points of views as stakeholders

Deliver software for (many) variants of a platform– Heterogeneity is the rule

Reuse technical solutions across large product lines (e.g. fault tolerance, security…)

Customize generic transformations Compose reusable transformations Evolve & maintain transformations for 15+ years!

Page 24: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

24

© J.-M. Jézéquel, Sep-13 58

The 3 ages of Transformations Awk-like (inc. sed, perl…)

XSLT– W3C standard for transforming XML– Operates on tree structures– syntactical & inefficient

QVT-like– Now hot topic at OMG with RFP Q/V/T

» Query/View/Transformation

– Operates on graphs

BEGIN {action)pattern #1 {action #1}…pattern #n {action #n}END {action)

SE Limit: ~100 LOC

SE Limit: ~1000 LOC

SE Limit: ?Standard?Which/When?

© J.-M. Jézéquel, Sep-13 59

Transformations are Assets=> apply sound SE principles

Must be Modeled– with the UML, using the power of OO

Must be Designed– Design by Contract, using OCL

Must be Implemented– Made available through libraries of components, frameworks…

Must be Tested– test cases

» input: a UML Model» output: a UML Model, + contract checking

Must be Evolved – Items of Configuration Management– Transformations of transformations

Page 25: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

25

© J.-M. Jézéquel, Sep-13 60

Principles

1. Everything relevant to the development process is a model

2. All the meta-models can be written in a language of a unique meta-meta-model

» Same M3 helps Interoperability of tools defined at M2

3. A development process can be modelled as a partially ordered set of model transformations, that take models as input and produce models as output

© J.-M. Jézéquel, Sep-13 61

Consequences

1. Models are aspect oriented. Conversely: Aspects are models

2. Transformations are aspects weavers. They can be modeled.

3. Every meta-model defines a domain specific language

4. Software development has two dimensions: M1-model development and M2-transformation development

Page 26: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

26

© J.-M. Jézéquel, Sep-13 62

Challenges Language definition problems (Q/V/T)

– Expressive, easy to use language(s) for transformations

Technological Issues– Tool set, interoperability…

Software Engineering Issues– From requirements to tests and SCM

Theoretical issues– A transformation is a mapping between semantic domains

» Beyond Code Generation: Proof, Performance Evaluation, Test Synthesis …

– Compositional weaving, cf. Aspect Oriented Software Dvp

© J.-M. Jézéquel, Sep-13 63

UML & Model Driven Architecture: Summary

Modeling to master complexity– Multi-dimensional and aspect oriented by definition

Models: from contemplative to productive– Meta-modeling tools

Model Driven Engineering– Weaving aspects into a design model

» E.g. Platform Specificities

Model Driven Architecture (PIM / PSM): just a special case of Aspect Oriented Design

Related: Generative Prog, Software Factories

Page 27: Introduction to Model- Driven Engineering - IRISA · PDF fileIntroduction to Model-Driven Engineering ... Display.update();}} 11 ... of a Pascal program EBNF MOF The UML meta-Model

27

© J.-M. Jézéquel, Sep-13 64

Preview of the rest of this course Meta-Modeling

– Meta-models & abstract syntaxes– Static Semantics with OCL– Dynamic Semantics with Kermeta/Xtend

Model Transformations & code generation Applications of MDE

– Design Pattern Application– Model Refactoring– Product Line Modeling and Derivation– Model based Testing