coupling-model
概要
本スキルは『ソフトウェア設計の結合バランス』が提示する 3 次元モデル(統合強度 × 距離 × 変動性) と 均衡結合方程式 を蒸留した共有基盤である。 coupling-design-advisor・coupling-audit・coupling-rebalance の各スキルが参照する 用語定義・スケール変換・バランス計算を一箇所に集約し、プロジェクトをまたいだ一貫した設計議論を可能にする。
名称注記: coupling-model は「3 次元モデル本体」の意であり、
本書のドメイン用語「コアサブドメイン (core subdomain)」とは概念が異なる。
旧名 coupling-core から v0.2.2 で改名された (Issue #17)。
用語
| 用語 | 定義 |
|---|---|
| 統合強度 (Strength) | 下流が上流の何をどれだけ知っているかの度合い。コントラクト結合(最小)から侵入結合(最大)までを 1-10 で表す。 |
| 距離 (Distance) | モジュール間の物理的・組織的隔たり。同一オブジェクト内(最近傍)から別ベンダーシステム(最遠)までを 1-10 で表す。 |
| 変動性 (Volatility) | モジュールが将来どの程度変化するかの期待値。進化しないレガシー(低)からコアサブドメイン(高)までを 1-10 で表す。 |
| 均衡度 (Balance score) | 均衡結合方程式から得られる 1-10 の整数スコア。高いほど結合がバランスしている。 |
| コアサブドメイン | ビジネス上の競争優位を担う中核領域。変動性が高く、設計投資が最も見合うサブドメイン種別。 |
1-10 スケール表
| 次元 | 1 | 3 | 5 | 8 | 10 |
|---|---|---|---|---|---|
| 統合強度 | コントラクト結合 | モデル結合 | (中間) | 機能結合 | 侵入結合 |
| 距離 | 同一オブジェクト | 同一パッケージ | 別モジュール | 別ライブラリ | 別ベンダーシステム |
| 変動性 | 進化しないレガシー | 支援/汎用サブドメイン | (中間) | (中間) | コアサブドメイン |
均衡結合方程式
均衡度 = max(|強度 - 距離|, 10 - 変動性) + 1
解釈帯
| スコア | 判定 | 意味 |
|---|---|---|
| 8〜10 | 良好 | バランスが取れており、現状維持または軽微な調整で十分 |
| 5〜7 | 許容 | 許容範囲内だが改善余地あり。優先度低めで監視を続ける |
| 1〜4 | 不均衡 | 見直し必須。設計的なリスクが高い状態 |
実装参照
- CLI (
scripts/balance.py) の使い方はreferences/api.mdを参照。 - SKILL.md は 定義のみを持つ。operational な詳細は意図的に除外している。
ケーススタディの所属
書籍のケーススタディ集は consuming skill 側が自前で保持する 方針。
advisor は skills/coupling-design-advisor/references/case-studies.md を
設計時フレーミングで保守する。将来の coupling-rebalance は改善時フレーミングで
自前の case-studies を持つ想定。
coupling-model は 定義の単一ソースに徹し、consuming skill が文脈ごとに 少量の複製を持つほうが、skill 間の path 結合 (Issue #19) を避けつつ各用途に 最適化できる。
注意点
- 正確な科学ではない: 本書自身が「これは正確な科学ではない」と明言している。数値の絶対値に固執せず、相対比較と議論の起点として使用すること。
- プロジェクトごとのキャリブレーションが必要: スケール定義はチームや組織の文脈によって異なる。プロジェクト固有の
.coupling.yamlなどで値を上書きし、常に同じ基準で議論できる環境を整えること。