Функциональные диаграммы

Характеристика функциональных диаграмм (SADT) — диаг­раммы SADT отражают взаимные связи функций разрабатываемого программного обеспечения. Они создаются на ранних стади­ях проектирования систем, для того чтобы помочь проектировщи­ку выявить основные функции и составные части проектируемой программной системы и, по возможности, обнаружить и устра­нить существенные ошибки. Для создания функциональных диаг­рамм предлагается использовать методологию SADT, предложен­ную Д.Россом. На основе методологии SADT была построена из­вестная методология описания сложных систем IDEFO (Icam DEFinition), являющаяся основной частью программы ICAM (ин­тегрированная компьютеризация производства), проводимой по инициативе ВВС США. Применение методологии SADT позволя­ет построить модель, состоящую из диаграмм, фрагментов тек­стов и глоссария, имеющих ссылки друг на друга. Диаграммы — главные компоненты модели. Функции системы и интерфейсы представлены на диаграммах в виде блоков и дуг. Место соедине­ния дуги с блоком определяет тип интерфейса. Управляющая ин­формация входит в блок сверху, в то время как информация, ко­торая подвергается обработке, показана с левой стороны блока, а результаты выхода даны с правой стороны. Механизм (человек или автоматизированная система), осуществляющий операцию, представлен дугой, входящей в блок снизу (рис. 2.6).

Одна из наиболее важных особенностей методологии SADT — постепенное введение все больших уровней детализации по мере создания диаграмм, отображающих модель. Построение SADT-модели начинается с представления всей системы в виде простей­шей компоненты — одного блока и дуг, изображающих интер­фейсы с функциями вне системы. Поскольку единственный блок представляет всю систему как единое целое, имя, указанное в блоке, является общим. Это верно и для интерфейсных дуг — они также представляют собой полный набор внешних интерфейсов системы в целом.

Затем блок, в котором система дана в качестве единого моду­ля, детализируется на другой диаграмме с помощью нескольких

блоков, соединенных интерфейсными дугами. Эти блоки пред­ставляют основные подфункции исходной функции. Данная де­композиция выявляет полный набор подфункций, каждая из ко­торых представлена как блок, границы которого определены ин­терфейсными дугами. Каждая из этих подфункций может быть декомпозирована подобным образом для более детального пред­ставления. Во всех случаях каждая подфункция может содержать только те элементы, которые входят в исходную функцию. Кро­ме того, модель не может опустить какие-либо элементы, т.е., как уже отмечалось, родительский блок и его интерфейсы обеспечи­вают контекст. К нему нельзя ничего добавить, и из него не мо­жет быть ничего удалено.

Модель SADT представляет собой серию диаграмм с сопрово­дительной документацией, разбивающих сложный объект на со­ставные части, представленные в виде блоков. Детали каждого из основных блоков показаны в виде блоков на других диаграммах. Каждая детальная диаграмма является декомпозицией блока из более общей диаграммы. На каждом шаге декомпозиции более общая диаграмма называется родительской для более детальной диаграммы.

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

Стрелки, приходящие с родительской диаграммы или уходя­щие на нее, нумеруют, используя символы и числа. Символ обо­значает тип связи: / — входные, С — управляющие, М — меха­низмы, R — результаты. Число — номер связи по соответствую­щей стороне родительского блока, считая сверху вниз и слева направо. Все диаграммы связывают друг с другом иерархической нумерацией блоков: начальный уровень — АО, следующий — А1, А2 и т.п., следующий — All, А12, А13 и т.д., где первая цифра — номер родительского блока, а последняя — номер конкретного субблока родительского блока. Детализацию завершают при полу­чении функций, назначение которых хорошо понятно как заказ­чику, так и разработчику. Эти функции описывают, используя ес­тественный язык или псевдокоды. В процессе построения иерар­хии диаграмм фиксируют всю уточняющую информацию и стро­ят словарь данных, в котором определяют структуры и элементы данных, показанных на диаграммах. Таким образом, в результате получают спецификацию, которая состоит из иерархии функци-

АО

Рис. 2.7. Структура SADT-модели. Декомпозиция диаграмм


ональных диаграмм, описаний функций нижнего уровня и слова­ря, имеющих ссылки друг на друга.

На рис. 2.7 представлена декомпозиция четырех диаграмм, по­казывающая структуру SADT-модели, общее (рис. 2.7, а) и деталь­ное представление блока АО (рис. 2.7, б), декомпозицию блоков А4 (рис. 2.7, в) и А42 (рис. 2.7, г). Не присоединяемые дуги соот­ветствуют входам, управлениям и выходам родительского блока. Источник или получатель этих дуг может быть обнаружен только на родительской диаграмме. Не присоединяемые концы должны соответствовать дугам на исходной диаграмме. Все граничные дуги должны продолжаться на родительской диаграмме, чтобы она была полной и непротиворечивой.

Родительская диаграмма

Родительский блок

Детальная диаграмма

Управляющая дуга, переносимая с родительской диаграммы

Входная дуга, переносимая с родительской диаграммы

А12

Дуга, продолжающаяся на родительской диаграмме

Рис. 2.8. Соответствие интерфейсных дуг родительской (а) и детальной (б) диаграмм

Функции блоков 2 и 3 могут выполняться параллельно

Рис. 2.9. Пример одновременного выполнения функций

Каждый компонент модели может быть декомпозирован на другой диаграмме, т.е. каждая диаграмма иллюстрирует «внутрен­нее строение» блока на родительской диаграмме.

На рис. 2.8, а, б и рис. 2.9 представлены различные варианты выполнения функций и соединения дуг с блоками.

На SADT-диаграммах не указаны явно ни последовательность, ни время. Обратные связи, итерации, продолжающиеся процессы и перекрывающиеся (по времени) функции могут быть изображе­ны также с помощью дуг. Обратные связи могут выступать в виде комментариев, замечаний, исправлений и т.д. (рис. 2.10).

Одним из важных моментов при моделировании системы с помощью методологии SADT является точная согласованность типов связей между функциями. Различают, по крайней мере, следующие типы связей: случайная; логическая; временная; про­цедурная; коммуникационная; последовательная; функциональ­ная.

Случайная связь возникает, когда конкретная связь между функциями мала или полностью отсутствует. Это относится к си-

Системные требования

Разработка проекта

Предварительная спецификация

Экспертиза

Комментарии

Улучшенный проект

Рис. 2.10. Пример обратной связи


туации, когда имена данных на SADT-дугах в одной диаграмме имеют малую связь друг с другом.

Логическая связь — данные и функции собираются вместе, поскольку попадают в общий класс или набор элементов, но не­обходимых функциональных отношений между ними при этом не обнаруживается.

Планировать Л

Планировать В

Согласовывать А и В

f

Рис. 2.11. Типы связей:

а - процедурная; б - коммуникационная; в - последовательная-г — функциональная

Временная связь представляет функции, связанные во време­ни, когда данные используются одновременно или функции вклю­чаются параллельно, а не последовательно.

При процедурной связи функции сгруппированы вместе, по­скольку они выполняются в течение одной и той же части цикла или процесса (рис. 2.11, а).

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

При последовательной связи выходные данные одной функции служат входными данными для другой функции. Связь между эле­ментами на диаграмме является более тесной, чем на рассмотрен­ных выше уровнях, поскольку моделируются причинно-следствен­ные зависимости (рис. 2.11, в).

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

В математических терминах необходимое условие для простейшего типа функциональной связности (рис. 2.11, г) имеет следующий вид: С = д(В) = g(f(A)).

Метод SADT может использоваться для моделирования самых разнообразных систем и для определения требований и функций. В существующих системах метод SADT может применяться для анализа функций, выполняемых системой, и указания механиз­мов, посредством которых они осуществляются.

Пример разработки функциональной диаграммы программы построения графиков. Разработку функциональных диаграмм продемонстрируем на примере уточнения спецификаций про­граммы построения графиков и таблиц функций одной перемен­ной.

На рис. 2.12, а показана диаграмма верхнего уровня, на кото­рой хорошо видно, что является исходными данными для про­граммы и получения каких результатов мы ожидаем.

Диаграмма на рис. 2.12, б уточняет функции программы. На ней показаны четыре блока: ввод—выбор и ее разбор, добавле­ние функции в список, построение таблицы значений и построе-


График/таблица

Функция

Отрезок

Шаг

Построение графиков/таблиц функций

АО

График Таблица

/1

Ввод/выбор функции и ее разбор

/3

Список функций

Правильная функция

Дерево разбора

Добавление функции в список

А4

А2

Построение таблицы значений

Количество точек

R2

О

A3

Построение графика значений

Рис. 2.12. Функциональные диаграммы для системы исследования функций:

а — диаграмма верхнего уровня; б — уточняющая диаграмма

ние графика функции. Для каждого блока определены исходные данные, управляющие воздействия и результаты. Согласно прави­лам обозначения входов—выходов, имеющих продолжение на ро­дительской диаграмме, на данной диаграмме использованы следую­щие обозначения: Л — функция; 12 — отрезок; /3 — шаг; С1 — вид график—таблица; RI — график функции на отрезке; R2 — таблица значений функции на отрезке.

Словарь в этом случае должен содержать описание всех дан­ных, используемых в системе.

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

2.4.

ДИАГРАММЫ ПОТОКОВ ДАННЫХ

Характеристика диаграмм потоков данных (DFD). Диаграмма DFD состоит из узлов обработки данных, средств их хранения и внешних по отношению к используемой диаграмме источников или потребителей данных.

Диаграмма потоков данных — основное средство моделирова­ния функциональных требований к системе, проектируемой или реально существующей. В основе модели лежат понятия внешней сущности, процесса, хранилища (накопителя) данных потока дан­ных. Источники информации (внешние сущности) порождают информационные потоки (потоки данных), переносящие инфор­мацию к подсистемам или процессам; те, в свою очередь, преобра­зуют информацию и порождают новые потоки, которые переносят информацию к другим процессам или подсистемам, накопителям данных или внешним сущностям — потребителям информации.

Для изображения диаграмм потоков данных традиционно ис­пользуют два вида нотаций — Йордана и Гейна—Сарсона, кото­рые представлены в табл. 2.1.

Внешняя сущность — это материальный предмет или физичес­кое лицо, представляющее собой источник или приемник инфор­мации, например, заказчики, персонал, поставщики, клиенты,

Таблица 2.1. Виды нотаций

Понятие

Нотация Йордана

Нотация Гейна—Сарсона

Внешняя сущность

Наименова­ние

Номер

Наименование

Процесс, система, подсистема

Номер

Наименование

Механизм

Накопитель данных

Наименование

№ Наименование

Поток данных

Наименование

Наименование


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: