「DDDって実際のOSSでどう使われ、保守品質とどう関係してるの?」——有名な割に大規模な実証データがほぼなかったこの問いに、865リポジトリのマイニングで挑む研究です🔍
タイトル: Domain-Driven Design in Practice: A Mining Study of Maintenance and Evolution in Open-Source Repositories
URL:
❓ 何を調べるの?
💡 GitHubのDDDタグ付き1,260件をフィルタした865リポジトリ(Java/C#/TypeScript)を対象に、8つの戦術的ビルディングブロック(Entities, Value Objects, Aggregates, Repositories, Domain Services, Domain Events, Application Services, Factories)の実態を分析します。
❓ どうやって検出するの?
💡 3層パイプラインです。DDD固有のアノテーション、命名規約(例: OrderRepository)、パッケージ・ディレクトリ構造の3つを組み合わせ、精度0.75以上を満たした段階でのみ次へ進みます。
❓ 何が一番の技術的課題?
💡 Bounded Context(境界づけられたコンテキスト)の境界違反です。「モデルとコードのギャップ」をクロスコンテキスト依存として定量化し、違反率=BC間依存÷全クラス間依存で測ります。境界推定は2名の人手でCohen's kappa 0.80以上を要求。
❓ 信頼性の担保は?
💡 言語横断はKruskal-Wallis+Dunn事後検定、相関はSpearmanのρ。年齢・規模・言語・種別・チーム規模を交絡として制御し、検出が精度基準を割ったら結論を無効化せずスコープを狭める「劣化計画」を事前登録しています。
設計の堅牢さが際立つ研究で、DDDの保守・進化を語る実証基盤になりそうだと感じます。
#
DDD# #
ソフトウェア工学#