Модулем называется автономно компилируемая программная единица. Данные модуль может получать и (или) возвращать через общие области памяти или параметры. Основное требование к модулям это независимость. Чем выше степень независимостей модулей тем:
1) Легче разобраться в отдельном модуле и всей программе и соответственно тестировать отлаживать и модифицировать её.
2) Меньше вероятность появление новых ошибок при исполнении старых или внесение изменений в программу.
3) Проще организовать разработку программного обеспечения, группой программистов и легче его сопровождать.
Степень независимостей модулей оценивают двумя критериями: сцеплением и связностью.
Сцепление является мерой взаимозависимости модулей, которое определяет насколько хорошо, модули отделены друг от друга. Модули независимы если каждый из них не содержит о другом никакой информации. Чем больше информации о других модулях хранит модуль, тем больше он с ними сцеплен. Различают 5 типов сцепления модулей:
Модули / Введение в программирование, урок 14 (JavaScript ES6)
3) По управлению
4) По общей области данных
5) По содержимому
Сцепление по данным предполагает, что модули обмениваются данными представленными скалярными значениями. При небольшом количестве передаваемых параметров этот тип обеспечивает наилучшие технологические характеристики ПО. Например, функция Max предполагает сцепление по данным, через параметры скалярного типа.
if a>b then Max:= a
Сцепление по образцу предполагает, что модули обмениваются данными объединенными в структуры. Этот тип также обеспечивает неплохие характеристики, но они хуже чем сцепление по данным так как конкретные передаваемы данные «спрятаны» в структуры, и потому уменьшается прозрачность связей между модулей. кроме того при изменении структуры передаваемых данных необходимо модифицировать все использующие её модули. Функция MaxEL предполагает сцепление по образцу:
function MaxEL (a:array of integer:integer);
for i:=1 to High(a) do
При сцепление по управлению один модуль посылает другому некоторый информационный объект (флаг). Который предназначен для управления внутренней логикой модуля. Таким способом часто выполняют настройку режимов работы ПО. Подобные настройки также снижают наглядность взаимодействия модулей и поэтому обеспечивают ещё худшие характеристики технологичности разрабатываемого ПО по сравнению со сцеплениями по данным и по образцу. Например:
функция MinMax предполагает сцепление по управлению, так как значение параметра flag влияет на логику программы.
function MinMax(a,b:integer,Flag Boolean):integer;
If (a>b) and (flag) then MinMax=a else MinMan=b
Сцепление по общей области данных, предполагает, что модули работают с общей областью данных. Это считается недопустимым:
1) так как программы, использующие данный тип сцепления очень сложны для понимания, при сопровождение
2) ошибка одного модуля, приводящая к изменению общих данных может проявиться при выполнения другого модуля, что существенно усложняет, локализацию ошибок.
Типы и Виды модулей в 1С
3) при ссылке к данным в общей области модули используют конкретные имена, что уменьшает гибкость разрабатываемого программного обеспечения.
Сцепление по содержимому, в этом случае один модуль содержит обращения к внутренним компонентам другого (передает управления внутрь, считает или изменяет внутренние данные или сами коды). Отдельный модуль в этом случае не является блоком, так как его содержимое должно учитываться в процессе разработки другого модуля.
Качество программного обеспечения принято определять по типу сцепления с худшими характеристиками.
Источник: studopedia.su
Сцепление модулей
Сцепление — мера взаимозависимости модулей, определяющая, насколько хорошо модули отделены друг от друга. Модули независимы, если каждый из них не содержит о другом никакой информации. Чем больше информации о других модулях хранит модуль, тем больше он с ними сцеплен.
Различают пять типов сцепления модулей:
• по данным — модули обмениваются только скалярными данными;
• по образцу — модули обмениваются структурами данных;
• по управлению — один модуль посылает другому сигнал (флаг), предназначенный для управления внутренней логикой модуля, что снижает наглядность взаимодействия модулей; по общей области данных — модули работают с общей областью данных. Этот тип сцепления считается недопустимым, поскольку: программы сложны при сопровождении; есть зависимость от истории вызовов; ошибка одного модуля может проявиться при выполнении другого (усложняется локализация ошибок); используются конкретные имена;
• по содержимому — один модуль содержит обращения к внутренним компонентам другого, это противоречит блочно-иерархическому подходу. Отдельный модуль в этом случае уже не является «черным ящиком»: его содержимое должно учитываться в процессе разработки другого модуля. Pascal не поддерживают данного типа сцепления, но в Ассемблере это возможно.
Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм.
Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени.
ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при которых тело находится под действием заданной системы сил.
Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах.
Основные симптомы при заболеваниях органов кровообращения При болезнях органов кровообращения больные могут предъявлять различные жалобы: боли в области сердца и за грудиной, одышка, сердцебиение, перебои в сердце, удушье, отеки, цианоз головная боль, увеличение печени, слабость.
Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации.
Задержки и неисправности пистолета Макарова 1.Что может произойти при стрельбе из пистолета, если загрязнятся пазы на рамке.
Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома.
Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники.
Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь».
Источник: studopedia.info
Сцепление модулей
Сцепление модулей является мерой взаимозависимости модулей по данным и определяется как способом передачи данных между модулями, так и свойствами передаваемых данных.
Для достижения минимальной сложности программного комплекса необходимо добиться такого сопряжения между модулями, чтобы все данные чередовались между ними в форме явных и простых параметров.
Виды сцеплений охарактеризуем в порядке уменьшения сцепления.
1. Сцепление по содержимому — модуль ссылается на данные (содержимое) другого модуля. Большинство языков программирования высокого уровня делает такое сцепление практически невозможным.
2. Сцепление по общей области — модули ссылаются на одну и ту же глобальную структуру данных.
При этом основная проблема та, что имена глобальных переменных связывают модули на этапе их кодирования (программирования), а, следовательно, использование таких модулей в других программах или других контекстах затруднено или невозможно вообще. И кроме того, любые изменения в структуре глобальных данных влекут проверку (тестирование) всех сцепленных по общей области модулей.
3. Сцепление по управлению — один модуль управляет функционированием другого. При этом в вызываемый модуль передается значение управляющей переменной.
Предполагается, что вызывающий модуль “знает” логику работы вызываемого, что уменьшает их независимость.
4. Сцепление по формату — модули ссылаются на одну и ту же структуру данных. Если модуль А вызывает модуль В и передает ему запись анкетных данных служащего и при этом как А так и В чувствительны к изменению структуры или формата записи, то А и В сцеплены по формату.
Такого сцепления, по возможности, следует избегать, поскольку оно создает ненужные связи между модулями.
5. Сцепление по данным — передаваемые параметры — простые (неструктурированные) данные.
Сцепление модулей может удовлетворять определению нескольких типов сцепления. В этом случае принято относить тип сцепления к самому жесткому типу, т.е. к меньшему по номеру из рассмотренных типов сцеплений.
При разработке модульной структуры ПО следует стремиться к усилению связей в модуле и ослаблению их взаимодействия. При этом получение идеальных по прочности и сцеплению модулей не должно быть самоцелью. Нужно понимать, какие проблемы создают неидеальные модули и не забывать их задокументировать.
В литературе /1/ предлагается для оценки приемлемости программного модуля использовать следующие характеристики:
— сцепление с другими модулями;
— рутинность модуля (независимость от предыстории обращений к нему).
Размер модуля измеряется числом содержащихся в нем программных операторов или команд. Рекомендуется создавать программные модули размером от нескольких десятков до нескольких сотен операторов.
Прочность и сцепление как основополагающие принципы модульного программирования пояснены выше.
Рутинность интуитивно понятна и означает, что в модуле не должно быть команд, которые изменяются в зависимости от обрабатываемых данных.
Вывод: Подытожим обсуждение модульного программирования перечислением принципов Хольта:
1.Сложность взаимодействия модуля с другими модулями должна быть меньше сложности его внутренней структуры.
2.Хороший модуль снаружи проще, чем изнутри.
3.Хороший модуль проще использовать, чем построить.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru