This project implements a model-driven transformation pipeline to migrate SysML v1.6 Block Definition Diagrams (BDDs) into equivalent SysML v2.0 textual models. The pipeline is built using Eclipse-based technologies and adheres to the Model-Driven Transformation Development (MDTD) methodology.
The transformation process includes:
- Model-to-Model (MTM) transformation using QVT Operational (QVTo)
- Model-to-Text (MTT) transformation using Acceleo
- Metamodel definitions for both source (SysML v1.6) and target (SysML v2.0) representations
✅ This project was developed as part of a Master's Thesis on model-based language migration for Digital Twins.
-
Clone the repository
git clone https://github.com/dkrgn/master-thesis.git cd master-thesis -
Install Eclipse and dependencies
- Install [Eclipse Modeling Tools](https://www.eclipse.org/downloads/packages/release/
During the development, 2024-03 version was used for QVTo. However, perhaps, due to the version clashes, we could not install Acceleo for this particular version. Thus, we decided to downgrade Eclipse to 2023-06, which helped to resolve the problem with Acceleo. We recommend to use 2023-06 Eclipse version both for QVTo and Acceleo.
- Install the following plugins:
- QVTo (Query/View/Transformation Operational)
- Acceleo (Model-to-Text generator)
- EMF SDK (if not included)
- Install Papyrus to configure SysML v1.6 models and respective .uml files
-
Import the projects into Eclipse
- Go to
File > Import > Existing Projects into Workspace - Select the
master-thesisfolder and import all contained projects
- Go to
-
Open a sample SysML v1.6 model
- Located under
v1.6tov2.0/models/or create one using Papyrus with SysML 1.6 profile
- Located under
-
Run the QVTo transformation
- Right-click the
.qvtofile (e.g.,v1tov2.qvto) - Select
Run As > Run Configurations > QVT Operational Transformation - Create new configuration
- Input: SysML v1.6
.uml - Output: Intermediate SysML v2.0-compliant XMI model (put the desired path and file name, e.g.
platform:/resource/v1.6tov2.0/valid-target/valid1.xmi)
- Right-click the
-
Run the Acceleo M2T generator
- Right-click
generate.mtlunderv2totext/src/v2totext/main/ - Select
Run As > Run Configurations > Acceleo Application - Create new configuration
- Input: the
.xmimodel - Output: SysML v2.0 textual model in
.sysml
- Right-click
-
Validate output
- Open the generated textual model and inspect structure and syntax
- Compare key elements (Blocks, Properties, Associations, etc.) to source
master-thesis/
│
├── v1.6tov2.0/ # Phase 1: Model-to-Model transformation (SysML v1.6 → v2.0)
│ ├── models/ # Source SysML v1.6 .uml models
│ ├── valid-source/ # SysML v1.6 models for validation
│ ├── valid-target/ # Transformed .xmi validate models
│ ├── transforms/
│ │ ├── v1tov2.qvto # QVTo transformation file: v1tov2.qvto
│ └── output/ # .xmi intermediate outputs
│
├── v2totext/ # Phase 2: Model-to-Text transformation (SysML v2.0 → textual)
│ ├── bin/ # Compiled Java classes (optional if using Eclipse)
│ ├── build.properties # Acceleo project configuration
│ ├── META-INF/ # Eclipse metadata (plugin descriptor)
│ ├── src/ # Source folder for the Acceleo M2T project
│ │ ├── models/ # Input SysML v2.0 XMI files (same structure as v1.6tov2.0/valid-target and v1.6tov2.0/output)
│ │ ├── output/ # Generated SysML v2.0 textual output (.sysml)
│ │ ├── valid-source/ # .xmi models for validation
│ │ ├── valid-target/ # .sysml results for validation models
│ │ └── v2totext/ # Main transformation package
│ │ ├── Activator.java # Eclipse plugin activator
│ │ └── main/ # Main transformation logic
│ │ ├── Generate.java # Entrypoint for launching Acceleo MTT
│ │ └── generate.mtl # Acceleo transformation template
│
└── README.md # Project documentation