"How is DDD actually used in open source, and how does it relate to maintenance quality?" — famously discussed, yet almost no large-scale evidence existed. This study tackles it by mining 865 repositories 🔍
Title: Domain-Driven Design in Practice: A Mining Study of Maintenance and Evolution in Open-Source Repositories
URL:
❓ What does it study?
💡 Starting from 1,260 DDD-tagged GitHub repos filtered down to 865 (Java/C#/TypeScript), it analyzes eight tactical building blocks: Entities, Value Objects, Aggregates, Repositories, Domain Services, Domain Events, Application Services, Factories.
❓ How are they detected?
💡 A three-layer pipeline: DDD-specific annotations, naming conventions (e.g. OrderRepository), and package/directory structure — proceeding only when precision ≥0.75 is met.
❓ What's the biggest technical challenge?
💡 Bounded Context boundary violations. It operationalizes the "model-code gap" as cross-context dependencies, with violation rate = cross-BC deps / total inter-class deps. Boundary inference is human-validated requiring Cohen's kappa ≥0.80.
❓ How is rigor ensured?
💡 Kruskal-Wallis + Dunn post-hoc for cross-language tests, Spearman's rho for correlations, controlling age/size/language/type/team-size as confounders, with a pre-registered "degradation plan" that narrows scope rather than invalidating results if detection misses precision thresholds.
The methodological rigor stands out — a solid empirical foundation for discussing DDD maintenance and evolution.
#
DDD# #
SoftwareEngineering#