20081202 Md Workbench Tool

991 views

Published on

Published in: News & Politics, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
991
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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 />

×