Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ソフトウェア設計の結合バランス #phperkaigi

ソフトウェア設計の結合バランス #phperkaigi

PHPerKaigi mini #0 PHPer Book Revue出張版のLT資料
https://phperkaigi.connpass.com/event/388134/

Avatar for Takuma Kajikawa

Takuma Kajikawa

April 24, 2026

More Decks by Takuma Kajikawa

Other Decks in Programming

Transcript

  1. ソフトウェア設計の結合バランス Balancing Coupling in Software Design: Universal Design Principles for

    Architecting Modular Software Systems の翻訳 IDDDの著者(Vaughn Vernon)が編集している シリーズの 1 冊 1冊をまるまる「結合」に割いた本 4/15
  2. Part I 結合 結合の定義、複雑性(クネビン・相互作用)、モジュール性との関係を整理する 第1章 結合とシステム設計 第2章 結合と複雑性:クネビン 第3章 結合と複雑性:相互作用

    第4章 結合とモジュール性 結合は「欠陥」ではなく、 システムを舵取りする設計ツール 完全に結合のないシステムは機能しない —— 結合は不可欠な接着剤 複雑性の正体は「相互作用」 クネビンで状況を識別する モジュール性か複雑性か —— 結合の設計が方向を決める 7/15
  3. Part II 次元 古典モデル(モジュール結合・コナーセンス)を統合し、統合強度・距離・変動性の 3 次元を定義する 第5章 構造化設計におけるモジュール結合 第6章 コナーセンス

    第7章 統合強度 第8章 距離 第9章 変動性 結合がシステムに与える影響を 3 つの次元で評価する 強度 — どれだけ深く結びつくか (統合強度 4 レベル) 空間(距離)— どれだけ離れているか (コード・チーム・同期性) 時間(変動性)— どれだけ変わるか (DDD サブドメインで評価) 8/15
  4. Part III バランス 均衡結合モデルを定義し、再均衡化・フラクタル性・実践ケーススタディまで踏み込む 第10章 結合の均衡化 第11章 結合の再均衡化 第12章 ソフトウェア設計のフラクタル幾何学的性質

    第13章 均衡結合の実践 第14章 結論 第15章 エピローグ 3 次元を組み合わせて、結合を 実践的な「設計ツール」へ昇華する 均衡結合モデル — 強度・距離・変動性 の組み合わせを論理式で評価 再均衡化 — 戦略的変更に追従して 設計を磨き続ける フラクタルな原則 — 共有知識が多いほど 距離を近く、少ないほど遠ざける 9/15
  5. 結合の評価指標 時代 モデル名 評価指標 1960年代 モジュール結合 (6段階) 内容結合、共通結合、外部結合、 制御結合、スタンプ結合、データ結合 1990年代

    コナーセンス (共生的関係) 静的(名前、型、意味、位置、アルゴリズム) 動的(実行、タイミング、値、アイデンティティ) 2024年 統合強度・距離・変動性 (3次元) 統合強度:侵入/機能/モデル/コントラクト結合 距離:コード配置/チーム/同期性 変動性:コア/支援/汎用サブドメイン 12/15