Зацепление
,
сцепление
,
связанность
,
сопряжение
(
англ.
coupling
) — способ и степень взаимозависимости между
программными модулями
; сила взаимосвязей между модулями
; мера того, насколько взаимозависимы разные подпрограммы или модули
.
Сильное зацепление рассматривается как серьёзный недостаток, поскольку затрудняет понимание логики модулей, их модификацию, автономное тестирование, а также переиспользование по отдельности. Например, при изменении требований к одному модулю понадобится модификация также всех зависимых от него. Слабое зацепление, напротив, является признаком хорошо структурированной и хорошо спроектированной системы, и, когда оно комбинируется с сильной
связностью
, соответствует общим показателям хорошей читаемости и сопровождаемости.
Метрики
зацепления и связности были придуманы
, изначальным разработчиком структурного проектирования
, который был также ранним сторонником таких концепций (см. также
).
Типы зацепления, согласно стандарту ISO/IEC/IEEE 24765, включают:
зацепление по общей области
(
common-environment coupling, common coupling
) — два программных модуля совместно используют общую область данных;
зацепление по содержимому
(
content coupling
) — некоторые или все программные модули включены в некоторый модуль как составные части;
зацепление по управлению
(
control coupling
) — один программный модуль обменивается данными с другим модулем с явной целью повлиять на его последующее выполнение;
зацепление по данным
(
data coupling, input-output coupling
) — выходные данные одного программного модуля служат входными данными другого модуля;
смешанное зацепление
(
hybrid coupling
) — различные подмножества значений некоторого элемента данных используются в нескольких программных модулях для разных и несвязанных целей;
патологическое зацепление
(
pathological coupling
) — один программный модуль зависит от деталей внутренней реализации другого модуля или влияет на них.
Кравченко А. К., Афанасьева И. В.
// Радиоэлектроника и информатика, 2016, № 3, с. 9—12.
.
↑
(неопр.)
. Дата обращения: 1 ноября 2021.
31 марта 2022 года.
ISO/IEC TR 19759:2005, Software Engineering — Guide to the Software Engineering Body of Knowledge (SWEBOK)
W. Stevens, G. Myers, L. Constantine, «Structured Design», IBM Systems Journal, 13 (2), 115—139, 1974.
Philip A. Laplante, Philip A. Laplante.
What Every Engineer Should Know about Software Engineering. — CRC Press, 2007. — P. 105–106. —
ISBN 978-1-4200-0674-2
.