Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lp_IPOVS_TP.doc
Скачиваний:
356
Добавлен:
13.08.2019
Размер:
3 Мб
Скачать
☆
  1. Структурные карты Константайна

Методика структурных карт используется на этапе проектирования ПО для того, чтобы продемонстрировать, каким образом программный продукт выполняет системные требования. При этом наиболее часто применяются две техники: структурные карты Константайна (Constantine), предназначенные для описания отношений между модулями, и структурные карты Джексона (Jackson), предназначенные для описания внутренней структуры модулей.

Структуру программной системы составляют модули, которые в любом языке программирования имеют следующие общие свойства:

  • модуль имеет имя, по которому к нему можно обращаться как к единому фрагменту;

  • модуль состоит из множества операторов языка программирования, записанных последовательно;

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

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

Рис. 4. Элементы структурных карт

а – модуль; б – вызов модуля; в – связь по данным; связь по управлению

Модуль является базовым элементом структурной карты. Различают следующие типы модулей (см. рис. 5):

  • модуль (рис. 5, а);

  • подсистема – детализированный модуль или программа. Может использоваться повторно любое число раз (рис. 5, б);

  • библиотека – совокупность подпрограмм размещенных в модуле отдельно от данной системы (рис. 5, в);

  • область данных – описывает модули, содержащие исключительно области глобальных/распределенных данных (рис. 5, г).

Рис. 5. Типы модулей

Отдельные части программной системы (программы, подпро­граммы) могут вызываться последовательно, параллельно или как сопро­граммы (см. рис. 6).

Для моделирования условных и циклических вызовов применяются следующие узлы (рис. 7):

  • условный узел применяется для моделирования конструкций IF-THEN-ELSE (на диаграмме из узла выходят два потока) и IF-THEN (из узла выходит один поток). Условный узел изображается в виде ромба, потоки – альтернативные вызовы изображаются выходящими из него;

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

Рис. 6. Типы вызовов модулей

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

Рис. 7. Условные и циклические вызовы модулей

а - циклический; б - условный; в - однократный

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

Рис. 8. Связи а – по данным и б – по управлению

Пример 2. Разработать структурную карту Константайна для задачи сортировки одномерного массива с помощью алгоритмов Пузырька, прямого выбора и Шелла.

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

Результат приведен на рис. 9:

Рис. 9. Пример структурной карты Константайна

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]