CASE. Структурный системный анализ.
ГЛАВА 7. СРЕДСТВА СТРУКТУРНОГО ПРОЕКТИРОВАНИЯ
---------------------------------------------
В предыдущих главах были рассмотрены средства структурного системного
анализа, применение которых позволяет построить модель требований (или
логическую модель) системы, состоящую из множества взаимосвязанных
диаграмм, текстов и словаря данных. Используемые на этом этапе диаграммные
техники включают DFD, ERD, STD и спецификации процессов. Модель требований
описывает, что должна делать проектируемая система без ссылок на то, как
это достигается.
Проектирование - фаза ЖЦ, на которой вырабатывается реализация
требований пользователя, которые порождены и зафиксированы на фазе
анализа. На этом этапе осуществляется построение модели реализации (или
физической модели), демонстрирующей, как система будет удовлетворять
предъявленным к ней требованиями (без технических подробностей). Модель
реализации является расширением модели требований и состоит из
взаимосвязанных диаграмм (DFD, STD, ERD, структурные карты), текстов и
словаря данных.
Техника структурных карт используется на фазе проектирования для
того, чтобы продемонстрировать, каким образом системные требования будут
отражаться комбинацией программных структур. При этом наиболее часто
применяются две техники: структурные карты Константайна (Constantine),
предназначенные для описания отношений между модулями, и структурные карты
Джексона (Jackson), предназначенные для описания внутренней структуры
модулей.
Структурные карты Константайна
---------------------------------------------------------------------
Базовыми строительными блоками программной системы являются модули.
Все виды модулей в любом языке программирования имеют ряд общих свойств,
ниже перечисленные из которых существенны при структурном проектировании:
¦ модуль состоит из множества операторов языка программирования,
записанных последовательно;
¦ модуль имеет имя, по которому к нему можно ссылаться как к единому
фрагменту;
¦ модуль может принимать и/или передавать данные как параметры в
вызывающей последовательности или связывать данные через
фиксированные ячейки или общие области.
Структурные карты Константайна являются моделью отношений иерархии
между программными модулями. Узлы структурных карт соответствуют модулям и
областям данных, потоки изображают межмодульные вызовы. При этом
циклические и условные вызовы модулей моделируются специальными узлами,
поэтому потоки должны быть изображены проходящими через эти специальные
узлы. Межмодульные связи по данным и управлению также моделируются
специальными узлами, привязанными к потокам (т.е. к вызовам модулей),
стрелками указываются направления потоков и связей. Фундаментальные
элементы структурных карт в соответствии со стандартами IBM, ISO и ANSI
приведены на рис. 7.1.
Рис. 7.1: Элементы структурных карт
Базовым элементом структурной карты является модуль. Возможно
использовать различные типы модулей (см. рис.7.2):
Рис. 7.2: Типы модулей
¦ Собственно модуль. Используется для представления обрабатывающего
фрагмента для его локализации на диаграмме.
¦ Подсистема. Ранее определенный модуль, детализированный посредством
декомпозиции ранее определенных диаграмм. Может повторно
использоваться любое число раз на любых структурных картах.
¦ Библиотека. Отличается от подсистемы тем, что определена вне
проекта данной системы.
¦ Область данных. Используется для указания модулей, содержащих
исключительно области глобальных/распределенных данных.
При построении структурных карт добавление модулей и увязывание их
вместе осуществляется с использований потоков, демонстрирующих иерархию
вызовов. Типы используемых при этом потоков приведены на рис. 7.3. При
последовательном вызове модули вызываются в порядке их следования. При
параллельном вызове модули могут вызываться в любом порядке или
одновременно (параллельно).
Рис. 7.3: Типы вызовов модулей
Для моделирования условных и циклических вызовов применяются
следующие узлы (рис.7.4):
Рис. 7.4: Условные и циклические вызовы модулей
Условный узел используется для условного вызова модуля-потомка. Он
изображается с помощью ромба, потоки - альтернативные вызовы изображаются
выходящими из него. Таким образом, если из ромба выходят два потока это
соответствует конструкции IF-THEN-ELSE, если один поток - конструкции
IF-THEN.
Итерационный узел используется для того, чтобы показать, что
модуль-наследник вызывается в цикле. Он изображается полуокружностью со
стрелкой с выходящими из него потоками.
Если необходимо показать, что подчиненный модуль не вызывается
повторно при активации главного, это осуществляется указанием цифры "1" в
главном модуле напротив потока-вызова наследника.
Связи по данным и управлению между модулями (передаваемые как
параметры) раскрываются аннотированием потоков-вызовов (рис. 7.5).
Стрелками отмечаются направления связей.
Рис. 7.5: Связи по данным и управлению
Пример структурной карты, описывающей межмодульные отношения в
рассмотренном ранее фрагменте банковской системы, приведен на рис. 7.6.
Рис. 7.6: Пример структурной карты Константайна
Структурные карты Джексона
---------------------------------------------------------------------
Техника структурных карт Джексона основана на методологии
структурного программирования Джексона и заключается в продуцировании
диаграмм (структурных карт) для графического иллюстрирования
внутримодульных (а иногда и межмодульных) связей и документирования
проекта архитектуры системы ПО. При этом техника позволяет осуществлять
проектирование нижнего уровня структуры ПО и на этом этапе является близко
традиционным блок-схемам.
По аналогии со структурными картами Константа диаграмма Джексона
может включать объекты следующих типов:
¦ Структурный блок (базовый компонент методологии) представляет
элементарную функцию или блок кодов с одним входом и одним выходом.
¦ Процедурный блок является специальным видом структурного блока,
представляющим вызов ранее определенной в модели процедуры.
¦ Библиотечный блок аналогичен процедурному и представляет вызов
библиотечного модуля.
Для взаимосвязывания блоков используются связи следующих типов:
¦ последовательная связь, обеспечивающая последовательное выполнение
слева направо;
¦ параллельная связь, обеспечивающая одновременное выполнение блоков;
¦ условная связь, обеспечивающая выбор одной из альтернатив;
¦ итерационная связь, обеспечивающая выполнение блока в цикле.
Пример структурной карты Джексона для фрагмента банковской системы
приведен на рис 7.7.
Рис. 7.7: Структурная карта Джексона
|