Skip to content

View-based development and model consistency framework

License

Notifications You must be signed in to change notification settings

tintengrun/Vitruv

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vitruv

GitHub Action CI Issues License

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 and its applications.

Installation

Vitruv can be installed in Eclipse via the nightly update site. A wiki page provides detailed instructions for using or extending Vitruv.

Project Development

Vitruv is short for Vitruvius (VIew-cenTRic engineering Using a VIrtual Underlying Single model) and is developed at the Chair for Software Design and Quality (SDQ) at the Karlsruhe Institute of Technology (KIT): http://sdq.ipd.kit.edu/

The project page can be found in the GitHub wiki: http://vitruv.tools

Project Basics

Vitruv is realized as Eclipse Plug-ins and depends on the following Eclipse tools:

  • Eclipse Modeling Framework (EMF) as the modelling environment
  • Xtext for language development
  • Xtend for code

Project Structure

The project is structured as follows:

Section Description
Framework The framework consists of the central elements for defining a virtual single underlying model (VSUM) and provides extension points for the different domains and applications to be used with the framework.
Extensions Extensions extend the framework with new functionality and can be used by different domains and applications.
DSLs The provided DSLs can be used to specify consistency-restoring transformations between two domains. They generate code that is used to extend the framework for keeping instances of a specific pair of models consistent.
Testutils The testutils provide functionality for fast and consistent testing of the framework as well as applications. In particular, a test framework for applications is provided.
Domains A domain defines the necessary concepts for one metamodel. It defines the metamodel namespaces a domain consists of, defines utilities specific for this metamodel and defines the way in which editors for this metamodel are watched for changes.
Applications An application is defined for a pair of domains. It essentially consists of the consistency-restoring transformations that keep model instances of these two domains consistent. It can also define further features for the domains, e.g. the integration of existing models.
Views A view is defined for a single or a set of domains. It specifies a specify view on the models, e.g. a UML class diagram view on Java code.

About

View-based development and model consistency framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Xtend 81.6%
  • Java 18.4%