Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОБУЧАЮЩИЙ КУРС Глухова Лилия Александровна 2004.doc
Скачиваний:
178
Добавлен:
15.06.2014
Размер:
894.98 Кб
Скачать

Типы и силы связности модулей.

№ п.п.

Связность

Сила связности

1

Функциональная

10 (сильная)

2

Последовательная

9

3

Коммуникативная

7

4

Процедурная

5

5

Временная

3

6

Логическая

1

7

Связность по совпадению

0 (слабая)

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

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

Модуль, имеющий коммуникативную связь, может быть разбит на независимые модули, разделяющие общую структуру данных. В основе данного модуля лежит общая структура данных

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

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

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

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

Модуль имеет связность по совпадению, если его операторы объединяются произвольным образом.

Вывод: следует добиваться функциональной связности модуля.

    1. Сцепление модулей

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

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

Типы и степени сцепления модулей.

п.п.

Сцепление

Степень сцепления

1

Независимые

0

2

Сцепление по данным

1

3

По образу

3

4

По общей области

4

5

По управлению

5

6

По внешним ссылкам

7

7

По кодам

9(сильное сцепление)

Независимое сцепление возможно только в том случае, если модули не вызывают друг друга и не обрабатывают одну и ту же информацию.

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

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

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

Модули сцеплены по управлению, если какой-то из них управляет решениями внутри другого с помощью передачи флагов, переключателей, то есть один из модулей знает о внутренней структуре другого. Например, модуль имеет логическую связь и при его вызове используется переключатель ????, то оба модуля сцеплены по умолчанию.

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

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

Если модули косвенно обращаются друг к другу, между ними также существует сцепление.

Вывод: сцепление модулей зависит от спроектированной структуры данных и способов взаимодействия между модулями. Необходимо использовать простые параметры и не применять глобальных данных.