Xactium xDSLs Run Models Not Code Tony Clark tony.clark@xactium.com - PowerPoint PPT Presentation

About This Presentation
Title:

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

Description:

Title: Business Plan Presentation Document presentation format: On-screen Show Other titles: Arial Lucida Sans Unicode Georgia Verdana Monotype Sorts Times New Roman ... – PowerPoint PPT presentation

Number of Views:239
Avg rating:3.0/5.0
Slides: 34
Provided by: codegener
Category:

less

Transcript and Presenter's Notes

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


1
XactiumxDSLs Run Models Not CodeTony
Clarktony.clark_at_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
  • _at_Class Goal metaclass JavaClass extends
    BMM_Element
  • EMF_Descriptor("BMM.impl.GoalImpl")
  • _at_Operation pprintString(model)
  • "Goal " self.getName()
  • " is supported by "
  • self.getSupported_by().asSeq()
  • -gtcollect(t t.getName())
  • -gtseparateWith(", ")
  • end
  • _at_Operation toString()
  • "Goal(" self.getName() ")"
  • end
  • end

26
Language Fragments
  • Selection from a collection
  • _at_Select xT from Collection when Guard do
  • Body
  • else
  • Alternative
  • end
  • Produce a result
  • _at_Result (Goal,Tactic,Unit)
  • Body
  • end

27
Language Fragments
  • Check each element in a collection
  • _at_ForAll x in Collection do
  • Body
  • end
  • Use a unit of resource
  • _at_Use(unit)end
  • Guarded expressions
  • _at_Unless Condition do
  • Body
  • end

28
xDSL Engine
  • _at_Operation ok(goal,resources,results,succ,fail)
  • _at_Select tacticTactic from goal.getSupported_by(
    ) do
  • _at_Select unitOrganization_Unit from
    self.getElements()
  • when unit.establishes(tactic) and
  • resources.lookup(unit.getName()) gt 0
  • do _at_Result(goal,tactic,unit)
  • _at_Use(unit) end
  • end
  • end
  • else
  • _at_Unless goal.getComposed_of().isEmpty() do
  • _at_ForAll child in goal.getComposed_of() do
  • self.ok(child.getName(),resources,result
    s,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.
  • _at_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
  • _at_Class Use extends Sugar
  • _at_Attribute unit Performable end
  • _at_Attribute body Performable end
  • _at_Constructor(unit,body) ! end
  • end

31
Grammars
  • Define a grammar for the syntax class
  • context Use
  • _at_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
  • _at_Operation desugar()
  • let name ltunitgt.getName() then
  • usage resources.lookup(name) then
  • resources resources.bind(name,usage
    - 1)
  • in ltbodygt
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com