Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20081202 Md Workbench Tool

1,040 views

Published on

Published in: News & Politics, Technology
  • This is your last chance to grab all 16,000 plans at this discount price. I've been told that Ted will only extend this offer until midnight tonight and this offer will NOT be repeated again. 》》》 https://t.cn/A62Ygslz
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

20081202 Md Workbench Tool

  1. 1. MDWorkbench<br />Ander Zubizarreta<br />
  2. 2. MDWorkbench<br />MDWorkbench is a model-driven engineering development environment to build:<br />Source code and text generators<br />Word documentation<br />Model transformers<br />Eclipse-based IDE<br />Java code may be used in MDWorkbench projects<br />Developed by Sodius SAS <br />
  3. 3. MDWorkbench<br />
  4. 4. MDWorkbenchVersions<br />MDWorkbench Free<br />Limitation: UML modelsonly<br />MDWorkbench Pro<br />Anymetamodel<br />MDWorkbenchAcademic<br />Anymetamodel<br />
  5. 5. MDWorkbenchCodegeneration<br />Codegenerationisbasedontexttemplates, rulesets and scripts<br />Texttemplates are written in TGL (TemplateGenerationLanguage)<br />Rulesets are written in MQL (ModelQueryLanguage)<br />Scripts can bewritten in TGL, MQL or Java<br />
  6. 6. CodegenerationExamplemodel<br />
  7. 7. CodegenerationTexttemplate<br />
  8. 8. CodegenerationRuleset<br />
  9. 9. CodegenerationScripts<br />Script tohandlemultiplicity:<br />
  10. 10. CodegenerationScripts<br />Scripts toaddparametersdeclaration in operations<br />Script tofilter UML parameters:<br />
  11. 11. CodegenerationScripts<br />Script togenerate UML parameters:<br />
  12. 12. CodegenerationRunninggeneration<br />Running configuration:<br />
  13. 13. CodegenerationRunninggeneration<br />Output files:<br />
  14. 14. CodegenerationRunninggeneration<br />Generatedcodeexample:<br />
  15. 15. Documentationgeneration<br />Documentation generators are Microsoft Word® based templates<br />MQL is used to access the dynamic information<br />Doc Template XML schema must be added in Word<br />
  16. 16. DocumentationgenerationDoctemplate<br />Doctemplate uses XML tagstodelimitdynamicsections in thedocument<br />
  17. 17. DocumentationgenerationDoctemplate<br />Microsoft Word® validates the doc template using the referenced XML schema<br />
  18. 18. DocumentationgenerationDoctemplate<br />Calling a script from a template:<br />
  19. 19. DocumentationgenerationDoctemplate<br />ExampleDoctemplate:<br />
  20. 20. DocumentationgenerationRunningconfiguration<br />
  21. 21. DocumentationgenerationOutput example<br />
  22. 22. Modeltransformation<br />Example: <br />Transformationfrom a UML modelto a Relationalmodel<br />Generation of SQL fromtheRelationalmodel<br />Transformationis done using a Ruleset<br />
  23. 23. ModeltransformationUML2Relational: Ruleset<br />
  24. 24. ModeltransformationRunningtransformation<br />- The output is a XMI filewhich defines therelationalmodel<br />
  25. 25. ModeltransformationSQL generation<br />SQL codeisgeneratedfromtheRelationalmodelusing a texttemplate:<br />
  26. 26. ModeltransformationSQL generation<br />We can chainthemodeltransformation and thecodegeneration in a Ruleset:<br />
  27. 27. ModeltransformationOutput result<br />Theresultis a SQL file:<br />-- <br />-- TABLE IdentifiedElement<br />-- <br />DROP TABLE IF EXISTS `IdentifiedElement`;<br />CREATE TABLE `IdentifiedElement` (<br /> `ID` INT <br />) ENGINE=MyISAM DEFAULT CHARSET=latin1;<br />-- <br />-- TABLE NamedElement<br />-- <br />DROP TABLE IF EXISTS `NamedElement`;<br />CREATE TABLE `NamedElement` (<br /> `NAME` VARCHAR(255) <br />) ENGINE=MyISAM DEFAULT CHARSET=latin1;<br />-- <br />-- TABLE Customer<br />-- <br />DROP TABLE IF EXISTS `Customer`;<br />CREATE TABLE `Customer` (<br /> `ORDERS` VARCHAR(255) <br />) ENGINE=MyISAM DEFAULT CHARSET=latin1;<br />
  28. 28. MDWorkbenchTGL<br />TGL isthelanguageusedbyMDWorkbenchtocreatetexttemplates<br />is a simple imperative language using markups (tags) to distinguish static text from dynamic code<br />
  29. 29. MDWorkbenchTGL<br />TGL templatestructure:<br />TGL script structure:<br />
  30. 30. MDWorkbenchTGL<br />A TGL body statement may be:<br />Static text: This is a static text<br />Dynamic text: ${MQL expression} <br />Comment: [#-- This is a comment --] <br />Body directive <br />
  31. 31. MDWorkbenchTGL directives<br />
  32. 32. MDWorkbenchTGL directives<br />
  33. 33. MDWorkbenchMQL<br />MQL isthelanguageusedtowriteRulesets<br />Rulesets are usedto define modeltransformations and tolaunchtextgenerations<br />It is also used as an expression language for text templates statements<br />
  34. 34. MDWorkbenchMQL<br />MQL rulesetstructure:<br />MQL rule structure:<br />
  35. 35. MDWorkbenchMQL<br />MQL script structure:<br />
  36. 36. MDWorkbenchMQL statements<br />
  37. 37. MDWorkbenchMQL expressions<br />
  38. 38. MDWorkbenchUsing ATL in MDWorkbench<br />MDWorkbench provides a set of imperative tools for model transformation and text generation<br />ATL transformationstyleismainlydeclarative<br />MDWorkbench brings the best of the two worlds by integrating ATL<br />Declarative ATL modules can be easily mixed with imperative rulesets or Java code into MDWorkbench projects<br />

×