MDWorkbench

Download Buy Get a license

The Eclipse-based powerful IDE

MDWorkbench is a model-driven engineering development environment to build:

  • Source code and text generators
  • Word documentation
  • Model transformers
  • Custom editors for DSL’s (Domain-Specific Languages)

MDWorkbench is a productivity enhancing tool used to maximize the value of models produced from any application or data source, and to smooth of the flow of information between engineering tools.

MDWorkbench workflow

Code generators are text template-based and can be built for any target architecture or framework. Using Doc templates (Microsoft Word file which specifies the information to generate), rich user documentation or required process documentation can easily be generated. Transformations are rule-based and can transform any number of source models into any number of target models, or may modify the source model only.

Text templates, documentation templates, and transformation rules can be combined transparently in the environment to allow intuitive and efficient model processing.

All of these artifacts can be enriched using Java code for additional services, such as string handling or reutilization of existing assets. Fully independent Java libraries can be seamlessly accessed directly from the rulesets or templates.

MDWorkbench is entirely built on the Eclipse platform.

Manage metamodels

Open to any Metamodel: A metamodel is supported in MDWorkbench using EMF. A metamodel may be imported from various sources such as:

  • EMF Ecore
  • KM3
  • UML 1.3 XMI
  • XML Schema
MDWorkbench metamodel opening
Script Support: Common functionality can be encapsulated on the various metatypes of any metamodel by defining scripts.These scripts dynamically enhance a metamodel by augmenting the features and services available on its metatypes.
MDWorkbench scripting
Profile Support: A profile in MDWorkbench enhances a metamodel with dynamic metatypes. Scripts can then be attached on these new metatypes, allowing you to use polymorphism and inheritance rather than proliferating ‘if’ statements throughout your rulesets.
MDWorkbench profiles support
Metamodel Browser: A reflective Metamodel Browser displays metatypes, their hierachy and features, allowing easy navigation through metamodel relations. Metatypes and features can be grouped into Working Sets, filtered, and searched.
MDWorkbench metamodel browser

Manage models

Open to any Model: MDWorkbench is open to any model format: any XMI-based file (from version 1.0 to 2.1), and any other file as well as non-file-based input through open APIs.Please contact usfor specific models or applications:

  • IBM Rational Rhapsody
  • IBM Rational Statemate
  • IBM Rational DOORS
  • IBM Rational System Architect
  • MATLAB / Simulink / Stateflow
  • AUTOSAR
  • RIF
  • DODAF / CADM
  • MEGA
  • Microsoft Visio
MDWorkbench model opening
Model View: A Model View shows the available metamodels and the history of saved and loaded models. Through this dedicated view, you can open metamodels and models for viewing.
MDWorkbench model view
Model Browser: A reflective Model Browser displays instances and their relations for a loaded model. Metatypes and features can be grouped into Working Sets, filtered, and searched. In addition, table views can be easily created to views lists of elements.
MDWorkbench model browser

Transform models

Transform any model: Transformations are performed from any number of source models into any number of target models, or they may only modify the source model. These models can be instances of any metamodels – including proprietary metamodels.
MDWorkbench model transformation
Transformation rulesets: Model transformations are specified using rulesets. A ruleset is a collection of rules that define the various steps that are needed in order to accomplish a transformation. Rules are implemented using a dedicated imperative language, the Model Query Language (MQL).
MDWorkbench rulesets
MQL (Model Query Language: The Model Query Language (MQL) is an intuitive language for accessing and creating information in models. Constructs exist to easily iterate over collections of elements, and to simply retrieve values in the model without complex expressions or difficult syntax.
MDWorkbench transformation MQL language
Java Integration: Java Bean capabilites are transparently integrated in rulesets, allowing developers to access Java classes in MDWorkbench.
MDWorkbench transformation Java integration
Debug Facilities: When an MDWorkbench evaluation is launched in debug mode, a debug hierarchy is created. A debug hierarchy is a tree of nodes, each node representing an evaluated element (template, rule or script). The values passed to the evaluated element as well the value returned are shown. The debugger allows execution breakpoints to be set in any rule, template or java script. An inspector shows the values of all available variables and relations.
MDWorkbench Debugger

Generate code

Code generators are text template-based and can be built for any target language, architecture, or framework. They provide a dynamic bridge between analysis and design. MDWorkbench supports iterative development cycles by preserving user-defined code fragments when regenerating files.

 

Text Template: A text template specifies the information, source code or other text, to generate in a given file as well as the name of the file. Using WYSIWYG layout capabilities, any text document is easily generated.
MDWorkbench generation template
Dynamic Text: Text templates can define place holders replaced at runtime by information from the model.
MDWorkbench dynamic text generation
Java Integration: Java Bean capabilites are transparently integrated in text templates, allowing developers to access Java classes in MDWorkbench.
MDWorkbench Java integration
Protect Hand-Written User Code: Protected tags can be used to define user code areas preserved in the generated files, allowing iterative development lifecycles.
MDWorkbench generation protected text
Whitespace Handling: Whitespaces are automatically ignored (not printed to output) on lines that contain only processing directives (e.g. ‘if’ and ‘foreach’ statements). This lets you write well formated templates without impacting the generated output.
MDWorkbench generation whitespaces handling
Debug Facilities: MDWorkbench offers debug facilities to analyze the flow of the generation.
MDWorkbench generation debugger

Generate documentation

Word Documentation Generation: Using doc templates, rich user documentation or required process documentation can easily be generated. A doc template is a Microsoft Word® file which specifies the information to generate in a given file as well as the name of the file. All of the functions, formatting and styles available in Word® can be used to define your template. A doc template can have parameters that are used to derive the dynamic contents based on the specific model under consideration.
MDWorkbench documentation generation template
You can generate rich documents to describe models, to report metrics, to report QA validation results, etc…
MDWorkbench documentation generation output
Md_Workbench_screenshot

  • Java Runtime Environment 1.5 or newer
  • The installer version works on Microsoft Windows only
  • Zipped and update site versions support Linux and Apple OSX
  • Eclipse 3.4 or newer for the update site version

Note : Some MDAccess components are only supported on Microsoft Windows.