Top Banner
Modeling and Programming isn‘t it all the same? Markus Voelter independent/itemis [email protected] www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter
94

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

May 10, 2015

Download

Documents

CHOOSE

Presented by Markus Volter at CHOOSE Forum 2012
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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