Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятие модуля программы .doc
Скачиваний:
4
Добавлен:
22.11.2019
Размер:
187.39 Кб
Скачать

Связность модулей программы

Связность (связанность) модуля определяется как мера независимости его частей. Чем выше связность модуля, тем лучше результат проектирования. Для обозначения связности используется также понятие "сила связности модуля". Ниже приведены типы связности модулей.

Вид связности

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

По совпадению

0 (слабая связность)

Логическая

1

Временная

3

Процедурная

5

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

7

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

9

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

10 (сильная связность)

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

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

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

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

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

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

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

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

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