Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "VIATRA2"

(added GMT category)
m (Added outdated page notice)
 
(70 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 +
== Outdated page ==
 +
This page contains obsolete information about the VPM based VIATRA2 and preserved for archive purposes only.<br />
 +
The currently maintained wiki is available at http://wiki.eclipse.org/VIATRA
 +
 +
__TOC__
 +
 
== Quick links ==
 
== Quick links ==
 +
* [http://www.eclipse.org/gmt/VIATRA2/ Project page]
 +
* [http://www.eclipse.org/gmt/VIATRA2/download/ Downloads]
 +
* [http://www.eclipse.org/forums/index.php/f/147/ Forum]
 +
* [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=specific&order=relevance+desc&bug_status=__all__&product=GMT&content=viatra BugTracker]
 +
* [[VIATRA2/Frequently Asked Questions]]
 +
* [[VIATRA2/Installation]]
 +
* [[VIATRA2/GettingStarted]]
 +
* [[VIATRA2/Benchmarks]]
  
* [http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/gmt-home/subprojects/VIATRA2/index.html Project page]
+
Release notes:
* [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/VIATRA2/ CVS]
+
* [[VIATRA2/ReleaseNotes3.3]]
* [http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/gmt-home/subprojects/VIATRA2/download/index.html Downloads]
+
* [[VIATRA2/ReleaseNotes3.2]]
* BugTracker (coming soon)
+
* [[VIATRA2/ReleaseNotes3.1]]
* FAQ (coming soon)
+
  
 
== Project Overview ==
 
== 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 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.
+
VIATRA2 intends to complement existing model transformation frameworks in providing
 +
* a [[VIATRA2/GettingStarted/Model_Editing | model space]] for uniform representation of models and metamodels
 +
* a [[VIATRA2/GettingStarted/Creating_Transformations | transformation language]] with
 +
** both declarative and imperative features
 +
** based upon popular formal mathematical techniques of ''graph transformation (GT)'' and ''abstract state machines (ASM)''
 +
* a high performance transformation engine
 +
** supporting '''incremental model transformations'''
 +
** trigger-driven [[VIATRA2/Live Transformations | live transformations]] where complex model changes may trigger execution of transformations
 +
** handling well over 100,000 model elements (see our [[VIATRA2/Benchmarks | benchmarks]])
 +
* with main target application domains in
 +
** model-based tool integration framework
 +
** 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.
  
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.
+
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:
  
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.
+
* Transformation language specification: [http://www.eclipse.org/gmt/VIATRA2/doc/ViatraSpecification.pdf PDF] (this is a bit outdated)
 +
* User's guide: [http://www.eclipse.org/gmt/VIATRA2/doc/viatratut.pdf PDF] (this is completely superseded by this wiki)
  
=== The Approach ===
+
For a list of the most important research papers on VIATRA2, see [[VIATRA2/ResearchPapers]]
  
Since precise model-based systems development is the primary application area of VIATRA2, it necessitates that (i) the model transformations are specified in a mathematically precise way, and (ii) these transformations are automated so that the target mathematical models can be derived fully automatically. For this purpose, VIATRA2 have chosen to integrate two popular, intuitive, yet mathematically precise rule-based specification formalisms, namely, graph transformation (GT) and abstract state machines (ASM) to manipulated graph based models.
+
== 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.
 +
 
 +
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 basic concept in defining model transformations within VIATRA2 is the (graph) pattern. A pattern is a collection of model elements arranged into a certain structure fulfilling additional constraints (as defined by attribute conditions or other patterns). Patterns can be matched on certain model instances, and upon successful pattern matching, elementary model manipulation is specified by graph transformation rules. Like OCL, graph transformation rules describe pre- and postconditions to the transformations, but graph transformation rules are guaranteed to be executable, which is a main conceptual difference. Graph transformation rules are assembled into complex model transformations by abstract state machine rules, which provide a set of commonly used imperative control structures with precise semantics.
+
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]]).
  
Models and modeling languages and transformations are all stored uniformly in the so-called VPM model space, which provides a very flexible and general way for capturing languages and models on different meta-levels and from various domains (or technological spaces). Specification features of VIATRA2 which are unique (up to our knowledge) at least among tools based on graph transformation include the following:
+
== Transformation development with VIATRA2 ==
 +
You can find the detailed description of the transformation language of VIATRA2 here: [[VIATRA2/Transformation_Language]]
  
* Recursive (graph) patterns
+
VIATRA2 supports a number of advanced techniques for transformation development.
* Negative patterns with arbitrary depth of negation
+
*'''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]].
* Generic and meta-transformations (type parameters, rules manipulating other rules) for providing reuse of transformations
+
*'''Debugging and visualisation'''. See [[VIATRA2/UseCases/DebuggingAndVisualisation]] for details.
 +
*'''Traceability modeling'''. See [[VIATRA2/UseCases/TraceabilityModels]] for details.
 +
*Modelspace visualization: [[VIATRA2/ExtraFeatures/ModelVisualisation]]
 +
*API example: [[VIATRA2/API_Example]]
  
=== Conformance to Related Standards ===
+
For further information on general best practices, see [[VIATRA2/UseCases/TransformationBestPractices]].
  
While on the one hand, the underlying modeling and transformation concepts of VIATRA2 are nonstandard (i.e. the VPM metamodeling core is more expressive than MOF, and the transformation language is not QVT), on the other hand, VIATRA2 plans to support these related standards by offering (i) powerful and extensible model importers and exporters and (ii) domain specific languages integrated to the framework as VIATRA2 (and thus Eclipse) plug-ins. For instance, the QVT standard is intended to be supported by translating QVT descriptions into ASM and GT rules. Model importers accepting the XMI-based models of the state-of-the-art UML modeling tools (such as IBM Rational Software Architect) will be part of the initial contribution, and importers for additional tools will be added later on.
+
== Case studies ==
  
=== Target Audience / End Users ===
+
You can find information on user-contributed case studies here: [[VIATRA2/Case_Studies]]
  
The VIATRA2 framework currently serves as the underlying model transformation technology of the ongoing DECOS European IP in the field of dependable embedded systems. Moreover, VIATRA2 will serve as a key underlying model transformation technology for several additional projects on the European level which will start in the upcoming 6 months.
+
== Standard conformance ==
 +
We need to point out that the underlying modeling and transformation concepts of VIATRA2 are nonstandard.
 +
* the model management framework is more expressive than MOF / EMF,
 +
* the VIATRA2 transformation language is not QVT, but combines formal techniques being in use for more than 15 years.  
  
In this way, academic and industrial partners in these projects would become the first end users of the framework, and they would highly benefit from an open source initiative. These projects would provide noticeable international visibility to VIATRA2 as well as the entire GMT project. Moreover, many interesting directions for future developments have already been evolved (and will continuously evolve) using the feedbacks from partners.
+
VIATRA2 plans to support related standards by offering
 +
* powerful and extensible model importers and exporters
 +
* exporters/importers of other transformation languages (e.g. QVT)
 +
* domain specific languages integrated to the framework as VIATRA2 (and thus Eclipse) plug-ins.
  
Furthermore, we start two academic courses on VIATRA2–related subjects from September 2005: a course for PhD students (Foundations of Model-Driven Systems Engineering) and a graduate course on open (Eclipse-based) development frameworks. VIATRA2 will be used during these courses for demonstration purposes as well as for homework assignments, thus valuable feedback is expected also from students.
+
== Known uses ==
 +
The VIATRA2 framework currently served as a key underlying model transformation technology in various research projects including:
 +
* the [http://www.decos.at/ DECOS EU FP6 IP] in the field of dependable embedded systems
 +
* the [http://www.sensoria-ist.eu/ SENSORIA EU FP6 IP] in the field of service-oriented computing
 +
* the [http://diana.skysoft.pt/ DIANA EU FP6 STREP] in the avionics domain
 +
* the [http://hidenets.aau.dk/ HIDENETS EU FP6 IP] in the field of vehicular networking.
 +
* the [https://www.mogentes.eu/ MOGENTES EU FP7 ICT STREP]
 +
* the [https://www.securechange.eu/ SecureChange EU FP7 ICT FET]
  
== Technical Information  ==
+
We ''regularly'' received valuable feedback from the following institutes:
 +
* [http://www.ait.ac.at/?L=1 AIT Austrian Institute of Technology], Vienna, AUT
 +
* LMU Munich, GER
 +
* TU Kaiserslautern, GER
 +
* University of Pisa, ITA
 +
* University of Leicester, UK
 +
* Georgia Institute of Technology, USA
  
=== Obtaining VIATRA2 ===
+
== 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:
 +
[http://www.yourkit.com/java/profiler/index.jsp YourKit Java Profiler] and
 +
[http://www.yourkit.com/.net/profiler/index.jsp YourKit .NET Profiler].
  
You can currently obtain the Viatra2 toolset from the GMT project's [http://dev.eclipse.org/viewcvs/index.cgi/gmt-home/subprojects/VIATRA2/?cvsroot=Technology_Project CVS repository], as well as the official [http://arwen.mit.bme.hu:8080/viatraupdate update site].
+
== Downloads and Installation ==
  
=== Documentation ===
+
Check [http://www.eclipse.org/gmt/VIATRA2/download/ here] for more information.
 +
For installation instructions, see [[VIATRA2/Installation]].
  
A short (albeit incomplete) user's guide is available as a [http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/gmt-home/subprojects/VIATRA2/doc/viatratut2.pdf PDF document].
 
  
 
[[Category:Modeling]]
 
[[Category:Modeling]]
 
[[Category:MDD]]
 
[[Category:MDD]]
 
[[Category:GMT]]
 
[[Category:GMT]]

Latest revision as of 03:55, 30 April 2015

Outdated page

This page contains obsolete information about the VPM based VIATRA2 and preserved for archive purposes only.
The currently maintained wiki is available at http://wiki.eclipse.org/VIATRA

Quick links

Release notes:

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.

VIATRA2 intends to complement existing model transformation frameworks in providing

  • a model space for uniform representation of models and metamodels
  • a transformation language with
    • both declarative and imperative features
    • based upon popular formal mathematical techniques of graph transformation (GT) and abstract state machines (ASM)
  • a high performance transformation engine
    • supporting incremental model transformations
    • trigger-driven live transformations where complex model changes may trigger execution of transformations
    • handling well over 100,000 model elements (see our benchmarks)
  • with main target application domains in
    • model-based tool integration framework
    • model analysis transformations

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 official page, which has details on the available documentation. In short, the following off-line documentation is available:

  • Transformation language specification: PDF (this is a bit outdated)
  • User's guide: PDF (this is completely superseded by this wiki)

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 Getting Started pages.

For new users of VIATRA2, we recommend the following introductory material:

  • VIATRA2 is a Model Transformation (MT) tool. The concept of model transformation is explained in the Model Transformations Intro.
  • 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.
  • Basics concepts of the VIATRA2 transformation language are introduced in the Creating Transformations page.
  • 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

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.

For further information on general best practices, see VIATRA2/UseCases/TransformationBestPractices.

Case studies

You can find information on user-contributed case studies here: VIATRA2/Case_Studies

Standard conformance

We need to point out that the underlying modeling and transformation concepts of VIATRA2 are nonstandard.

  • the model management framework is more expressive than MOF / EMF,
  • the VIATRA2 transformation language is not QVT, but combines formal techniques being in use for more than 15 years.

VIATRA2 plans to support related standards by offering

  • powerful and extensible model importers and exporters
  • exporters/importers of other transformation languages (e.g. QVT)
  • domain specific languages integrated to the framework as VIATRA2 (and thus Eclipse) plug-ins.

Known uses

The VIATRA2 framework currently served as a key underlying model transformation technology in various research projects including:

We regularly received valuable feedback from the following institutes:

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.

Downloads and Installation

Check here for more information. For installation instructions, see VIATRA2/Installation.

Back to the top