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 underlying definition of changes in Ecore-based models and interfaces for specifying the propagation of changes between models to preserve their consistency with the central interface ChangePropagationSpecification
, as well as an interface and a default implementation for orchestrating the execution of such specifications.
In addition, interactions to involve the user into the change preservation process are provided.