Jump to content

Знание

Connascence ( / k ə ˈ n s ən s / ) — это метрика качества программного обеспечения , изобретенная Мейлиром Пейдж-Джонсом, чтобы позволить рассуждать о сложности, вызванной отношениями зависимости в объектно-ориентированном проектировании, подобно тому, как связность использовалась для структурированного проектирования . В разработке программного обеспечения два компонента считаются согласованными, если изменение одного потребует модификации другого для поддержания общей корректности системы. Помимо возможности категоризации отношений зависимости, connascence также предоставляет систему для сравнения различных типов зависимости. Такие сравнения потенциальных проектов часто могут указывать на способы улучшения качества программного обеспечения.

Форма согласия считается более сильной, если она более вероятно, потребуют компенсаторных изменений в коннасцентных элементах. чем сильнее форма согласия, тем она труднее и дороже заключается в изменении элементов в отношениях.

Приемлемость коннасценции связана со степенью ее возникновение. Созвучие может быть приемлемо в ограниченной степени, но в значительной степени неприемлемо. Например, функция или метод, который принимает два аргумента, обычно считается приемлемым. Однако это обычно неприемлемо, чтобы функции или методы принимали десять аргументов. Элементы с высокой степенью соответствия вызывают большую трудность, и стоимость изменения, чем элементы, имеющие более низкую степень.

Местность

[ редактировать ]

Местоположение имеет значение при анализе созвучия. Более сильные формы согласие приемлемо, если вовлеченные элементы тесно связаны связанный. Например, многие языки используют позиционные аргументы, когда вызов функций или методов. Это совпадение позиций приемлемо из-за близости вызывающего и вызываемого абонентов. Передача аргументов к веб-сервису позиционно неприемлемо из-за относительного несвязанность сторон. Та же сила и степень согласие будет иметь более высокую сложность и стоимость изменений, более отдалены задействованные элементы.

Это список некоторых типов созвучия, упорядоченный примерно от слабых форм к сильным.

Статические знания

[ редактировать ]

Связи называются «статическими», если их можно обнаружить путем визуального изучения кода.

Соответствие имени (CoN)

[ редактировать ]

Совпадение имени — это когда несколько компонентов должны согласовать имя объекта. Имена методов являются примером такой формы согласия: если имя метода меняется, вызывающие его методы должны быть изменены, чтобы использовать новое имя.

Соответствие типа (CoT)

[ редактировать ]

Согласование типа — это когда несколько компонентов должны согласовать тип объекта. В статически типизированных языках тип аргументов метода является примером такой формы согласия. Если метод меняет тип своего аргумента с целого числа на строку, вызывающие этот метод должны быть изменены, чтобы передать другой аргумент, чем раньше.

Совпадение значений (CoM) или согласие условностей (CoC)

[ редактировать ]

Совпадение значений — это когда несколько компонентов должны согласовать значение определенных значений. Возврат целых чисел 0 и 1 для представления ложного и истинного значений соответственно является примером такой формы согласия.

Согласие позиции (CoP)

[ редактировать ]

Согласование позиции — это когда несколько компонентов должны согласовать порядок значений. Позиционные параметры в вызовах методов являются примером такой формы согласия. И вызывающий, и вызываемый должны согласовать семантику первого, второго и т. д. параметров.

Знание алгоритма (CoA)

[ редактировать ]

Согласование алгоритма — это когда несколько компонентов должны согласовать конкретный алгоритм. Коды аутентификации сообщений являются примером такой формы согласия. Обе стороны обмена должны реализовать один и тот же алгоритм хеширования, иначе аутентификация не удастся.

Динамические знания

[ редактировать ]

Связи называются «динамическими», если их можно обнаружить только во время выполнения.

Соответствие казни (СЕ)

[ редактировать ]

Совпадение выполнения — это когда важен порядок выполнения нескольких компонентов.

Сознание времени (CoT)

[ редактировать ]

Согласование времени — это когда важно время выполнения нескольких компонентов.

Созвучие ценностей (CoV)

[ редактировать ]

Совпадение ценностей – это когда несколько ценностей должны измениться одновременно.

Соответствие личности (CoI)

[ редактировать ]

Совпадение идентичности — это когда несколько компонентов должны ссылаться на одну и ту же сущность.

Снижение осведомленности

[ редактировать ]

Уменьшение согласия снизит стоимость изменений в программном обеспечении. система. Один из способов уменьшить сознательность – это преобразовать сильное формы согласия в более слабые формы. Например, метод, который принимает несколько аргументов, которые можно изменить для использования именованных параметров . Это изменит согласие с CoP на CoN . Уменьшение степени и увеличение локальности задействованных элементов являются другими способами уменьшить сознательность.

  • Великая унифицированная теория проектирования программного обеспечения, Джим Вейрих
  • Мейлир Пейдж-Джонс, Сравнение методов посредством инкапсуляции и коннасценции, Сообщения ACM, Том 35, Выпуск 9
  • Что каждый программист должен знать об объектно-ориентированном проектировании, Мейлир Пейдж-Джонс, издательство Dorset House, ISBN   0-932633-31-5
  • Основы объектно-ориентированного проектирования в UML, Мейлир Пейдж-Джонс, Addison-Wesley Pub Co; ISBN   0-201-69946-X
  • Мануэль Риверо; 9 августа 2018 г.; Connascence: взгляд на объектно-ориентированное проектирование в Java
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 16cdcafbef371e1ad02ff12a592b77ee__1706252880
URL1:https://arc.ask3.ru/arc/aa/16/ee/16cdcafbef371e1ad02ff12a592b77ee.html
Заголовок, (Title) документа по адресу, URL1:
Connascence - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)