Модульную структуру системы удобно представлять в форме дерева иерархии вызовов модулей, получившего название структурной схемы.
Структурная схема строится из следующих базовых элементов:
· модуля;
· предопределенного модуля;
· данных,
· управляющей информации.
Модуль на структурной схеме обозначается прямоугольником, внутри которого записывается его имя (рис. 3.1, а). Изображение предопределенного (библиотечного) модуля отличается тем, что вертикальные стороны прямоугольника обозначаются двойными линиями (рис. 3.1, б). Передаваемые от модуля к модулю данные и структуры данных изображаются кружком со стрелкой, рядом с которой записывается имя данного (рис. 3.1, в), а передаваемая управляющая информация (флаги, команды управления, логические сигналы) – закрашенным кружком со стрелкой (рис. 3.1, г).
Рис. 3.1. Основные элементы структурных схем:
а – модуль; б – предопределенный (библиотечный) модуль;
в – данное (структура данных); г - управляющая информация
Между модулями могут возникать информационные связи нескольких видов (рис. 3.2):
· информационная связь (связь по данным);
· связь по управлению;
· внешняя, содержательная, «патологическая» связь.
Информационная связь (рис. 3.2, а) читается следующим образом: «модуль А вызывает модуль В, передавая ему входное данное Х и получая от него выходное данное Y». Этот вид связи является наилучшим, так как явно специфицирует межмодульный интерфейс.
Связь по управлению (рис. 3.2, б) предусматривает возврат вызываемым модулем управляющей информации и считается менее предпочтительной, чем информационная, но бывает необходима, когда вызываемому модулю надо сообщить о статусе операции. Например, модуль выбора очередного запроса может вернуть вызвавшему модулю признак того, что очередь запросов пуста.
Внешняя (содержательная, «патологическая») связь (рис. 3.2, в) описывает ситуацию, когда один модуль передает управление внутрь другого модуля или используются данные, определяемые внутри другого модуля. При проектировании систем таких видов связей следует избегать.
Рис. 3.2. Виды связей между модулями:
а - информационная (по данным); б - по управлению; в - внешняя связь
Помимо того факта, что некоторый модуль системы вызывает некоторый другой, на структурных схемах может задаваться тип (способ) вызова (рис. 3.3):
· последовательный вызов (подчиненные модули вызываются в той последовательности, в которой они расположены); рис. 3.3, а);
· условный вызов (вызывается один из подчиненных модулей; рис. 3.3, б);
· итерационный (цикличекий) вызов (подчиненные модули вызываются несколько раз; рис. 3.3, в);
· лексикографическое включение (модуль показан отдельно, но его текст входит в текст модуля верхнего уровня; рис. 3.3, д);
· рекурсивный вызов (модуль вызывает сам себя; рис. 3.3, е);
· асинхронный вызов (активизируется выполнение, вызываемый модуль начинает работу параллельно с вызвавшим модулем; рис. 3.3, ж).
Отдельные способы вызовов могут комбинироваться, например одновременно условный и итерационный (рис. 3.3, г).
Образующие систему модули могут быть сформированы исходя из различных принципов. При формировании модулей межмодульные связи следует делать как можно более слабыми, в то время как части модуля должны быть связаны наиболее сильно.
Рис. 3.3. Способы вызова:
а – последовательный; б – условный; в – итерационный; г – условный
и итерационный; д – лексикографическое включение; е – рекурсивный;
ж – асинхронный
Выделяют следующие виды сцепления.
1. Случайное. Части модуля не выполняют единой функции, они собраны в единое целое случайно (наихудший вариант).
2. Логическое. Модуль реализует несколько функций, имеющих общие части. Таким модулем зачастую передается в качестве параметра команда (флаг), указывающая, какого рода обработка должна быть выполнена при каждом конкретном вызове.
3. Временное. Модуль объединяет действия, выполняемые в одно и то же время (например, все действия по инициализации системы).
4. Процедурное. Модуль содержит несколько функций, связанных общим потоком управления, т. е. выполняемых последовательно друг за другом.
5. Коммуникационное. Модуль содержит несколько функций, связанных помимо потока управления потоком данных; иначе говоря, модули последовательно производят обработку одного и того же потока информации.
6. Функциональное. Данный модуль выполняет одну и только одну функцию. Модуль может быть отнесен к сцеплению функционального типа, если
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.