Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
15. Структурное программирование. Функциональные диаграммы
Функциональные диаграммы
Функциональными называют диаграммы, в первую очередь отражающие взаимосвязи функций разрабатываемого программного обеспечения.
Они создаются на ранних этапах проектирования систем, для того чтобы помочь проектировщику выявить основные функции и составные части проектируемой системы и, по возможности, обнаружить и устранить существенные ошибки.
Современные методы структурного анализа и проектирования предоставляют разработчику определенные синтаксические и графические средства проектирования функциональных диаграмм информационных систем.
В качестве примера рассмотрим методологию SADT, предложенную Дугласом Россом. На ее основе разработана, в частности, известная методология IDEFO (Icam DEFinition).
Методология SADT представляет собой набор методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области.
Функциональная модель SADT отображает функциональную структуру объекта, т. е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях:
• графическое представление блочного моделирования. На SADT-диаграмме функции представляются в виде блока, а интерфейсы входа-выхода в виде дуг, соответственно входящих в блок и выходящих из него. Интерфейсные дуги отображают взаимодействие функций друг с другом;
• строгость и точность отображения.
Правила SADT включают:
• уникальность меток и наименований;
• ограничение количества блоков на каждом уровне декомпозиции;
• синтаксические правила для графики;
• связность диаграмм;
• отделение организации от функции;
• разделение входов и управлений.
Методология SADT может использоваться для моделирования и разработки широкого круга систем, удовлетворяющих определенным "требованиям и реализующих требуемые функции.
В уже разработанных системах методология SADT может быть использована для анализа выполняемых ими функций, а также для указания механизмов, посредством которых они осуществляются.
Диаграммы главные компоненты модели, все функции программной системы и интерфейсы на них представлены как блоки и дуги. Место соединения дуги с блоком определяет тип интерфейса. Дута, обозначающая управление, входит в блок сверху, в то время как информация, которая подвергается обработке, представляется дугой с левой стороны блока, а результаты обработки дугами с правой стороны. Механизм (человек или автоматизированная система), который осуществляет операцию, представляется в виде дуги, входящей в блок снизу (рис. 3.22).
Рис. 3.22. Функциональный блок и интерфейсные дуги
Блоки на диаграмме размещают по «ступенчатой» схеме в соответствии с последовательностью их работы или доминированием, которое понимается как влияние, оказываемое одним блоком на другие. В функциональных диаграммах SADT различают пять типов влияний блоков друг на друга:
• вход-выход блока подается на вход блока с меньшим доминированием, т. е. следующего (рис. 3.23, а);
• управление. Выход блока используется как управление для блока с меньшим доминированием (рис. 3.23, б),
• обратная связь по входу. Выход блока подается на вход блока с большим доминированием (рис. 3.23, в);
• обратная связь по управлению. Выход блока используется как управляющая информация для блока с большим доминированием (рис. 3.23, г);
• выход-исполнитель. Выход блока используется как механизм для другого блока (рис. 3.23, д).
Одной из наиболее важных особенностей методологии SADT является постепенное введение все больших уровней детализации по мере создания диаграмм, отображающих модель.
Рис. 3.23. Типы влияний блоков:
а вход; б управление; в обратная связь по входу; г обратная связь
по управлению; д выход-исполнитель
На рис. 3.24 приведены четыре диаграммы и их взаимосвязи, показывающие структуру SADT-модели. Каждый компонент модели может быть декомпозирован на другой диаграмме. Детальная диаграмма иллюстрирует внутреннее строение блока «родительской» диаграммы.
Рис. 3.24. Структура SADT-модели. Декомпозиция диаграмм
Иерархия диаграмм
Прежде всего, вся система представляется в виде простейшей компоненты одного блока и дуг, представляющих собой интерфейсы с внешними по отношению к данной системе функциями. Имя блока является общим для всей системы.
Затем блок, который представляет систему в целом, детализируется на следующей диаграмме. Он представляется в виде нескольких блоков, соединенных интерфейсными дугами. Каждый блок детальной диаграммы представляет собой подфункцию, границы которой определены интерфейсными дугами. Каждый из блоков детальной диаграммы может быть также детализирован на следующей в иерархии диаграмме. На каждом шаге декомпозиции более общая диаграмма называется родительской для более детальной диаграммы.
Все диаграммы связывают друг с другом иерархической нумерацией блоков: первый уровень А0, второй Al, A2 и т. п., третий All, A12, А13 и т. п., где первые цифры номер родительского блока, а последняя номер конкретного блока детальной диаграммы.
Во всех случаях каждая подфункция может содержать только те элементы, которые входят в исходную функцию, причем никакие из них не могут быть опущены. То есть родительский блок и его интерфейсы обеспечивают контекст. К нему нельзя ничего добавить, и из него не может быть ничего удалено.
Дуги, входящие в блок и выходящие из него на диаграмме верхнего уровня, являются точно теми же самыми, что и дуги, входящие в диаграмму нижнего уровня и выходящие из нее, потому что блок и диаграмма представляют одну и ту же часть системы.
На рис. 3.253.27 представлены различные варианты выполнения функций и соединения дуг с блоками.
Последовательность операций, время их выполнения не указываются на SADT-диаграммах. Обратные связи, итерации, продолжающиеся процессы и перекрывающиеся (по времени)
Функции могут быть изображены с помощью дуг. Обратные связи могут выступать в виде комментариев, замечаний, исправлений и т. д. (см. рис. 3.27).
Рис. 3.27. Пример обратной связи
Пример.
Разработку функциональных диаграмм продемонстрируем на примере уточнения спецификаций программы сортировки одномерного массива с использованием нескольких методов.
Диаграмма, представленная на рис. 3.28, а, является диаграммой верхнего уровня. Она иллюстрирует исходные данные программы и ожидаемые результаты.
Рис. 3.28. Функциональные диаграммы для программы сортировки массива:
а диаграмма верхнего уровня; б уточняющая диаграмма
Диаграмма, представленная на рис. 3.28, б, детализирует Функции программы. На ней показаны три блока: Меню, Сортировка, Вывод результата. Для каждого блока определены исходные данные, управляющие воздействия и результаты. На детализирующей диаграмме используются следующие обозначения:
11 размер массива;
12 массив;
С1 выбор метода;
R1 вывод описания метода;
R2 отсортированный массив.