Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ... model transformation
framework based on the
Eclipse Modeling Framework
Eclipse Modeling Framework (EMF) is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model.
From a model specification described in XML Metadata Interchange ...
(EMF) and hosted by the
The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit corporation that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization supp ...
VIATRA supports the development of model transformations with specific focus on event-driven,
reactive transformations, i.e., rule-based scenarios where transformations occur as reactions to
certain external changes in the model.
Building upon an
Increment or incremental may refer to:
*Incrementalism, a theory (also used in politics as a synonym for gradualism)
*Increment and decrement operators, the operators ++ and -- in computer programming
*Incremental backup, wh ...
query support for locating patterns
and changes in the model,
VIATRA offers a language (the ''VIATRA Query Language'', VQL) to define transformations and a reactive transformation
engine to execute certain transformations upon changes in the underlying model.
VIATRA, as an open-source framework offering, serves as a central
integration point and enabler engine in various applications, both in an industrial and in an academic context. Earlier versions of the framework have been intensively used for providing tool support for developing and verifying critical embedded systems in numerous European research projects such as DECOS, MOGENTES, INDEXYS and SecureChange.
As a major industrial application of VIATRA, it is utilized as the underlying model querying and transformation engine of the IncQuery Suite. Thus, VIATRA is a key technical component in several industrial collaborations around model-based systems engineering
(MBSE), fostering innovative systems engineering practices in domains like aerospace, manufacturing, industrial automation and automotive. Furthermore, via the applications of the IncQuery Suite, VIATRA serves as the foundation for model-based endeavors of ongoing, large-scale European industrial digitalization endeavors, such as the Arrowhead Tools and the Embrace projects.
VIATRA is well integrated with Eclipse Modeling tools. However, VIATRA works outside the Eclipse environment as well, as demonstrated by the IncA project using the JetBrains MPS
VIATRA provides the following main services:
* An incremental query engine together with a graph pattern based language to specify and execute model queries efficiently.
* An internal DSL over the Xtend language to specify both batch and event-driven, reactive transformations.
* A model obfuscator to remove sensitive information from a confidential model (e.g., to create bug reports).
Origins and history
The current VIATRA project is a full rewrite of the previous VIATRA2 framework, coming with full compatibility and support for EMF models. The project features a History wiki page that describes the main differences between the different versions.
As for applications of the earlier VIATRA2 framework, it served as the underlying model transformation engine of the DECOS European IP in the field of dependable embedded systems. Furthermore, a traditional application area for VIATRA2 – starting as early as 1998 – was to support the analysis of system models taken from various application areas (safety-critical and/or
An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' a ...
Electronic business (or "Online Business" or "e-business") is any kind of business or commercial transaction that includes sharing information across the internet. Commerce constitutes the exchange of products and services between businesses, grou ...
Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to implement c ...
, service-oriented architecture
) described using various modeling languages (SysML, UML, BPMN, etc.) during a model-driven systems engineering process. Such a model analysis typically also includes the
verification and validation
Verification and validation (also abbreviated as V&V) are independent procedures that are used together for checking that a product, service, or system meets requirements and specifications and that it fulfills its intended purpose. These are ...
, the testing, the safety
Security is protection from, or resilience against, potential harm (or other unwanted coercive change) caused by others, by restraining the freedom of others to act. Beneficiaries (technically referents) of security may be of persons and social ...
analysis as well as the early assessment of non-functional characteristics (such as reliability,
In reliability engineering, the term availability has the following meanings:
* The degree to which a system, subsystem or equipment is in a specified operable and committable state at the start of a mission, when the mission is called for a ...
Network throughput (or just throughput, when in context) refers to the rate of message delivery over a communication channel, such as Ethernet or packet radio, in a communication network. The data that these messages contain may be delivered ...
, etc.) of the system under design.
These use-cases and application fields still constitute focal areas for VIATRA, mostly addressed via the IncQuery Suite as an interface on the user's end.
Since precise model-based systems development is the primary application area of VIATRA, 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. To achieve this, VIATRA relies upon a mathematically precise rule-based specification formalism, namely,
In computer science, graph transformation, or graph rewriting, concerns the technique of creating a new graph out of an original graph algorithmically. It has numerous applications, ranging from software engineering ( software construction and also ...
(GT). VIATRA aims at invisible formal methods: here, formal details are hidden by automated model transformations projecting system models into various mathematical domains (and, preferably, vice versa).
The basic concept in defining model transformations within VIATRA 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.
In particular, as reactive, event-driven transformations are the current focus of VIATRA, VIATRA includes a rule execution engine which monitors changes (interpreted as events) in the model, and fires a rule whenever a change led to the fulfillment of the precondition for that rule (and, potentially, if some further control conditions are also met).
Model Driven Engineering
Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract r ...
* Model Driven Architecture
Domain Specific Language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, rangin ...
* Model Transformation Language
* MOF Queries/Views/Transformations
ATLAS Transformation Language
ATL (ATLAS Transformation Language) is a model transformation language and toolkit developed and maintained by OBEO and AtlanMod. It was initiated by the AtlanMod team (previously called ATLAS Group). In the field of Model-Driven Engineering (M ...
XML transformation language
An XML transformation language is a programming language designed specifically to transform an ''input'' XML document into an ''output'' document which satisfies some specific goal.
There are two special cases of transformation:
* XML to XML: ...
VIATRA Eclipse project page
Unified Modeling Language