Enabling Branching Support in Server-Side Vitruvius
| Vortragende(r) | Linh Nguyen Phuong | |
|---|---|---|
| Vortragstyp | Bachelorarbeit | |
| Betreuer(in) | Raziyeh Dehghani | |
| Termin | Mo 15. Juni 2026, 13:00 (Room 010 (building 50.34)) | |
| Vortragssprache | Englisch | |
| Vortragsmodus | in Präsenz | |
| Kurzfassung | Vitruvius is a framework for view-based model-driven software development that maintains a Virtual Single Underlying Model (vsum), which serves as a unified representation of all design artefacts and enforces consistency across associated views through declarative and imperative propagation rules. In the current architecture, all model changes are applied sequentially to a single global vsum state. This single-evolution constraint prevents developers from pursuing independent lines of work in parallel, making it impossible to experiment safely, develop features in isolation, or conduct concurrent multi-developer modeling activities. Consequently, the framework lacks a fundamental capability that version control systems have long provided for source code: the ability to branch, isolate, and later reconcile diverging development trajectories. This thesis designs and implements a branch-aware extension to the Vitruvius server that introduces branching as a first-class operation on the vsum. By leveraging Git as a storage backend, the extension is structured around four interdependent subsystems. The branch lifecycle subsystem provides explicit management of branch operations and parent-child tracking, with metadata persisted so that branch context survives checkout operations. The semantic change recording subsystem captures model modifications as typed, UUID-keyed entries, enabling fine-grained traceability. The merge handling subsystem uses these changelogs to detect and classify semantic conflicts before any file-level merge is attempted, supporting both automatic and manual resolution.
Finally, the model state versioning subsystem anchors named snapshots to Git tags to provide a controlled rollback mechanism. These operations are exposed through a REST API to facilitate integration with external tooling. We evaluate the extension against six stated goals through a functional test suite and a case study in the vehicle braking system domain. The results confirm that all goals are met, demonstrating that branch-aware model versioning can be integrated into Vitruvius without compromising its core consistency guarantees. | |