Enabling Branching Support in Server-Side Vitruvius

Aus SDQ-Wiki
Ausschreibung (Liste aller Ausschreibungen)
BranchingMechanism.png Typ Bachelorarbeit oder Masterarbeit oder Hilfskräfte
Aushang BranchingMechanismNotice V2.pdf
Betreuer Wenden Sie sich bei Interesse oder Fragen bitte an:

Arne Lange (E-Mail: arne.lange@kit.edu), Martin Armbruster (E-Mail: martin.armbruster@kit.edu, Telefon: +49-721-608-45942), Raziyeh Dehghani (E-Mail: raziyeh.dehghani@kit.edu)

Motivation

Vitruvius is "a framework for view‑based software development" hosted at https://github.com/vitruv-tools. The framework operates conceptually within the paradigm of Model-Driven Development (MDD) and is grounded in the notion of a Virtual Single Underlying Model (V-SUM). The V-SUM represents a coherent collection of interrelated models whose consistency is maintained through the systematic application of dedicated consistency-preservation rules. However, the current Vitruvius server configuration does not support native branching, which hampers collaborative work.

In particular, developers who need to apply different model changes in parallel cannot do so effectively, because without mechanisms for preserving changes (deltas) across branches, concurrent development on separate model variations is not feasible. A model state is the complete snapshot of all elements and relationships at a given moment, whereas a model delta, which enables the branching mechanism, captures only the differences between two such states by recording what has changed rather than storing the entire model again.

We have started two foundational works: (1) Branch Management, which allows developers to create, list, switch, and delete branches while tracking parent/child relationships; and (2) Delta Computation & Storage, which efficiently calculates diffs between branches and stores/retrieves those deltas to enable comparison and preparation for merging. With these capabilities in place, more developers can now work in parallel on different model variations, but merging those branches safely (handling conflicts, prioritizing commits, and preserving history integrity) remains as the next step, requiring a dedicated merge infrastructure to be developed in future work.

Tasks

Tasks would belong to the following listed items:

  • Review and comparison of branching and merging mechanisms for MDD.
  • Completing the started work on branching mechanism in Server-Side Vitruvius.

Benefits

  • Working with cutting-edge and innovative technologies
  • Close connection to ongoing/current research project
  • Excellent working environment and intensive support