Architecture As Language

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Architecture As Language - Presentation Transcript

    1. Architecture As Language
      Andreas Graf
      MarkusVoelter
      www.itemis.degraf@itemis.de
      www.voelter.devoelter@acm.org
    2. About
    3. 1
      What is a language?
    4. INFORMAL
      Set of well-definedterms
    5. INFORMAL
      Stakeholders
      agree on meaning
    6. FORMAL
      Metamodel
    7. FORMAL
      Metamodel
      Grammar
    8. FORMAL
      Metamodel
      Grammar
      Notation
    9. A DSL is a focussed, processablelanguagefor describing a specific concernwhen building a system in a specific domain. Theabstractionsandnotationsused are natural/suitablefor the stakeholderswho specify that particular concern.
    10. 2
      Architecture DSLs
    11. Architecture
      DSL
    12. As you understand
      anddevelopyour
      Architecture…
    13. Develop a languageto express it!
    14. Language resemblesarchitecturalconcepts
    15. We express theapplication(s) withthelanguage.
    16. DEMO I
      An architectural DSL for embedded systems
    17. 3
      Benefits
    18. Clear Understanding
      frombuildingthelanguage
    19. Unambigious
      Vocabulary
    20. Conceptsindependent
      from Technology
    21. Programming Model canbedefinedbased on ConceptualArcitecture
    22. Architecture„executable“
      (i.e. morethanrulesanddocs)
    23. 4
      Why Textual?
    24. 4
      … or:why not graphical?
    25. Languagesand Editors
      areeasiertobuild
    26. Languagesand Editors
      areeasiertobuild
      Evolve Language and simple editorasyou understand anddiscussthearchitecture, in real time!
    27. Integrateseasilywithcurrentinfrastructure:
      CVS/SVN diff/merge
    28. Model evolutionistrivial, youcanalwaysusegrep.
      adaptingexistingmodelsasthe DSL evolves
    29. Many Developers
      prefertextualnotations
    30. When a graphical
      notation
      isbetter, youcanvisualize.
    31. 5
      Tooling
    32. Severaltoolsavailable.
      Example:oAWXtext
    33. SpecifyGrammar
    34. AntlrGrammarandParserisgeneratedfromthisspecification
    35. Generated Metamodel
    36. SpecifyConstraints
    37. Generated Editor
    38. DEMO II
      The language-aware editor for our DSL
    39. 6
      Generating Code
    40. Sincewealready
      have a formal model….
    41. Generate API
      MapsArchitecturalConceptsto
      Implementationlanguage (non-trivial!)
    42. Implementation
      Implementationonlydepends onthegeneratedprogramming model API
    43. Programming Model
      Generated API + Usage Idioms
      Completely Technology-Independent
    44. Runtime Infrastructure
      Select based on fit wrt. toarchitectural
      conceptsand non-functionalrequirements
    45. Glue Code
      Aka Technology Mapping Code
      Maps API toselectedplatform
    46. Glue Code
      ContainsConfiguration Files forPlatform
      Mightrequire „mix in models“
    47. SeveralPlatforms
      Different Platforms, not Languages
      Support forScaling (non-functionalreq)
      Testing!
    48. Benefits:More EfficientImpl.
      Technology Independent
      Consistence/Quality
      Architecture-Conformance
    49. Code Gen Sequence
      1) Generate API
      2) Write Impl Code
      3) Select Platform
      4) GenerateGlue Code
    50. Separate Models
      forstuff relevant forthe API
      vs. system/deploymentstuff
    51. DEMO III
      Generating C for the
      target device
    52. 7
      Expressing Variability
    53. Different Variants
      ofthe System
      for different customers.
    54. How do I
      express
      this in themodels?
    55. Negative Variability:
      Conditionallytakingsomethingaway
    56. Negative Variability:
      Conditionallytakingsomethingaway
      Feature Models
    57. componentDelayCalculator {
      provides default: IDelayCalculator
      requires screens[0..n]: IInfoScreen
      providesmon: IMonitoringfeature monitoring
      }
    58. componentDelayCalculator {
      provides default: IDelayCalculator
      requires screens[0..n]: IInfoScreen
      providesmon: IMonitoringfeature monitoring
      }
    59. namespacemonitoringStufffeature monitoring {
       
      componentMonitoringConsole {
      requires devices:[*]: IMonitor
      }
      instance monitor: MonitoringConsole
      dynamicconnectmonitor.devicesquery {
      type = IMonitor
      }
       
      }
    60. Positive Variability:Conditionallyaddingsomethingto a minimal core
    61. Positive Variability:Conditionallyaddingsomethingto a minimal core
      Aspects
    62. namespacemonitoring {
       
      componentMonitoringConsole …
      instance monitor: …
      dynamicconnectmonitor.devices …
       
      aspect (*) component {
      providesmon: IMonitoring
      }
      }
    63. componentDelayCalculator {

      }
      componentAircraftModule {

      }
      componentInfoScreen {

      }
    64. componentDelayCalculator {

      }
      componentAircraftModule {

      }
      componentInfoScreen {

      }
      componentDelayCalculator {

      providesmon: IMonitoring
      }
      componentAircraftModule {

      providesmon: IMonitoring
      }
      componentInfoScreen {

      providesmon: IMmonitoring
      }
      aspect (*) component {
      providesmon: IMonitoring
      }
    65. Weaver isgeneric:
      workswith all (container)
      model elements
    66. aspect (*) <type>
      all instancesoftype
      aspect (tag=bla)<type>
      all instanceswith tag bla
      aspect (name=S*) <type>
      all instanceswhosenamestartswith S
    67. AO + Features
      namespacemonitoring feature monitoring {
       
      componentMonitoringConsole …
      instance monitor: …
      dynamicconnectmonitor.devices …
       
      aspect (*) component {
      providesmon: IMonitoring
      }
      }
    68. DEMO III
      Adding Variability and connectivity to a feature model to the previous DSL
    69. Based on actualpracticalexperience
    70. Currently in usewithfourofmycustomers
    71. Benchmarkedby
      suitabilityforuse in today‘sprojects
    72. THE END.
      Thankyou.
      Questions?

    + guest2e0b3aguest2e0b3a, 4 months ago

    custom

    237 views, 0 favs, 2 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 237
      • 186 on SlideShare
      • 51 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 13
    Most viewed embeds
    • 48 views on http://www.eclipsecon.org
    • 3 views on https://www.eclipsecon.org

    more

    All embeds
    • 48 views on http://www.eclipsecon.org
    • 3 views on https://www.eclipsecon.org

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories