** based upon popular formal mathematical techniques of ''graph transformation (GT)'' and ''abstract state machines (ASM)''

** based upon popular formal mathematical techniques of ''graph transformation (GT)'' and ''abstract state machines (ASM)''

Line 30:

Line 30:

** model analysis transformations

** model analysis transformations

−

== Target Application Domains ==

+

== Documentation and Research Papers ==

+

This wiki (with sub pages) is intended to serve as the primary source of documentation related to VIATRA2.

+

+

For older documentation, you can refer to the [http://www.eclipse.org/gmt/VIATRA2/doc/ official page], which has details on the available documentation. In short, the following off-line documentation is available:

For a list of the most important research papers on VIATRA2, see [[VIATRA2/ResearchPapers]]

+

+

== Getting started with VIATRA2 ==

+

You can find introductory information on getting stared with VIATRA2 on the [[VIATRA2/GettingStarted|Getting Started]] pages.

+

{{:VIATRA2/GettingStarted}}

+

+

== VIATRA2 Common Use Cases ==

VIATRA2 primarily aims at designing model transformations to support the precise model-based systems development with the help of invisible formal methods. Invisible formal methods are hidden by automated model transformations projecting system models into various mathematical domains (and, preferably, vice versa). In this way, VIATRA2 nicely complements other model transformation tools within the GMT initiative.

VIATRA2 primarily aims at designing model transformations to support the precise model-based systems development with the help of invisible formal methods. Invisible formal methods are hidden by automated model transformations projecting system models into various mathematical domains (and, preferably, vice versa). In this way, VIATRA2 nicely complements other model transformation tools within the GMT initiative.

The most traditional application area for VIATRA2 – started as early as 1998 – is to support the transformation-based dependability analysis of system models taken from various application areas (safety-critical and/or embedded systems, robust e-business applications, middleware, serviceoriented architecture) described using various modeling languages (BPM, UML, etc.) during a model-driven systems engineering process. Such a model (and transformation)-based dependability analysis typically also includes the verification & validation, the testing, the safety and security analysis as well as the early assessment non-functional characteristics (such as reliability, availability, responsiveness, throughput, etc.) of the system under design. In addition, model transformations for specification, design, deployment, optimization or code generation in traditional model-driven systems engineering are also focal areas for VIATRA2.

The most traditional application area for VIATRA2 – started as early as 1998 – is to support the transformation-based dependability analysis of system models taken from various application areas (safety-critical and/or embedded systems, robust e-business applications, middleware, serviceoriented architecture) described using various modeling languages (BPM, UML, etc.) during a model-driven systems engineering process. Such a model (and transformation)-based dependability analysis typically also includes the verification & validation, the testing, the safety and security analysis as well as the early assessment non-functional characteristics (such as reliability, availability, responsiveness, throughput, etc.) of the system under design. In addition, model transformations for specification, design, deployment, optimization or code generation in traditional model-driven systems engineering are also focal areas for VIATRA2.

+

+

The VIATRA framework is a universal model transformation tool, in the sense that it supports a number of typical use-cases in MDD:

+

* '''Model import and export'''. through its universal model storage ([[VIATRA2/GettingStarted/Model_Editing]]), VIATRA2 is able to support several models (conforming to potentially distinct metamodels) within the same ''model space''. Models can be imported and exported ([[VIATRA2/UseCases/ModelExportImport]]) through plugins, with built-in support for important formats such as UML.

+

* '''Model-to-model transformations'''. VIATRA can run your model-to-model transformations very efficiently thanks to its incremental graph pattern matching engine. Transformations may be specified in a high-level language ([[VIATRA2/GettingStarted/Creating_Transformations]]).

+

* '''Model-to-code transformations'''. VIATRA is also a code generator. Code generation is essentially a special case of model transformations, where textual output is also emitted. VIATRA can simultaneously write to multiple outputs, both to in-memory buffers and workspace files ([[VIATRA2/UseCases/CodeGeneration]]).

+

+

== Transformation development with VIATRA2 ==

+

You can find the detailed description of the transformation language of VIATRA2 here: [[VIATRA2/Transformation_Language]]

+

+

VIATRA2 supports a number of advanced techniques for transformation development.

+

*'''Invoking native code''. '''''One of the most important features is VIATRA's ability to invoke your Java code directly from transformation programs. This way, you can integrate your transformations to any existing software environment. A few examples: VIATRA can manipulate external data resources - databases, remote services -, you can create efficient native functions for advanced data queries such as custom random number and ID generation, etc.) For details, see [[VIATRA2/UseCases/InvokeNativeCode]].

+

*'''Debugging and visualisation'''. See [[VIATRA2/UseCases/DebuggingAndVisualisation]] for details.

+

*'''Traceability modeling'''. See [[VIATRA2/UseCases/TraceabilityModels]] for details.

Project Overview

The main objective of the VIATRA2 (VIsual Automated model TRAnsformations) framework is to provide a general-purpose support for the entire life-cycle of engineering model transformations including the specification, design, execution, validation and maintenance of transformations within and between various modeling languages and domains.

The Using Transformations page presents a tutorial on using existing VIATRA2 transformations. Covers the user interface basics, including an example-guided exercise about loading instance models, exploring the model space, running a ready-made transformation and extracting its output.

The Model Editing page gives an intro on models in VIATRA2. Features a more in-depth introduction to the VIATRA2 model space, including the VPM metamodel, structure, as well as UI support for browsing and editing.

Afterwards, to learn transformation development, the Hello World tutorial is the place to start. Includes a walk-through of creating and populating a model space with a very simple model, the creation of a "Hello World!" transformation, and two more transformation programs for demonstrating the concepts of pattern matching and model manipulation.

Next, we recommend proceeding to the Case Studies page, where numerous example transformations are showcased. It is especially useful to start with the Activity Diagrams to Petri Nets transformation, which is a very simple tutorial intended for learners, and includes a small exercise.

VIATRA2 Common Use Cases

VIATRA2 primarily aims at designing model transformations to support the precise model-based systems development with the help of invisible formal methods. Invisible formal methods are hidden by automated model transformations projecting system models into various mathematical domains (and, preferably, vice versa). In this way, VIATRA2 nicely complements other model transformation tools within the GMT initiative.

The most traditional application area for VIATRA2 – started as early as 1998 – is to support the transformation-based dependability analysis of system models taken from various application areas (safety-critical and/or embedded systems, robust e-business applications, middleware, serviceoriented architecture) described using various modeling languages (BPM, UML, etc.) during a model-driven systems engineering process. Such a model (and transformation)-based dependability analysis typically also includes the verification & validation, the testing, the safety and security analysis as well as the early assessment non-functional characteristics (such as reliability, availability, responsiveness, throughput, etc.) of the system under design. In addition, model transformations for specification, design, deployment, optimization or code generation in traditional model-driven systems engineering are also focal areas for VIATRA2.

The VIATRA framework is a universal model transformation tool, in the sense that it supports a number of typical use-cases in MDD:

Model import and export. through its universal model storage (VIATRA2/GettingStarted/Model_Editing), VIATRA2 is able to support several models (conforming to potentially distinct metamodels) within the same model space. Models can be imported and exported (VIATRA2/UseCases/ModelExportImport) through plugins, with built-in support for important formats such as UML.

Model-to-model transformations. VIATRA can run your model-to-model transformations very efficiently thanks to its incremental graph pattern matching engine. Transformations may be specified in a high-level language (VIATRA2/GettingStarted/Creating_Transformations).

Model-to-code transformations. VIATRA is also a code generator. Code generation is essentially a special case of model transformations, where textual output is also emitted. VIATRA can simultaneously write to multiple outputs, both to in-memory buffers and workspace files (VIATRA2/UseCases/CodeGeneration).

Transformation development with VIATRA2

VIATRA2 supports a number of advanced techniques for transformation development.

Invoking native code. One of the most important features is VIATRA's ability to invoke your Java code directly from transformation programs. This way, you can integrate your transformations to any existing software environment. A few examples: VIATRA can manipulate external data resources - databases, remote services -, you can create efficient native functions for advanced data queries such as custom random number and ID generation, etc.) For details, see VIATRA2/UseCases/InvokeNativeCode.

Partners and supporters

VIATRA2 development is supported by the following institutions and companies:

Budapest University of Technology and Economics, HUN

OptXware Research and Development LLC, HUN

YourKit LLC, RUS

YourKit is kindly supporting open source projects with its full-featured Java Profiler.
YourKit, LLC is the creator of innovative and intelligent tools for profiling
Java and .NET applications. Take a look at YourKit's leading software products:
YourKit Java Profiler and
YourKit .NET Profiler.