Источник: Электронный конспект лекций, Григорьев А.В., Донецьк, ДонНТУ – 2010.
Методология SADT разработана Дугласом Россом. Методология SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения структурно-функциональной модели объекта какой-либо предметной области.
Широко используется в проектировании бизнес-процессов, технических объектов, организационных систем и т.д. Претендует на роль обязательного инструментального средства создания любых проектов на ранних стадиях. Позволяет обеспечивать передачу моделей в системы более позднего проектирования.
Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях:
1) Графическое представление блочного моделирования.
Графика блоков и дуг SADT-диаграммы отображает функцию в виде блока, а интерфейсы входа/выхода представляются дугами, соответственно входящими в блок и выходящими из него. Взаимодействие блоков друг с другом описываются посредством интерфейсных дуг, выражающих "ограничения", которые в свою очередь определяют, когда и каким образом функции выполняются и управляются.
2) Строгость и точность.
Выполнение правил SADT требует достаточной строгости и точности, не накладывая в то же время чрезмерных ограничений на действия аналитика. Правила SADT включают:
• Ограничение количества блоков на каждом уровне декомпозиции (правило 3–6 блоков, ограничение когнитивной сложности, т.к. человек при большем количестве факторов начинает их интуитивно делить на группы);
• Связность диаграмм (композиция в нумерации блоков);
• Уникальность меток и наименований (отсутствие повторяющихся имен);
• Синтаксические правила для графики (блоков и дуг);
• Разделение входов и управлений (правило определения роли данных).
• Отделение организации от функции, т.е. исключение влияния организационной структуры на функциональную модель.
Методология SADT может использоваться для моделирования широкого круга систем и определения требований и функций, а затем для разработки системы, которая удовлетворяет этим требованиям и реализует эти функции. Для уже существующих систем SADT может использоваться для анализа функций, выполняемых системой, а также для указания механизмов, посредством которых они осуществляются.
Является удобным механизмом построения структурных моделей в САПР.
Результатом применения методологии SADT является модель, которая состоит из диаграмм (схем), фрагментов текстов и глоссария, имеющих ссылки друг на друга.
Диаграммы – главные компоненты модели, все функции ИС и интерфейсы на них представлены как блоки и дуги.
Место соединения дуги с блоком определяет тип интерфейса.
Управляющая информация входит в блок сверху.
Информация, которая подвергается обработке (входная), показана с левой стороны блока.
Результаты (выход) показаны с правой стороны блока.
Механизм (человек или автоматизированная система), который осуществляет операцию, представляется дугой, входящей в блок снизу (рис.1.).
Механизмы (дуги с нижней стороны) показывают средства, с помощью которых осуществляется выполнение функций. Механизм может быть человеком, компьютером или любым другим устройством, которое помогает выполнять данную функцию (рисунок 2).
Пример 2: блок – проектирование дома, управление – ГОСТы на проектирование, входы – параметры желаемого проекта, выход – готовый проект (чертежи), механизм – компьютер, ArchiCAD, его базы данных, проектировщик.
Одной из наиболее важных особенностей методологии SADT является постепенное введение все больших уровней детализации по мере создания диаграмм, отображающих модель. На рисунке 3 приведены четыре диаграммы и их взаимосвязи, показана структура SADT-модели. Каждый компонент модели может быть декомпозирован на другой диаграмме. Каждая диаграмма иллюстрирует "внутреннее строение" блока на родительской диаграмме.
Построение SADT-модели начинается с представления всей системы в виде простейшей компоненты – одного блока и дуг, изображающих интерфейсы с функциями вне системы. Поскольку единственный блок представляет всю систему как единое целое, имя, указанное в блоке, является общим. Это верно и для интерфейсных дуг – они также представляют полный набор внешних интерфейсов системы в целом.
Затем блок, который представляет систему в качестве единого модуля, детализируется на другой диаграмме с помощью нескольких блоков, соединенных интерфейсными дугами.
Во всех случаях каждая подфункция может содержать только те элементы, которые входят в исходную функцию. Кроме того, модель не может опустить какие-либо элементы, т.е., как уже отмечалось, родительский блок и его интерфейсы обеспечивают контекст. К нему нельзя ничего добавить, и из него не может быть ничего удалено.
Другое название SADT – система для передачи понимания.
Модель SADT представляет собой серию диаграмм с сопроводительной документацией, разбивающих сложный объект на составные части, которые представлены в виде блоков. Детали каждого из основных блоков показаны в виде блоков на других диаграммах. Каждая детальная диаграмма является декомпозицией блока из более общей диаграммы. На каждом шаге декомпозиции более общая диаграмма называется родительской для более детальной диаграммы.
Дуги, входящие в блок и выходящие из него на диаграмме верхнего уровня, являются точно теми же самыми, что и дуги, входящие в диаграмму нижнего уровня и выходящие из нее, потому что блок и диаграмма представляют одну и ту же часть системы.
Каждый блок на диаграмме имеет свой номер. Блок любой диаграммы может быть далее описан диаграммой нижнего уровня, которая, в свою очередь, может быть далее детализирована с помощью необходимого числа диаграмм. Таким путем формируется иерархия диаграмм.
Для того, чтобы указать положение любой диаграммы или блока в иерархии, используются номера диаграмм. Например, А21 является диаграммой, которая детализирует блок 1 на диаграмме А2. Аналогично, А2 детализирует блок 2 на диаграмме А0, которая является самой верхней диаграммой модели. На рисунке 4 показано типичное дерево диаграмм.
Некоторые дуги присоединены к блокам диаграммы обоими концами, у других же один конец остается неприсоединенным. Неприсоединенные дуги соответствуют входам, управлениям и выходам родительского блока. Источник или получатель этих пограничных дуг может быть обнаружен только на родительской диаграмме. Неприсоединенные концы должны соответствовать дугам на исходной диаграмме. Все граничные дуги должны продолжаться на родительской диаграмме, чтобы она была полной и непротиворечивой.
На SADT-диаграммах явно не указаны ни последовательность, ни время. Однако, обратные связи, итерации, продолжающиеся процессы и перекрывающиеся (по времени) функции могут быть изображены с помощью дуг. Различают семь типов связывания.
Тип случайной связности.
Связь между функциями мала или полностью отсутствует.
Тип логической связности.
Данные и функции попадают в общий класс или набор элементов, но функциональных отношений между ними нет.
Тип временной связности.
Функции связанны во времени, когда их данные используются одновременно или функции включаются параллельно, а не последовательно.
Тип процедурной связности.
Функции выполняются в течение одной и той же части цикла или процесса.
Тип коммуникационной связности.
Блоки используют одни и те же входные данные и/или производят одни и те же выходные данные.
Тип последовательной связности.
Выход одной функции служит входными данными для следующей функции. Моделирует причинно-следственные зависимости.
Тип функциональной связности.
Отражает наличие полной зависимости одной функции от другой.
Функциональная связь, показанная на рисунке 12, в математических терминах может иметь вид: C = g(B) = g(f(A))
Процесс моделирования в SADT является итеративной последовательностью шагов, приводящих к точному описанию системы.
Высокая эффективность SADT обусловлена разделением функций, выполняемых участниками создания SADT-проектов:
- эксперты являются источниками информации,
- авторы создают диаграммы и модели,
- библиотекарь координирует обмен письменной информацией,
- читатели рецензируют и утверждают модели,
- Комитет технического контроля принимает и утверждает модель.
В настоящее время существуют различные типы диаграмм SADT, отличающиеся назначением. Можно назвать IDEF0, IDEF1, IDEFX, IDEF3 и т.д.