Методология SADT разработана Дугласом Россом и получила дальнейшее развитие в работе. На ее основе разработана, в частности, известная методология IDEF0 (Icam DEFinition), которая является основной частью программы ICAM (Интеграция компьютерных и промышленных технологий), проводимой по инициативе ВВС США.
Методология SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях:
графическое представление блочного моделирования. Графика блоков и дуг SADT-диаграммы отображает функцию в виде блока, а интерфейсы входа/выхода представляются дугами, соответственно входящими в блок и выходящими из него. Взаимодействие блоков друг с другом описываются посредством интерфейсных дуг, выражающих «ограничения», которые в свою очередь определяют, когда и каким образом функции выполняются и управляются;
строгость и точность. Выполнение правил SADT требует достаточной строгости и точности, не накладывая в то же время чрезмерных ограничений на действия аналитика. Правила SADT включают:
ограничение количества блоков на каждом уровне декомпозиции (правило 3-6 блоков);
связность диаграмм (номера блоков);
уникальность меток и наименований (отсутствие повторяющихся имен);
синтаксические правила для графики (блоков и дуг);
разделение входов и управлений (правило определения роли данных).
отделение организации от функции, т.е. исключение влияния организационной структуры на функциональную модель.
Методология SADT может использоваться для моделирования широкого круга систем и определения требований и функций, а затем для разработки системы, которая удовлетворяет этим требованиям и реализует эти функции. Для уже существующих систем SADT может быть использована для анализа функций, выполняемых системой, а также для указания механизмов, посредством которых они осуществляются.
Нотация IDEF0 обычно используется для описания процессов верхнего уровня, хотя и позволяет описать всю деятельность компании. Отличительной возможностью нотации является возможность отображения не только входов и выходов каждого блока, но и «управления» и «механизмов». Вместе с дополнительными возможностями повышается и требования к квалификации бизнес-аналитиков, которые занимаются моделированием процессов в нотации IDEF0. Так, например, не всегда очевидно, что к «управлению» стоит относить технические нормативы и спецификации, но не следует относить должностные инструкции или начальника производства. Споры возникают и вокруг «механизмов» управления процессом, поскольку каждый специалист имеет склонность толковать данное понятие по-своему.
В Рекомендациях по стандартизации Р 50.1.028-2001 [47] приведена классификация-иерархия типов функций:
— деятельность (дело, бизнес) – совокупность процессов, выполняемых (протекающих) последовательно и/или параллельно, преобразующих множество материальных и/или информационных потоков во множество материальных и/или информационных потоков с другими свойствами. В модели IDEF0 деятельность описывается единственным блоком А0 на основной контекстной диаграмме А—0. При моделировании крупных, многопрофильных структур (фирм, организаций, предприятий), которые по своему статусу занимаются различными видами деятельности, последние представляют собой различные экземпляры класса «деятельность» и могут найти отражение в дополнительной контекстной диаграмме А—1;
— процесс (бизнес-процесс) – совокупность последовательно и/или параллельно выполняемых операций, преобразующая материальный и/или информационный потоки в соответствующие потоки с другими свойствами;
— операция – совокупность последовательно и/или параллельно выполняемых действий, преобразующих объекты, входящие в состав материального и/или информационного потока, в соответствующие объекты с другими свойствами;
— действие – преобразование какого-либо свойства материального или информационного объекта в другое свойство.
Взаимодействие функций между собой и внешним миром описывается в виде стрелок. В IDEF0 различают 5 видов стрелок:
— вход (англ. input) – материальный объект или информация, которые используются и преобразуются функцией для получения результата (выхода). Вход отвечает на вопрос «Что подлежит обработке?». В качестве входа может быть как материальный объект (сырье, деталь, экзаменационный билет), так и нематериальный (запрос к БД, вопрос преподавателя). Допускается, что функция может не иметь ни одной стрелки входа. Стрелки входа всегда рисуются входящими в левую грань функции;
— управление (англ. control) – управляющие, регламентирующие и нормативные данные, которыми руководствуется функция. Управление отвечает на вопрос «Что вызывает или регламентирует выполнение функция?». Управление влияет на функцию, но не преобразуется ей, т.е. выступает в качестве предписания или ограничения. В качестве управления могут быть стандарты, нормативы, правила, расценки, устные указания. Стрелки управления рисуются входящими в верхнюю грань функции. Если при построении диаграммы возникает вопрос, как правильно нарисовать стрелку сверху или слева, то рекомендуется ее рисовать как вход (стрелка слева);
— выход (англ. output) – материальный объект или информация, которые представляют результат выполнения функции. Выход отвечает на вопрос «Что является результатом выполнения функции?». В качестве выхода может быть как материальный объект (деталь, автомобиль, платежные документы, ведомость), так и нематериальный (выборка данных из БД, ответ на вопрос, устное указание). Стрелки выхода рисуются исходящими из правой грани функции;
— механизм (англ. mechanism) – ресурсы (средства), которые задействованы при выполнении функции. Механизм отвечает на вопрос «Кто выполняет функцию или посредством чего?». В качестве механизма могут быть персонал предприятия, студент, станок, оборудование, программа. Стрелки механизма рисуются входящими в нижнюю грань функции;
— вызов (англ. call) – стрелка указывает, что некоторая часть функции выполняется за пределами рассматриваемого блока. Стрелки выхода рисуются исходящими из нижней грани функции.
Перед построением модели необходимо определиться, какая модель (модели) системы будет построена. Это подразумевает определение ее типа «AS-IS», «SHOULD-BE» или «TO-BE», а также определения позиции, с точки зрения которой строится модель. «Точку зрения» лучше всего представлять себе как место (позицию) человека или объекта, в которое надо встать, чтобы увидеть систему в действии. Например, при построении модели работы продуктового магазина можно среди возможных претендентов, с точки зрения которых рассматривается система, выбрать продавца, кассира, бухгалтера или директора. Обычно выбирается одна точка зрения, наиболее полно охватывающая все нюансы работы системы, и при необходимости для некоторых диаграмм декомпозиции строятся диаграммы FEO, отображающие альтернативную точку зрения.
2. При разработке моделей следует избегать изначальной «привязки» функций исследуемой системы к существующей организационной структуре моделируемого объекта (предприятия, фирмы). Это помогает избежать субъективной точки зрения, навязанной организацией и ее руководством. Организационная структура должна явиться результатом использования (применения) модели.
3. На контекстной диаграмме отображается один блок, показывающий назначение системы. Для него рекомендуется отображать по 2–4 стрелки, входящие и выходящие с каждой стороны.
4. Количество блоков на диаграммах декомпозиции рекомендуется в пределах 3–6. Если на диаграмме декомпозиции два блока, то она, как правило, не имеет смысла. При наличии большого количества блоков диаграмма становится перенасыщенной и трудно читаемой.
5. Блоки на диаграмме декомпозиции следует располагать слева направо и сверху вниз. Такое расположение позволяет более четко отразить логику и последовательность выполнения функций (работ). Кроме этого, маршруты стрелок будут менее запутанными и иметь минимальное количество пересечений.
6. Отсутствие у функции одновременно стрелок управления и входа не допускается. Это означает, что запуск данной функции не контролируется и может произойти в любой произвольный момент времени либо вообще никогда.
7. У каждого блока должен быть как минимум один выход.
8. При построении диаграмм следует минимизировать число пересечений, петель и поворотов стрелок.
9. Обратные связи и итерации (циклические действия) могут быть изображены с помощью обратных дуг. Обратные связи по входу рисуются «нижней» петлей, обратная связь по управлению – «верхней».
10. Каждый блок и каждая стрелка на диаграммах должны обязательно иметь имя. Допускается использовать ветвление (декомпозицию) или слияние (композицию) стрелок. Это связано с тем, что одни и те же данные или объекты, порожденные одной функцией, могут использоваться сразу в нескольких других функциях. И наоборот, одинаковые или однородные данные и объекты, порожденные разными функциями, могут использоваться в одном месте.
11. При построении диаграмм для лучшей их читаемости может использоваться механизм туннелирования стрелок. Например, чтобы не загромождать лишними деталями диаграммы верхних уровней (родительские), на диаграммах декомпозиции начало дуги помещают в тоннель.
12. Все стрелки, входящие и выходящие из блока, при построении для него диаграммы декомпозиции должны быть отображены на ней. Исключение составляют затуннелированные стрелки. Имена стрелок, перенесенных на диаграмму декомпозиции, должны совпадать с именами, указанными на диаграмме верхнего уровня.
13. Если две стрелки проходят параллельно (начинаются из одной и той же грани одной функции и заканчиваются на одной и той же грани другой функции), то по возможности следует их объединить и дать единое обозначение.
14. Каждый блок на диаграммах должен иметь свой номер. Для того чтобы указать положение любой диаграммы или блока в иерархии, используются номера диаграмм.
Очень интересно было изучить и взять себе на заметку данную статью.