Skip to content
@vitruv-tools

Vitruv Tools

Vitruv Project Development. Eclipse Update Site: https://vitruv.tools/updatesite/nightly/aggregated

Vitruv

Vitruv is a framework for view-based software development. It assumes different models to be used for describing a software system, which are automatically kept consistent by the framework executing (semi-)automated rules that preserve consistency. These models are modified only via views, which are projections from the underlying models.

A bunch of information on what Vitruv is and how it can be used can be found in the GitHub wiki.

Idea

Vitruv is based on the idea of a Single Underlying Model (SUM), which represents all information about a software system in a single, redundancy-free und inherently consistent model. A SUM requires the definition of one overarching, redundancy-free model for every development project, although in practice different tools for different purposes are used and thus such a SUM is hard to construct and maintain. Vitruv extends the concept to a Virtual Single Underlying Model (V-SUM). It is virtual, because it behaves like a SUM in the sense that it is always consistent, but it does not achieve this by being free of redundancies and implicit dependencies but by having explicit rules that preserve consistency of the different models after they have been changed via views.

Vitruv is short for Vitruvius (VIew-cenTRic engineering Using a VIrtual Underlying Single model) and is developed at the Dependability of Software-intensive Systems group (DSiS) at the Karlsruhe Institute of Technology (KIT).

Usage

In short, Vitruv is realized as a set of Eclipse plug-ins. It depends on the Eclipse Modeling Framework (EMF) as the modelling environment, on Xtext for language development (in particular the languages for specifying how consistency is preserved), and Xtend and Java for code. It can be installed in Eclipse via our nightly update site. A wiki page provides detailed instructions for using or extending Vitruv.

Structure

The Vitruv project is split into several repositories with well defined dependencies:

Repository Depends on Description    CI    
Vitruv-Change - Core artifacts for representing model changes and for defining their processing to preserve consistency with the central interface ChangePropagationSpecification. In addition, interactions to involve the user into the change preservation process are provided. GitHub Action CI
Vitruv-DSLs Vitruv-Change Languages for defining consistency preservation in terms of model transformations. Currently, the Reactions and the Commonalities language are available with different levels of maturity. The Reactions language is most used and best maintained one. The DSLs only depend on the change core artifacts but on no other Vitruv artifacts, such that they can be used standalone to define and execute model transformations. GitHub Action CI
Vitruv-V-SUM Vitruv-Change The central Vitruv framework providing the V-SUM and views concepts. In the implementation, a V-SUM is called VirtualModel, which is instantiated with a set of ChangePropagationSpecifications (no matter whether they are developed with the DSLs or just as an implementation of the interface defined in the Vitruv-Change repository). The VirtualModel then provides functionality to derive and modify views and to propagate the changes in these views back to the VirtualModel, which then executes the ChangePropagationSpecifications to preserve consistency. GitHub Action CI
Vitruv-CaseStudies Vitruv-V-SUM, Vitruv-DSLs Case studies for the Vitruv framework, particularly consisting of an example application of Vitruv for component-based systems, providing ChangePropagationSpecifications for PCM, UML and Java. GitHub Action CI
Vitruv-Tool-Adapters Vitruv-V-SUM A set of adapters for tools to use Vitruv in, i.e., in which models can be modified and changes are then propagated to and kept consistent in an underlying V-SUM. Currently, adapters for the Eclipse IDE and in particular for modifying EMF models in any kind of editor, as well as a wizard to setup and use a V-SUM in Eclipse are provided. GitHub Action CI

These are the primary maintained repositories, of which the first three are the core repositories providing Vitruv and the last two ones providing a demo application of consistency preservation and adaptation in development tools. There are further repositories in this organization with different experiments we have performed around Vitruv with individual degrees of maturity and maintenance.

Build and Deployment

We build, integrate and deploy our projects using Maven Tycho and GitHub Actions. For details see our wiki. The deployment is supported by the two further repositories updatesite and Vitruv-Build-AggregatedUpdateSite. All repositories generate Eclipse update sites out of their artifacts and deploy them to the updatesite repository. From these artifacts, an aggregated update site is created running the workflow of the Vitruv-Build-AggregatedUpdateSite project, from which Vitruv with all its dependencies can then be installed within Eclipse.

Pinned

  1. Vitruv Core for Change Representation and Propagation

    Xtend

  2. Vitruv-DSLs Public

    The languages for specifying consistency preservation rules

    Xtend 1

  3. Vitruv Public

    View-based development and model consistency framework

    Xtend 10 15

  4. Vitruv application projects for component-based software systems

    Xtend 4 10

  5. Vitruv view adaptors for accessing a V-SUM via views in different tools

    Java

  6. The build specification for creating the aggregated update site for Vitruv artifacts

Repositories

Top languages

Loading…

Most used topics

Loading…