3.2.2. Метод функционального моделирования SADT

Метод SADT разработан Дугласом Россом в 1973 г. Данный метод успешно использовался в военных, промыш­ленных и коммерческих организациях США для решения широ­кого круга задач, таких, как долгосрочное и стратегическое пла­нирование, автоматизированное производство и проектирование, разработка ПО для оборонных систем, управление финансами и материально-техническим снабжением и др. Метод SADT представляет собой совокупность правил и про­цедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель SADT отображает функциональную структуру объекта, т.е. произ­водимые им действия и связи между этими действиями. Основ­ные элементы этого метода основываются на следующих концеп­циях:

· графическое представление блочного моделирования. Графика блоков и дуг SADT-диаграммы отображает функцию в виде бло­ка, а интерфейсы входа-выхода представляются дугами, соответ­ственно входящими в блок и выходящими из него. Взаимодей­ствие блоков друг с другом описывается посредством интерфей­сных дуг, выражающих «ограничения», которые, в свою очередь, определяют, когда и каким образом функции выполняются и уп­равляются;

· строгость и точность. Выполнение правил SADT требует дос­таточной строгости и точности, не накладывая в то же время чрезмерных ограничений на действия аналитика. Правила SADT включают: ограничение количества блоков на каждом уровне декомпозиции (правило 3-6 блоков), связность диаг­рамм (номера блоков), уникальность меток и наименований (отсутствие повторяющихся имен), синтаксические правила для графики (блоков и дуг), разделение входов и управлений (правило определения роли данных);

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

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

Результатом применения метода SADT является модель, которая состоит из диаграмм, фрагментов текстов и глоссария, имеющих ссылки друг на друга. Диаграммы – главные компоненты модели, все функции организации и интерфейсы на них представлены как блоки и дуги соответственно. Место соединения дуги с блоком оп­ределяет тип интерфейса. Управляющая информация входит в блок сверху, в то время как входная информация, которая подвергается обработке, показана с левой стороны блока, а результаты (выход) показаны с правой стороны. Механизм (человек или автоматизиро­ванная система), который осуществляет операцию, представляется дугой, входящей в блок снизу (рис. 3.6).

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

Рис. 3.6. Функциональный блок

 и интерфейсные дуги

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

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

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

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

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

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

Некоторые дуги присоединены к блокам диаграммы обоими концами, у других же один конец остается неприсоединенным. Неприсоединенные дуги соответствуют входам, управлениям и вы­ходам родительского блока. Источник или получатель этих погра­ничных дуг может быть обнаружен только на родительской диаг­рамме. Неприсоединенные концы должны соответствовать дугам на исходной диаграмме. Все граничные дуги должны продолжать­ся на родительской диаграмме, чтобы она была полной и непро­тиворечивой.

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

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

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

Для того чтобы указать положение любой диаграммы или блока в иерархии, используются номера диаграмм. Например, А21 являет­ся диаграммой, которая детализирует блок А21 на диаграмме А2. Аналогично диаграмма А2 (рис. 3.12) детализирует блок А2 на диаграмме АО, которая является самой верхней диаграммой модели.

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

· случайная;

· логическая;

· временная;

· процедурная;

· коммуникационная;

· последовательная;

· функциональная.

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

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

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

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

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

Рис. 3.15. Коммутационная связь

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

Рис. 3.16. Последовательная связь

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

Рис. 3.17. Функциональная связь

В математических терминах необходимое условие для простейше­го типа функциональной связи (см. рис. 3.17) имеет следующий вид:

С = g(B) = g(f(A)).

В табл. 3.3 представлены все типы рассмотренных связей. Важно отметить, что уровни 4 – 6 устанавливают типы связей, кото­рые разработчики считают важнейшими для получения диаграмм хо­рошего качества.

Таблица 3.3

Описание типов связей

Уровень значимости

Тип связи

Характеристика типа связи

для функций

дня данных

0

Случайная

Случайная

Случайная

1

Логическая

Функции одного и то­го же множества или типа (например, «ре­дактировать все вхо­ды»)

Данные одного и того же множества или типа

2

Временная

Функции одного и того же периода времени (например, «операции инициа­лизации»)

Данные, используе­мые в каком-либо временном интер­вале

3

Процедурная

Функции, работаю­щие в одной и той же фазе или итерации (например, «первый проход компилято­ра»)

Данные, используе­мые во время одной и той же фазы или итерации

4

Коммуникационная

Функции, использу­ющие одни и те же данные

Данные, на которые воздействует одна и та же деятельность

5

Последовательная

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

Данные, преобразуе­мые последователь­ными функциями

6

Функциональная

Функции, объединя­емые для выполне­ния одной функции

Данные, связанные с одной функцией