Глоссарий
Coupling
Мера зависимости одного модуля от другого. Чем ниже, тем легче менять модули независимо.
Coupling — фундаментальная метрика архитектуры. Вместе с Cohesion описывает 90% решений о том, «правильно» или «неправильно».
Виды (Yourdon & Constantine, 1979), от худшего к лучшему:
- Content — A залезает во внутренности B.
- Common — общение через глобальное состояние.
- Control — A управляет поведением B через флаги.
- Stamp — передача большой структуры, из которой используется малое.
- Data — передача только необходимых данных.
- No coupling — модули не связаны.
Мартин добавил метрики для пакетов:
- Ca (afferent coupling) — сколько модулей зависит от данного.
- Ce (efferent coupling) — от скольких модулей зависит данный.
- Instability I = Ce / (Ca + Ce) от 0 до 1.
Стабильные модули (I → 0) должны быть абстрактными. Нестабильные (I → 1) — концентрируют изменения на периферии.