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. For general information on Vitruvius, see our GitHub Organisation and our Wiki.
This project contains the 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.
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 Vitruv-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.
This project depends on the following other projects from the Vitruvius framework:
Name | Description |
---|---|
views | Definition of view types on the underlying models. |
vsum | Definition of V-SUMs with consistency preservation rules between meta-models and view types. |
remote | Client-server infrastructure for working with V-SUMs. |
applications | Definition of and registry for V-SUMs. |
testutils | Utilities for testing in Vitruvius or V-SUM projects. |