Skip to content
@vitruv-tools

Vitruvius Tools

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

Vitruvius

Vitruvius is a framework for view-based (software) development. It assumes different models to be used for describing a 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 Vitruvius is and how it can be used can be found in the GitHub wiki.

Idea

Vitruvius is based on the idea of a Single Underlying Model (SUM), which represents all information about a 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. Vitruvius 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.

Vitruvius stands for "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, Vitruvius 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 Vitruvius.

Structure

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

Repository Depends on Description     CI    
Vitruv-Change Underlying definition of changes in Ecore-based models and interfaces for specifying the propagation of changes between models to preserve their consistency, as well as an interface and a default implementation for orchestrating the execution of such specifications. GitHub Action CI
Vitruv-DSLs Vitruv-Change Several languages for specifying consistency preservation rules in terms of model transformations for keeping models consistent. Currently, the Reactions and the Commonalities language are available with different levels of maturity. GitHub Action CI
Vitruv Vitruv-Change Central Vitruvius framework, providing the definition of a V-SUM (Virtual Single Underlying Model) containing development artifacts to be kept consistent and to be accessed and modified via views. GitHub Action CI
Vitruv-CaseStudies Vitruv, Vitruv-DSLs Case studies for the Vitruvius framework, in particular an example application of Vitruvius in the domain of component-based systems engineering using Java, UML and PCM models. GitHub Action CI

These are the primary maintained repositories, of which the first three are the core repositories providing Vitruvius and the last one provides a demo application of consistency preservation. There are further repositories in this organization with different experiments we have performed around Vitruvius 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 Vitruvius with all its dependencies can then be installed within Eclipse.

Pinned

  1. Vitruv-Change Vitruv-Change Public

    Core Artifacts for Change Representation and Propagation

    Xtend 1 5

  2. Vitruv-DSLs Vitruv-DSLs Public

    Languages for Specifying Consistency Preservation Rules

    Xtend 1 2

  3. Vitruv Vitruv Public

    View-based Development and Model Consistency Framework

    Java 13 18

  4. Vitruv-CaseStudies Vitruv-CaseStudies Public

    Case Studies for the Vitruvius Framework

    Xtend 3 15

  5. Maven-Build-Parent Maven-Build-Parent Public

    A Maven parent specification for all Vitruv-related projects

    1

Repositories

Showing 10 of 24 repositories

Top languages

Loading…

Most used topics

Loading…