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

343 views
245 views

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
343
On SlideShare
0
From Embeds
0
Number of Embeds
3
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

×