1 / 33

Xactium xDSLs Run Models Not Code Tony Clark tony.clark@xactium

Xactium xDSLs Run Models Not Code Tony Clark tony.clark@xactium.com. Overview. Developments in Modelling Technology xDSLs – A Modelling Methodology Xactium. xDSL Technology. Details of an Application: The Xactium BMS Product. Conclusion. Modelling Technology Development. Assembler.

Download Presentation

Xactium xDSLs Run Models Not Code Tony Clark tony.clark@xactium

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XactiumxDSLs Run Models Not CodeTony Clarktony.clark@xactium.com

  2. Overview • Developments in Modelling Technology • xDSLs – A Modelling Methodology • Xactium. • xDSL Technology. • Details of an Application: The Xactium BMS Product. • Conclusion

  3. Modelling Technology Development Assembler Structured Design HLLs Symbolic OO OOD Formal Executable Agile Scripting DSL UML MDA xDSL

  4. Generate Code From Models System Model Source Code Compiler bin Platform

  5. Run the Model System Model Source Code Compiler xDSL Engine Platform

  6. Code Generation • Pros • Stand-alone. • Arbitrary extension. • No-proprietary platform. • Efficiency. • Cons • Complexity. • Platform Dependence. • Two Representations. • No Domain Specific Semantics. • Difficult to provide tool support. • Difficult to dynamically update.

  7. xDSLs Pros: • Complete Model of application. • Mix of graphical and textual syntax. • Can be used for simulation, analysis, real app or code gen. • High fidelity. • Single representation. • Dynamic updates. • Reduced time and increased agility. • Technology agnostic. Cons: • Careful about proprietary engines. • Careful about efficiency. • Careful about expertise. • More effort up front.

  8. Xactium • Provide model-based solutions. • Eclipse based applications. • Started in 2003. • Developed an xDSL engine – XMF. • New product for 2007: Business Motivation Solution (BMS) • Require model based technology to be agile and flexible.

  9. Xactium -Applications Applications: • Aerospace Integrated Modular Avionics – configuration checking. • Testing – run the test case models against application. • Application Simulations – e.g. satellite payload. • Business Management Information – match goals and information system to progress. • Service Oriented Architecture – executable design of component interfaces. • Interactive Applications – agile system development through incremental process definition. • Transformation: XMI transformation against a proprietary API.

  10. An xDSL Example • Xactium-BMS answers questions WHAT and WHY in business planning. • Applications include: • Mergers and Acquisitions. • Verification of Standards. • Business Plan Analysis. • Impact Analysis. • Planning and Monitoring Business Change. • BMS based on emerging BMM OMG standard that includes many business concepts. • BMS-Solutions rely on technology for flexible and complex analysis of the concepts.

  11. BMS Concepts: Goals

  12. BMS Concepts: Sub-Goals

  13. BMS Concepts: Tactics

  14. BMS Concepts: Units

  15. BMS Solution Rules • A business goal g is OK when: • It has at least one supporting tactic t; and • The tactic is established by an organization unit. • A business goal g is OK when all its child goals are OK. • An organization unit uses a single unit of resource for each tactic it establishes. • An organization unit cannot use more resource than it owns.

  16. Demo

  17. BMS as an xDSL Application • BMS has DSL syntax: the diagrams. • Code generation not appropriate – want to interact with the models. • Interaction and analysis involves an engine that processes BMM data. • Example is just one of many different ways of analysing BMM information. • Require technology that supports flexible dynamic processing of BMM models.

  18. xDSL Technology xDSL can be implemented in any technology. Some are better than others. Xactium uses the following components: • An xDSL architecture consisting of: • Eclipse as a tool platform for standards and inter-operability. • EMF as a basic data format and to generate data editors. • GMF as a means of generating GEF-based diagram editors. • XMF as an xDSL engine.

  19. Technology Graphical xDSL Functionality Output Graphical Editor (GMF) Textual xDSL Information xDSL Model Data Model Editors (EMF) Repository Model Execution Engine (XMF) Eclipse

  20. EMF/GMF/XMF Connectivity xDSL Def EMF Model GMF Model Menus Plugin Menu Handlers XMF

  21. BMS Tool with xDSL

  22. BMM Model

  23. BMS Results Model

  24. XMF Features • Meta-programming engine. • Object-oriented. • Extensive high-level programming features. • Rich model processing facilities. • Language extension facilities. • Open architecture. • Seamless Java integration. • Dynamic. • Written in itself. • Can be embedded

  25. BMM Class Definitions in XMF context Root @Class Goal metaclass JavaClass extends BMM_Element EMF_Descriptor("BMM.impl.GoalImpl") @Operation pprintString(model) "Goal " + self.getName() + " is supported by: " + self.getSupported_by().asSeq() ->collect(t | t.getName()) ->separateWith(", ") end @Operation toString() "Goal(" + self.getName() + ")" end end

  26. Language Fragments Selection from a collection: @Select x:T from Collection when Guard do Body else Alternative end Produce a result: @Result (Goal,Tactic,Unit) Body end

  27. Language Fragments Check each element in a collection: @ForAll x in Collection do Body end Use a unit of resource: @Use(unit)end Guarded expressions: @Unless Condition do Body end

  28. xDSL Engine @Operation ok(goal,resources,results,succ,fail) @Select tactic:Tactic from goal.getSupported_by() do @Select unit:Organization_Unit from self.getElements() when unit.establishes(tactic) and resources.lookup(unit.getName()) > 0 do @Result(goal,tactic,unit) @Use(unit) end end end else @Unless goal.getComposed_of().isEmpty() do @ForAll child in goal.getComposed_of() do self.ok(child.getName(),resources,results,succ,fail) end end end end end

  29. xDSL Language Engineering OK manages a table of resources. Use, increments a usage count for a resource. @Use(Unit) Body end is shorthand for... let name = Unit.getName() then usage = resources.lookup(name) then resources = resources.bind(name,usage – 1) in Body end

  30. Syntax Class Syntax classes extend the XMF engine: @Class Use extends Sugar @Attribute unit : Performable end @Attribute body : Performable end @Constructor(unit,body) ! end end

  31. Grammars Define a grammar for the syntax class: context Use @Grammar extends OCL.grammar Use ::= '(' u = Exp ')' b = Exp 'end' { Use(u,b) }. end

  32. Desugar the Syntax Translate Use to the basic language: context Use @Operation desugar() [| let name = <unit>.getName() then usage = resources.lookup(name) then resources = resources.bind(name,usage - 1) in <body> end |] end

  33. Review • xDSLs is an approach to system development. • xDSLs provide advantages over code gen. • xDSLs can be built using any technology, but… • … some technologies make it easier than others… • …XMF has been designed to support xDSLs • Integrated with EMF/GMF • Xactium planning XMF Open Source edition in 2007. • BMS is an xDSL application based on XMF available in 2007.

More Related