3.2SEJun 22Code
Domain-Driven Design in Practice: A Mining Study of Maintenance and Evolution in Open-Source RepositoriesWeixing Zhang, Bowen Jiang, Yuhong Fu et al.
Domain-Driven Design (DDD) is an influential software development methodology that structures software around business domain complexity through tactical building blocks such as Entities, Value Objects, Aggregates, and Repositories. Despite its prominence in software engineering, large-scale empirical evidence on how DDD is practiced, how it evolves, and how it relates to software maintenance quality in open-source projects remains scarce. This study presents a pre-registered empirical investigation of the distribution, evolution, and maintenance implications of DDD tactical building blocks in open-source GitHub repositories, addressing the call for large-scale empirical evaluations identified in a recent systematic literature review. We will collect DDD-related repositories from GitHub using the Search API, apply automated keyword filtering and manual relevance assessment, and analyze the resulting dataset through four research questions covering: (RQ1) the static distribution and co-usage of DDD building blocks across repository types, (RQ2) their longitudinal evolution over commit history, (RQ3) the extent and maintenance implications of Bounded Context boundary violations (the primary technical challenge in DDD adoption, unquantified at scale), and (RQ4) the temporal association between maintenance activities and building block churn or Bounded Context violations in DDD repositories. Together, these RQs trace the full maintenance and evolution lifecycle of open-source DDD projects and establish an empirical foundation for future DDD tool support and methodology refinement.
9.7SEJun 23
Two-Level vs. Multi-Level Modelling: An Empirical Study of Cascading Maintenance BurdenYuhong Fu, Weixing Zhang, Bowen Jiang et al.
When a core definition changes, every dependent artefact must be updated, a cascading problem central to software maintenance. In Model-Driven Engineering (MDE), the dominant two-level modelling (2LM) paradigm fragments domain knowledge across metamodel and model artefacts that must be kept mutually consistent, making co-evolution a persistent source of inconsistencies and effort. Multi-level modelling (MLM) unifies these artefacts and is claimed to reduce co-evolution burden, but this has not been tested in a controlled, paired comparison against 2LM. We hypothesise that MLM's structural unification yields fewer post-change inconsistencies and a smaller modification footprint than 2LM for semantically equivalent evolution scenarios. To test this, we present a pre-registered, mutation-based empirical comparison of co-evolution behaviour in both paradigms. From a curated corpus of published 2LM co-evolution scenarios, we construct semantically equivalent MLM counterparts, apply identical evolution mutations to both, and measure outcomes through automated consistency checking and pre-registered hypothesis tests. Positive controls and a blinded mapping protocol guard against bias. This design provides the first empirical framework for assessing whether paradigm-level structural choices affect cascading maintenance burden, operationalising co-evolution burden as two automatically measurable outcome variables and delivering a reusable benchmarking protocol for replication and extension.