Round-trip Engineering for Tactical DDD: A Constraint-Based Vision for the Masses
Weixing Zhang, Mario Herb, Martin Armbruster, Bowen Jiang, Marcel Vielsack, Anne Koziolek

TL;DR
This paper proposes a constraint-based modeling environment for tactical Domain-Driven Design (DDD) that enforces architectural constraints in real-time, making DDD more accessible and maintainable for small teams and less experienced developers.
Contribution
It introduces a DDD-native metamodel with real-time constraint verification and synchronization, bridging the gap between design intent and implementation in tactical DDD.
Findings
A prototype environment enforces architectural constraints during modeling.
Bidirectional synchronization maintains consistency between models and code.
Lowered barriers enable less experienced teams to adopt tactical DDD effectively.
Abstract
Despite Domain-Driven Design's proven value in managing complex business logic, a fundamental semantic expressiveness gap persists between generic modeling languages and tactical DDD patterns, causing continuous divergence between design intent and implementation. We envision a constraint-based tactical modeling environment that transforms abstract architectural principles into explicit, tool-enforced engineering constraints. At its core is a DDD-native metamodel where tactical patterns are first-class modeling primitives, coupled with a real-time constraint verification engine that prevents architectural violations during modeling, and bidirectional synchronization mechanisms that maintain model-code consistency through round-trip engineering. This approach aims to democratize tactical DDD by embedding expert-level architectural knowledge directly into modeling constraints, enabling…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
