Связанность (coupling)
Степень зависимости между модулями и компонентами. Сильная связанность — изменение в одном модуле требует правок во многих других. Слабая связанность — изменения локальны. Цель: низкая связанность, высокая связность (cohesion).
Классический принцип программной инженерии, введённый Larry Constantine (1968). Виды: по данным (передаются данные), по образцу (общая структура), по управлению (поток управления), по содержимому (прямой доступ к памяти — хуже всего). Слабой связанности добиваются через интерфейсы, внедрение зависимостей, событийную архитектуру и передачу сообщений. Закон Хайрама: любое наблюдаемое поведение системы рано или поздно становится чьей-то зависимостью — связанности у вас больше, чем кажется.