Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Структурные карты Константайна



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 663; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.)
Главная | Случайная страница | Обратная связь