Modeling and Programmingisn‘t it all the same?                            Markus Voelter                         independe...
We don‘t want to    model, we want to      program!
We don‘t want to      model, we want to        program!  … at different levels of abstraction  … from different viewpoints...
We don‘t want to     model, we want to        program!  … with different degrees of           domain-specificity  … with s...
We don‘t want to     model, we want to        program! And always:     precise and tool processable
beforeFlight                                     crashed                                       resetnext [alt > 0]        ...
Different Worlds    Programming Tools           !=       Modeling Tools
Different Worlds      Modeling Tool           !=       Modeling Tool
Different Worlds    Mix Models and Programs
Different Worlds    Mix Models and Programs     AST Navigation & Query
Different Worlds    Mix Models and Programs     AST Navigation & Query      Integration of 3GL code
Different Worlds    Mix Models and Programs     AST Navigation & Query      Integration of 3GL code            Code Constr...
Language Workbench      (Martin Fowler)
Language Workbench   (Martin Fowler)   Freely    define languages and       integrate                 them
Language Workbench(Martin Fowler)  use  persistent    abstract ?    representation
Language Workbench      (Martin Fowler) language ::=       schema       + editors    + generators
Language Workbench         (Martin Fowler)            ?  projectional       editing
Language Workbench   (Martin Fowler)  persist incomplete        or contradictory        information
Language Workbench     (Martin Fowler)  powerful   editing     testing  refactoring                 +    debugging   group...
Language Workbench     (Martin Fowler)support for „classical“    programming               + „classical“ and    modeling
Big Language?                   a               o       b           n               c      m                        d     ...
Small Language?                                        L              with a few, orthogonaland poweful concepts
Modular Language                   a   b   c                    d   e   f         my L                    g   h   i      ...
Modular Language  Like frameworks  and libraries,
Modular Language  Like frameworks  and libraries,         but with syntax        and IDE support
Model A schematic description of a      system, theory, orphenomenon that accounts for    its known or inferred properties...
Model  A representation of a set of         components of a   process, system, or subject area, generally developed forund...
Modelan abstraction orsimplification of     reality          ecosurvey.gmu.edu/glossary.ht                                ...
Modelan abstraction orsimplification of     reality   a model is always  relative to something
Modelan abstraction orsimplification of another model.
Modelan abstraction orsimplification of another model.   “model” is a role.
Role?    Person            CarOwner        Driver
Role?           driver  Person   owner    Car
Role?           driver  Person   owner      Car   A role characterizes a   relationship between two   entities.
Role?            model  Program           Program   A role characterizes a   relationship between two   entities.
Role?            model  Program   abstract   detailed                                  Program
Role?            model  Program   abstract   detailed                                  Program                            ...
A ConcreteExample System:mbeddr
An extensible Cwith support forformal methods,  requirements     and PLE.
IDE for Everything
A debuggerfor all of that
SDK for building   your own   Language  Extensions!
IDE for Everything      JetBrains      MPS      Open Source      Language Workbench
Challengesin embedded software     development
Abstraction  withoutRuntime Cost
C considered   unsafe
ProgramAnnotations
Static Checks     andVerification
Product Lines    andRequirement   Traces
Separate, hard to integrate Tools
mbeddr C SolutionPhilosophy
ExtensionExtension   more specialized domains more specialized languages
ExtensionExtension   more specialized domains more specialized languages
ExtensionExtension   more specialized domains more specialized languages
ExtensionExtension   more specialized domains more specialized languages
Incremental Trafo
Incremental Trafo
Incremental Trafo
Incremental Trafo
Language Extension
Language Extension
Language Extension
DEMO
Status    andAvailability
http://mbeddr.co        m
Developed within   LWES   Language Workbenches    for          Embedded Systems                        gefördert durch das...
Open Source   (EPL)
support forgraphical 2013
integration   in 2013
FirstCommercial  Project
2 Developers, 4 months  existing source code  30.000 – 50.000 LOC      Product Line Certification Required
SystematicStudy with   BMW
The “Pacemaker”   Challenge
An extensible version of the C programming language for Embedded Programming     http://mbeddr.co             m           ...
Some of this material isbased on this book:http://dslbook.orgavailable Feb 2013                           www.dslbook.org
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Upcoming SlideShare
Loading in...5
×

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

166

Published on

Presented by Markus Volter at CHOOSE Forum 2012

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
166
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Modeling and Programmingisn‘t it all the same? Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter
  2. 2. We don‘t want to model, we want to program!
  3. 3. We don‘t want to model, we want to program! … at different levels of abstraction … from different viewpoints … integrated!
  4. 4. We don‘t want to model, we want to program! … with different degrees of domain-specificity … with suitable notations … with suitable expressiveness
  5. 5. We don‘t want to model, we want to program! And always: precise and tool processable
  6. 6. beforeFlight crashed resetnext [alt > 0] next [alt == 0 && speed == 0] airborne flying next [alt == 0 && speed > 0] landing landed next [alt == 0 && speed == 0]
  7. 7. Different Worlds Programming Tools != Modeling Tools
  8. 8. Different Worlds Modeling Tool != Modeling Tool
  9. 9. Different Worlds Mix Models and Programs
  10. 10. Different Worlds Mix Models and Programs AST Navigation & Query
  11. 11. Different Worlds Mix Models and Programs AST Navigation & Query Integration of 3GL code
  12. 12. Different Worlds Mix Models and Programs AST Navigation & Query Integration of 3GL code Code Constraints
  13. 13. Language Workbench (Martin Fowler)
  14. 14. Language Workbench (Martin Fowler) Freely define languages and integrate them
  15. 15. Language Workbench(Martin Fowler) use persistent abstract ? representation
  16. 16. Language Workbench (Martin Fowler) language ::= schema + editors + generators
  17. 17. Language Workbench (Martin Fowler) ? projectional editing
  18. 18. Language Workbench (Martin Fowler) persist incomplete or contradictory information
  19. 19. Language Workbench (Martin Fowler) powerful editing testing refactoring + debugging groupware language definition implies IDE definition
  20. 20. Language Workbench (Martin Fowler)support for „classical“ programming + „classical“ and modeling
  21. 21. Big Language? a o b n c m d k L e j f i g hwith many first class concepts!
  22. 22. Small Language?    L  with a few, orthogonaland poweful concepts
  23. 23. Modular Language  a b c d e f my L g h i j k l  with many optional, composable concepts
  24. 24. Modular Language Like frameworks and libraries,
  25. 25. Modular Language Like frameworks and libraries, but with syntax and IDE support
  26. 26. Model A schematic description of a system, theory, orphenomenon that accounts for its known or inferred properties and may be used for further study of its characteristics www.answers.com/topic/mode l
  27. 27. Model A representation of a set of components of a process, system, or subject area, generally developed forunderstanding, analysis, improvement, and/or replacement of the process www.ichnet.org/glossary.htm
  28. 28. Modelan abstraction orsimplification of reality ecosurvey.gmu.edu/glossary.ht m
  29. 29. Modelan abstraction orsimplification of reality a model is always relative to something
  30. 30. Modelan abstraction orsimplification of another model.
  31. 31. Modelan abstraction orsimplification of another model. “model” is a role.
  32. 32. Role? Person CarOwner Driver
  33. 33. Role? driver Person owner Car
  34. 34. Role? driver Person owner Car A role characterizes a relationship between two entities.
  35. 35. Role? model Program Program A role characterizes a relationship between two entities.
  36. 36. Role? model Program abstract detailed Program
  37. 37. Role? model Program abstract detailed Program model abstract detailed Program
  38. 38. A ConcreteExample System:mbeddr
  39. 39. An extensible Cwith support forformal methods, requirements and PLE.
  40. 40. IDE for Everything
  41. 41. A debuggerfor all of that
  42. 42. SDK for building your own Language Extensions!
  43. 43. IDE for Everything JetBrains MPS Open Source Language Workbench
  44. 44. Challengesin embedded software development
  45. 45. Abstraction withoutRuntime Cost
  46. 46. C considered unsafe
  47. 47. ProgramAnnotations
  48. 48. Static Checks andVerification
  49. 49. Product Lines andRequirement Traces
  50. 50. Separate, hard to integrate Tools
  51. 51. mbeddr C SolutionPhilosophy
  52. 52. ExtensionExtension more specialized domains more specialized languages
  53. 53. ExtensionExtension more specialized domains more specialized languages
  54. 54. ExtensionExtension more specialized domains more specialized languages
  55. 55. ExtensionExtension more specialized domains more specialized languages
  56. 56. Incremental Trafo
  57. 57. Incremental Trafo
  58. 58. Incremental Trafo
  59. 59. Incremental Trafo
  60. 60. Language Extension
  61. 61. Language Extension
  62. 62. Language Extension
  63. 63. DEMO
  64. 64. Status andAvailability
  65. 65. http://mbeddr.co m
  66. 66. Developed within LWES Language Workbenches for Embedded Systems gefördert durch das BMBF Förderkennzeichen 01|S11014
  67. 67. Open Source (EPL)
  68. 68. support forgraphical 2013
  69. 69. integration in 2013
  70. 70. FirstCommercial Project
  71. 71. 2 Developers, 4 months existing source code 30.000 – 50.000 LOC Product Line Certification Required
  72. 72. SystematicStudy with BMW
  73. 73. The “Pacemaker” Challenge
  74. 74. An extensible version of the C programming language for Embedded Programming http://mbeddr.co m C the Difference – C the Futuregefördert durch das BMBFFörderkennzeichen 01|S11014
  75. 75. Some of this material isbased on this book:http://dslbook.orgavailable Feb 2013 www.dslbook.org
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×