Зацепление (программирование): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м Удаление пустых технических разделов согласно ВП:Ф-О.
Преамбула: Перепутаны понятия. Видимо, опечатка.
Строка 1: Строка 1:
'''Зацепле́ние''', '''сцепле́ние''', '''сопряже́ние'''{{sfn|Макконнел|2010}} ({{lang-en|coupling}}) — способ и степень взаимозависимости между [[Модуль (программирование)|программными модулями]]<ref name="ISO_24765">ISO/IEC/IEEE 24765-2010 Systems and software engineering — Vocabulary</ref>; сила взаимосвязей между модулями<ref name="ISO_TR_19759">ISO/IEC TR 19759:2005, Software Engineering — Guide to the Software Engineering Body of Knowledge (SWEBOK)</ref>; мера того, насколько связаны подпрограммы или модули<ref name="ISO_24765"/>.
'''Зацепле́ние''', '''сцепле́ние''', '''сопряже́ние'''{{sfn|Макконнел|2010}} ({{lang-en|coupling}}) — способ и степень взаимозависимости между [[Модуль (программирование)|программными модулями]]<ref name="ISO_24765">ISO/IEC/IEEE 24765-2010 Systems and software engineering — Vocabulary</ref>; сила взаимосвязей между модулями<ref name="ISO_TR_19759">ISO/IEC TR 19759:2005, Software Engineering — Guide to the Software Engineering Body of Knowledge (SWEBOK)</ref>; мера того, насколько связаны подпрограммы или модули<ref name="ISO_24765"/>.


Зацепление обычно противопоставляется [[Связность (программирование)|связности]] ({{lang-en|cohesion}}). Слабое зацепление часто сочетается с сильной связностью и наоборот. [[Метрика программного обеспечения|Метрики]] зацепления и связности были придуманы [[:en:Larry Constantine|Ларри Константином]], изначальным разработчиком структурного проектирования<ref>W. Stevens, G. Myers, L. Constantine, «Structured Design», IBM Systems Journal, 13 (2), 115—139, 1974.</ref>, который был также ранним сторонником таких концепций (см. также [[:en:Structured Systems Analysis and Design Methodology|SSADM]]). Слабое зацепление часто является признаком хорошо структурированной компьютерной системы и признаком хорошего проекта, и, когда она комбинируется с сильной связностью, соответствует общим показателям хорошей читаемости и сопровождаемости.
Зацепление обычно противопоставляется [[Связность (программирование)|связности]] ({{lang-en|cohesion}}). Слабое зацепление часто сочетается с сильной связностью и наоборот. [[Метрика программного обеспечения|Метрики]] зацепления и связности были придуманы [[:en:Larry Constantine|Ларри Константином]], изначальным разработчиком структурного проектирования<ref>W. Stevens, G. Myers, L. Constantine, «Structured Design», IBM Systems Journal, 13 (2), 115—139, 1974.</ref>, который был также ранним сторонником таких концепций (см. также [[:en:Structured Systems Analysis and Design Methodology|SSADM]]). Сильное зацепление часто является признаком хорошо структурированной компьютерной системы и признаком хорошего проекта, и, когда она комбинируется со слабой связностью, соответствует общим показателям хорошей читаемости и сопровождаемости.


Слабое зацепление является одним из [[шаблон проектирования|шаблонов]] [[GRASP]] [[Ларман, Крэйг|Крэйга Лармана]]<ref>{{книга
Слабое зацепление является одним из [[шаблон проектирования|шаблонов]] [[GRASP]] [[Ларман, Крэйг|Крэйга Лармана]]<ref>{{книга

Версия от 08:37, 12 мая 2016

Зацепле́ние, сцепле́ние, сопряже́ние[1] (англ. coupling) — способ и степень взаимозависимости между программными модулями[2]; сила взаимосвязей между модулями[3]; мера того, насколько связаны подпрограммы или модули[2].

Зацепление обычно противопоставляется связности (англ. cohesion). Слабое зацепление часто сочетается с сильной связностью и наоборот. Метрики зацепления и связности были придуманы Ларри Константином, изначальным разработчиком структурного проектирования[4], который был также ранним сторонником таких концепций (см. также SSADM). Сильное зацепление часто является признаком хорошо структурированной компьютерной системы и признаком хорошего проекта, и, когда она комбинируется со слабой связностью, соответствует общим показателям хорошей читаемости и сопровождаемости.

Слабое зацепление является одним из шаблонов GRASP Крэйга Лармана[5].

Типы зацепления

Концептуальная модель зацепления

Типы зацепления, согласно стандарту ISO/IEC/IEEE 24765-2010, включают:

  • зацепление по общей области (common-environment coupling);
  • зацепление по содержимому (content coupling);
  • зацепление по управлению (control coupling);
  • зацепление по данным (data coupling);
  • смешанное зацепление (hybrid coupling);
  • патологическое зацепление (pathological coupling)[2].

См. также

Примечания

  1. Макконнел, 2010.
  2. 1 2 3 ISO/IEC/IEEE 24765-2010 Systems and software engineering — Vocabulary
  3. ISO/IEC TR 19759:2005, Software Engineering — Guide to the Software Engineering Body of Knowledge (SWEBOK)
  4. W. Stevens, G. Myers, L. Constantine, «Structured Design», IBM Systems Journal, 13 (2), 115—139, 1974.
  5. 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.

Литература

Макконнелл, Стив. Совершенный код = Code Complete. — 2-е издание. — М.: Русская редакция, 2010. — С. 139. — 896 с. — (Мастер-класс). — ISBN 978-5-7502-0064-1.