AMW Use Case - Tool Interoperability of bug tracking tools

AMW Logo

Nowadays, there are a large number of different tools that can be used to solve similar problems. It is often necessary to use the data produced by one tool in another tool. However, the tools have different data format and semantics.
To support interoperability between different tools, it is necessary to represent the semantic heterogeneities between the tools' elements.

We illustrate the tool interoperability scenario using two well-known bug tracking tools, Mantis and Bugzilla. This use case shows how weaving models are used to capture the semantic heterogeneities between these two tools metamodels. The weaving model acts as high-level specifications for producing model transformations.


Consider two bug tracking tools, Mantis and Bugzilla. Mantis is represented by model Ma (conforms to MMa). Bugzilla is represented by model Mb (conforms to MMb).

The first step is to perform a matching between both metamodels. The matching process creates a weaving model that captures the different kinds of heterogeneities between both tools metamodels. The heterogeneities may vary from simple mappings (e.g., 1-to-1 equivalence links), to complex kinds of mappings (e.g., concatenation, data conversions, etc.). More information about the matching process is available in the matching use case. The weaving model conforms to a weaving metamodel extension for tool interoperability. This extension is available in the weaving metamodel Zoo.

Weaving model for tool interoperability

The weaving model is used as specification to produce model transformations. We implement a higher-order transformation (HOT) based on a generic transformation pattern (see the publication below). The HOT takes the weaving model as input and produces a transformation model as output. This output transformation is used to translate Mantis models into Bugzilla models.

Production of a transformation between Mantis and Bugzilla

Download and examples


This example is a complete scenario of tool interoperability that uses weaving models to capture the different kinds of heterogeneities between the Mantis and Bugzilla metamodels. The weaving model is used to generate ATL transformations.

Example HowTo

This document contains step-by-step instructions explaining how to execute the example.


The publication titled "Model-driven Tool Interoperability: an Application in Bug Tracking" demonstrates the use of weaving models to capture complex kinds of mappings in tool interoperability scenarios. It uses the "Mantis to Bugzilla" scenario for the experimental validation.

Related use cases


Matching is the generic process that creates weaving models. This use case gives a general overview of the matching process, and how it is handled by AMW and ATL.

Metamodel comparison

This use case demonstrates how weaving models are used to compare different metamodels and to produce executable model transformations (we use two metamodels used to define embedded software in the avionics industry).

Bridge between SQL and KM3

This use case shows how weaving models and model transformations are used to translate SQL-DDL (Data Definition Language) into KM3 (a modeling technical space) and to translate KM3 into SQL.

Relational DB to XML

This use case shows how weaving models can be used to perform the data mapping between relational DBs and XML.

Merge of geographical information (GML) and statistical data

This use case presents a weaving model used to define a merge operation between a metamodel with geographical information (an extension of GML) and a metamodel with statistical data into a graphical representation (SVG).

Bridge between DSL and UML Profiles

This use case shows how AMW and ATL are used to produce a bridge between Domain Specific Languages (DSLs) and UML profiles.

System Architecture (SA) management

This use case shows how to map the overlapping concepts of different views of a complex system. It uses a System Architecture (SA) framework called DoDAF (Department of Defense Architecture Framework).