Функциональные диаграммы
Функциональными называют диаграммы, в первую очередь отражающие взаимосвязи функций разрабатываемого программного обеспечения.
Они создаются на ранних этапах проектирования систем, для того чтобы помочь проектировщику выявить основные функции и составные части проектируемой системы и, по возможности, обнаружить и устранить существенные ошибки. Современные методы структурного анализа и проектирования предоставляют разработчику определённые синтаксические и графические средства проектирования функциональных диаграмм информационных систем.
4.1. Методология SADT
Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях:
· графическое представление блочного моделирования. На SADT-диаграмме функции представляется в виде блока, а интерфейсы входа/выхода в виде дуг, соответственно входящих в блок и выходящих из него. Интерфейсные дуги отображают взаимодействие функций друг с другом;
· строгость и точность отображения.
Правила SADT включают:
· уникальность меток и наименований;
· ограничение количества блоков на каждом уровне декомпозиции;
· синтаксические правила для графики;
· связность диаграмм;
· отделение организации от функции;
· разделение входов и управлений.
Диаграммы – главные компоненты модели, все функции программной системы и интерфейсы на них представлены как блоки и дуги. Место соединения дуги с блоком определяет тип интерфейса. Дуга, обозначающая управление, входит в блок сверху, в то время как информация, которая подвергается обработке, представляется дугой с левой стороны блока, а результаты обработки – это дуги с правой стороны. Механизм (человек или автоматизированная система), который осуществляет операцию, представляется в виде дуги, входящей в блок снизу (рис. 8).
Рис. 8. Функциональный блок и интерфейсные дуги
Блоки на диаграмме размещают по «ступенчатой» схеме в соответствии с последовательностью их работы или доминированием, которое понимается как влияние, оказываемое одним блоком на другие. В функциональных диаграммах SADT различают пять типов влияний блоков друг на друга:
· вход-выход блока подается на вход блока с меньшим доминированием, т.е. следующего (рис. 9, а);
· управление – выход блока используется как управление для блока с меньшим доминированием (рис. 9, б);
· обратная связь по входу – выход блока подается на вход блока с большим доминированием (рис. 9, в);
· обратная связь по управлению – выход блока используется как управляющая информация для блока с большим доминированием (рис. 9, г);
· выход-исполнитель – выход блока используется как механизм для другого блока (рис. 9, д).
Рис. 9. Типы влияний блоков: а - вход; б - управление; в - обратная связь по входу; д - выход-исполнитель
4.2. Иерархия диаграмм
Прежде всего, вся система представляется в виде простейшей компоненты – одного блока и дуг, представляющих собой интерфейсы с внешними по отношению к данной системе функциями. Имя блока является общим для всей системы.
Затем блок, который представляет систему в целом, детализируется на следующей диаграмме. Он представляется в виде нескольких блоков, соединенных интерфейсными дугами (рис. 10). Каждый блок детальной диаграммы представляет собой подфункцию, границы которой определены интерфейсными дугами. Каждый из блоков детальной диаграммы может быть также детализирован на следующей в иерархии диаграмме. На каждом шаге декомпозиции более общая диаграмма называется родительской для более детальной диаграммы.
Все диаграммы связывают друг с другом иерархической нумерацией блоков: первый уровень – АО, второй – А1, А2 и т. п., третий – А11, А12, А13 и т. п., где первые цифры – номер родительского блока, а последняя – номер конкретного блока детальной диаграммы.
Рис. 10. Структура SADT-модели. Декомпозиция диаграмм
Дуги, входящие в блок и выходящие из него на диаграмме верхнего уровня, являются точно теми же самыми, что и дуги, входящие в диаграмму нижнего уровня и выходящие из нее, потому что блок и диаграмма представляют одну и ту же часть системы.
Пример 1.Разработку функциональных диаграмм продемонстрируем на примере уточнения спецификаций программы сортировки одномерного массива с использованием нескольких методов.
Диаграмма, представленная на рис. 11, а, является диаграммой верхнего уровня. Она иллюстрирует исходные данные программы и ожидаемые результаты.
Диаграмма, представленная на рис. 11, б, детализирует функции программы. На ней показаны три блока: Меню, Сортировка, Вывод результата. Для каждого блока определены исходные данные, управляющие воздействия и результаты. На детализирующей диаграмме используются следующие обозначения:
I1 – размер массива;
I2 – массив;
С1 – выбор метода;
R1 – вывод описания метода;
R2 – отсортированный массив.
Рис. 11. Функциональные диаграммы для системы исследования функций:
а - диаграмма верхнего уровня; б - уточняющая диаграмма