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.
Target Application Domains
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.
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.
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.
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:
- Recursive (graph) patterns
- Negative patterns with arbitrary depth of negation
- Generic and meta-transformations (type parameters, rules manipulating other rules) for providing reuse of transformations
Conformance to Related Standards
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.
Target Audience / End Users
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.
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.
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.
A short (albeit incomplete) user's guide is available as a PDF document.