mdworkbench

Increase productivity and maximize the value of models produced from any application or data sources with MDWorkbench.

laptop Mdw

Model Transformation Definition

MDWorkbench provides users with an efficient Java programming environment to define any model transformation using a set of complex rules expressed in Java.

  • Handle Multiple Proprietary Formats
    MDWorkbench is used in conjunction with the family of MDAccess connectors to allow designers access to a multitude of proprietary formats.
  • Define Complex Transformation Rules
    Model transformation rules are written in standard Java in MDWorkbench, with the help of a series of new Classes that allow users to specify sophisticated transformations between formats.
  • Debug, Validate and Deploy
    Because MDWorkbench is based on the Eclipse IDE, model transformation rules are easily debugged using production-ready tools and users can easily deploy industrial-strength data transformation executables across their companies.
public class TransformOperation extends MappingFunction {

    public TransformOperation(Mapping mapping) {
        super("Convert System Architect DoDAF2 to MagicDraw UPDM2", mapping);
    }

    @Override
    protected void run(IProgressMonitor monitor) {

        // register loggers
        getContext().setObjectLogBuilder(SaPackage.eINSTANCE, new SAObjectLogBuilder());
        getContext().setObjectLogBuilder(UMLPackage.eINSTANCE, new UMLObjectLogBuilder());

        SubMonitor progress = SubMonitor.convert(monitor, 100);

        // Initialize encyclopedia
        {
            Operation operation = new ValidateEncyclopediaOperation(getMapping().getInput());
            run(operation, progress.newChild(10));
            if (isCanceledOrFailed(monitor)) {
                return;
            }
        }

        // ...

        // log
        buildLog(monitor);
    }
}
    [#package com.sodius.mdw.samples.java]

[#-- 
  -- Generates the Javadoc of a class declaration 
  --]
[#template ClassJavadoc(class : uml21.Class)]
/**
 * ${class.documentation}
 *
 * Generated by ${System.getProperty("user.name")}
 * on ${java.util.Calendar.getInstance().getTime()}
 */
[/#template]

...

[#package com.sodius.mdw.samples.java]

[#-- 
  -- Generates a .java file for the specified UML Class 
  --]
[#template public JavaSource(class : uml21.Class)]
[#file]${class.qualifiedPath}.java[/#file]
${class.packageDeclaration}[#rtrim]
${class.importsDeclaration}[#rtrim]
[#include ClassJavadoc(class)]
${class.bodyDeclaration}
[/#template]

Code Generation

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.
  • Dynamic Text
    Text templates can define place holders replaced at runtime by information from the model.
  • Protect Hand-Written Code
    Protected tags can be used to define user code areas preserved in the generated files, allowing iterative development lifecycles.

Who benefits from MDWorkbench?

Development teams who need to leverage, convert and transform data across tools to enable continuous engineering data flows across business divisions.


What can MDWorkbench do for you?

1

Reuse, leverage and deploy engineering data models

2

Express complex transformation rules between engineering models easily

3

Define one-off model data migrations, or deploy continuous engineering process data flow


Where MDWorkbench Excels:

When complex models expressed in tools’ proprietary formats need to be transformed, integrated or converted in a cost-efficiency and resilient way.

Ask Us Anything About MDWorkbench