YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Modelling and Programming: Isn’t it all the same?

Modeling and Programmingisn‘t it all the same?

Markus Voelterindependent/itemis

[email protected]

www.voelter.devoelterblog.blogspot.de

@markusvoelter+Markus Voelter

Page 2: Modelling and Programming: Isn’t it all the same?
Page 3: Modelling and Programming: Isn’t it all the same?

We don‘t want to

we want tomodel,

program!

Page 4: Modelling and Programming: Isn’t it all the same?

We don‘t want to

we want tomodel,

program!… at different levels of abstraction… from different viewpoints… integrated!

Page 5: Modelling and Programming: Isn’t it all the same?

We don‘t want to

we want tomodel,

program!… with different degrees of

… with suitable notations… with suitable expressiveness

domain-specificity

Page 6: Modelling and Programming: Isn’t it all the same?

We don‘t want to

we want tomodel,

program!precise and tool processable

And always:

Page 7: Modelling and Programming: Isn’t it all the same?
Page 8: Modelling and Programming: Isn’t it all the same?
Page 9: Modelling and Programming: Isn’t it all the same?

beforeFlight

airborne

flying

landing landed

crashed

next [alt > 0]

reset

next [alt == 0 && speed == 0]

next [alt == 0 && speed > 0]

next [alt == 0 && speed == 0]

Page 10: Modelling and Programming: Isn’t it all the same?
Page 11: Modelling and Programming: Isn’t it all the same?
Page 12: Modelling and Programming: Isn’t it all the same?
Page 13: Modelling and Programming: Isn’t it all the same?

Modeling Tools Programming Tools

!=

Different Worlds

Page 14: Modelling and Programming: Isn’t it all the same?

Modeling ToolModeling Tool

!=

Different Worlds

Page 15: Modelling and Programming: Isn’t it all the same?

Different WorldsMix Models and Programs

Page 16: Modelling and Programming: Isn’t it all the same?

Different WorldsAST Navigation & Query

Mix Models and Programs

Page 17: Modelling and Programming: Isn’t it all the same?

Different WorldsAST Navigation & Query

Mix Models and Programs

Integration of 3GL code

Page 18: Modelling and Programming: Isn’t it all the same?

Different WorldsAST Navigation & Query

Mix Models and Programs

Integration of 3GL codeCode Constraints

Page 19: Modelling and Programming: Isn’t it all the same?
Page 20: Modelling and Programming: Isn’t it all the same?

LanguageWorkbench

(Martin Fowler)

Page 21: Modelling and Programming: Isn’t it all the same?

LanguageWorkbench

(Martin Fowler)

Freelydefine

integratethem

languages and

Page 22: Modelling and Programming: Isn’t it all the same?

?

LanguageWorkbench

(Martin Fowler)

usepersistent

abstractrepresentation

Page 23: Modelling and Programming: Isn’t it all the same?

LanguageWorkbench

(Martin Fowler)

language ::=schema

editorsgenerators

++

Page 24: Modelling and Programming: Isn’t it all the same?

?

LanguageWorkbench

(Martin Fowler)

editingprojectional

Page 25: Modelling and Programming: Isn’t it all the same?

LanguageWorkbench

(Martin Fowler)

persistincompletecontradictory

information

or

Page 26: Modelling and Programming: Isn’t it all the same?

LanguageWorkbench

(Martin Fowler)

powerfulediting

testingrefactoring

debugging

language definitionIDE definition

implies

+groupware

Page 27: Modelling and Programming: Isn’t it all the same?

LanguageWorkbench

(Martin Fowler)

support for„classical“

programming„classical“

modelingand+

Page 28: Modelling and Programming: Isn’t it all the same?
Page 29: Modelling and Programming: Isn’t it all the same?

L

ab

c

d

e

f

gh

i

j

k

m

n

o

with many first class concepts!

Big Language?

Page 30: Modelling and Programming: Isn’t it all the same?

L

Small Language?

and poweful conceptswith a few, orthogonal

Page 31: Modelling and Programming: Isn’t it all the same?

my L

a b c

d e f

g h i

j k l

Modular Language

composable conceptswith many optional,

Page 32: Modelling and Programming: Isn’t it all the same?

Like frameworks and libraries,

Modular Language

Page 33: Modelling and Programming: Isn’t it all the same?

Like frameworks and libraries,

but with syntaxand IDE support

Modular Language

Page 34: Modelling and Programming: Isn’t it all the same?
Page 35: Modelling and Programming: Isn’t it all the same?

Model

A schematic description of a system, theory, or phenomenon that accounts for its known or inferred properties and may be

used for further study of its characteristics

www.answers.com/topic/model

Page 36: Modelling and Programming: Isn’t it all the same?

A representation of a set of components of a process, system,

or subject area, generally developed for understanding, analysis, improvement, and/or

replacement of the process

www.ichnet.org/glossary.htm

Model

Page 37: Modelling and Programming: Isn’t it all the same?

an abstraction or simplification of reality

ecosurvey.gmu.edu/glossary.htm

Model

Page 38: Modelling and Programming: Isn’t it all the same?

Model

a model is alwaysrelative to something

an abstraction or simplification of reality

Page 39: Modelling and Programming: Isn’t it all the same?

Model

an abstraction or simplification of another model.

Page 40: Modelling and Programming: Isn’t it all the same?

Model

an abstraction or simplification of another model.

“model” is a role.

Page 41: Modelling and Programming: Isn’t it all the same?

Role?

CarPerson

DriverOwner

Page 42: Modelling and Programming: Isn’t it all the same?

Role?

CarPersondriver

owner

Page 43: Modelling and Programming: Isn’t it all the same?

Role?

CarPersondriver

owner

A role characterizes a relationship between two entities.

Page 44: Modelling and Programming: Isn’t it all the same?

Role?

ProgramProgrammodel

A role characterizes a relationship between two entities.

Page 45: Modelling and Programming: Isn’t it all the same?

Role?

ProgramProgrammodel

abstract detailed

Page 46: Modelling and Programming: Isn’t it all the same?

Role?

ProgramProgrammodel

abstract detailed

Program

abstract

detailed

model

Page 47: Modelling and Programming: Isn’t it all the same?
Page 48: Modelling and Programming: Isn’t it all the same?

A Concrete Example System:mbeddr

Page 49: Modelling and Programming: Isn’t it all the same?
Page 50: Modelling and Programming: Isn’t it all the same?

An extensible C with support for

formal methods,requirements

and PLE.

Page 51: Modelling and Programming: Isn’t it all the same?

IDE for Everything

Page 52: Modelling and Programming: Isn’t it all the same?

A debuggerfor all of that

Page 53: Modelling and Programming: Isn’t it all the same?
Page 54: Modelling and Programming: Isn’t it all the same?

SDK for buildingyour ownLanguage

Extensions!

Page 55: Modelling and Programming: Isn’t it all the same?

IDE for Everything

JetBrains

MPSOpen Source Language Workbench

Page 56: Modelling and Programming: Isn’t it all the same?
Page 57: Modelling and Programming: Isn’t it all the same?

Challengesin embedded software

development

Page 58: Modelling and Programming: Isn’t it all the same?

Abstractionwithout

Runtime Cost

Page 59: Modelling and Programming: Isn’t it all the same?

C consideredunsafe

Page 60: Modelling and Programming: Isn’t it all the same?

ProgramAnnotations

Page 61: Modelling and Programming: Isn’t it all the same?

Static Checksand

Verification

Page 62: Modelling and Programming: Isn’t it all the same?

Product Linesand

Requirement Traces

Page 63: Modelling and Programming: Isn’t it all the same?

Separate, hard to integrate

Tools

Page 64: Modelling and Programming: Isn’t it all the same?
Page 65: Modelling and Programming: Isn’t it all the same?

mbeddr CSolution

Philosophy

Page 66: Modelling and Programming: Isn’t it all the same?

more specialized domainsmore specialized languages

ExtensionExtension

Page 67: Modelling and Programming: Isn’t it all the same?

more specialized domainsmore specialized languages

ExtensionExtension

Page 68: Modelling and Programming: Isn’t it all the same?

more specialized domainsmore specialized languages

ExtensionExtension

Page 69: Modelling and Programming: Isn’t it all the same?

more specialized domainsmore specialized languages

ExtensionExtension

Page 70: Modelling and Programming: Isn’t it all the same?
Page 71: Modelling and Programming: Isn’t it all the same?

Incremental Trafo

Page 72: Modelling and Programming: Isn’t it all the same?

Incremental Trafo

Page 73: Modelling and Programming: Isn’t it all the same?

Incremental Trafo

Page 74: Modelling and Programming: Isn’t it all the same?

Incremental Trafo

Page 75: Modelling and Programming: Isn’t it all the same?
Page 76: Modelling and Programming: Isn’t it all the same?

Language Extension

Page 77: Modelling and Programming: Isn’t it all the same?

Language Extension

Page 78: Modelling and Programming: Isn’t it all the same?

Language Extension

Page 79: Modelling and Programming: Isn’t it all the same?
Page 80: Modelling and Programming: Isn’t it all the same?

D E M O

Page 81: Modelling and Programming: Isn’t it all the same?
Page 82: Modelling and Programming: Isn’t it all the same?

Statusand

Availability

Page 83: Modelling and Programming: Isn’t it all the same?

http://mbeddr.com

Page 84: Modelling and Programming: Isn’t it all the same?

LWESLanguage Workbenches

for Embedded Systems

Developed within

gefördert durch das BMBFFörderkennzeichen 01|S11014

Page 85: Modelling and Programming: Isn’t it all the same?

Open Source(EPL)

Page 86: Modelling and Programming: Isn’t it all the same?

support for graphical 2013

Page 87: Modelling and Programming: Isn’t it all the same?

integrationin 2013

Page 88: Modelling and Programming: Isn’t it all the same?

FirstCommercial

Project

Page 89: Modelling and Programming: Isn’t it all the same?

2 Developers, 4 months

existing source code30.000 – 50.000 LOC

Product LineCertification Required

Page 90: Modelling and Programming: Isn’t it all the same?

SystematicStudy with

BMW

Page 91: Modelling and Programming: Isn’t it all the same?

The “Pacemaker”

Challenge

Page 92: Modelling and Programming: Isn’t it all the same?
Page 93: Modelling and Programming: Isn’t it all the same?

An extensible version of the C programming languagefor Embedded Programming

C the Difference – C the Future

gefördert durch das BMBFFörderkennzeichen 01|S11014

http://mbeddr.com

Page 94: Modelling and Programming: Isn’t it all the same?

Some of this material is based on this book:

http://dslbook.org

www.dslbook.org

available Feb 2013


Related Documents