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

Методы моделирования бизнес-процессов.

Деление методов на функциональные и объектные является достаточно условным, поскольку наиболее развитые методы используют элементы обоих подходов. К числу наиболее распространенных методов относятся:

• метод функционального моделирования SADT (IDEF0);

• метод моделирования процессов IDEF3;

• моделирование потоков данных DFD;

• метод ARIS;

• метод Ericsson_Penker;

• метод моделирования, используемый в технологии Rational Unified Process.

и др.

 

Метод SADT (Structured Analysis and Design Technique) - классический метод процессного подхода к управлению. Основной принцип процессного подхода заключается в структурировании деятельности организации в соответствии с ее бизнес-процессами, а не организационно-штатной структурой.

Модель, основанная на бизнес-процессах, содержит в себе и организационно-штатную структуру предприятия.

Метод SADT разработан Дугласом Россом (SoftTech, Inc.) в 1969 г. для моделирования искусственных систем средней сложности.

Данный метод успешно использовался в военных, промышленных и коммерческих организациях США для решения широкого круга задач, таких как долгосрочное и стратегическое планирование, автоматизированное производство и проектирование, разработка ПО для оборонных систем, управление финансами и материально-техническим снабжением и др.

Метод SADT поддерживается Министерством обороны США, которое было инициатором разработки семейства стандартов IDEF (Icam DEFinition), являющегося основной частью программы ICAM (интегрированная компьютеризация производства), проводимой по инициативе ВВС США.

Метод SADT реализован в одном из стандартов этого семейства – IDEF0, который был утвержден в качестве федерального стандарта США в 1993 г., его подробные спецификации можно найти на сайте http://www.idef.com. Существует также российская версия данного стандарта [Методология функционального моделирования IDEF0. Руководящий документ РД IDEF0 – 2000. – М.: Госстандарт России, 2000]. Вместе со стандартом IDEF0 обычно используются стандарт моделирования процессов IDEF3 и стандарт моделирования данных IDEF1Х.

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

 

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

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

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

 

Постепенно, по мере создания диаграмм, в модель SADT вводится все больше уровней детализации. Каждый компонент модели может быть декомпозирован на другой диаграмме. Каждая диаграмма иллюстрирует «внутреннее строение» блока на родительской диаграмме. На рис. 2 приведены четыре диаграммы и их взаимосвязи, т.е. показана структура SADT модели. Условного объекта

 

 

Последовательность разработки SADT-модели:

1. собрать информацию об объекте, определить его границы;

2. определить цели исследования и точки зрения модели;

3. построить, обобщить и декомпозировать диаграммы;

4. распространить модель среди заинтересованных лиц;

5. оценить, рецензировать и комментировать;

6. принять модель.

 

Принципиально бизнес модель построенная по методу SADT, должна выглядеть следующим образом:

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

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

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

 

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

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

4. Бизнес-функции детализируются с помощью элементарных бизнес-операций.

5. Бизнес-операции описываются посредством задания алгоритма их выполнения.

Если коротко, то бизнес модель SADT это: контекст – бизнес процессы – бизнес-функции – элементарные бизнес-операции – алгоритмы бизнес-операций.

 

Пример создания SADT модели (модель банка и оформления кредита).

 

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

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

 

Стратегии декомпозиции при построении иерархии диаграмм SADT-модели.

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

2. Декомпозиция в соответствии с известными стабильными подсистемами – приводит к созданию набора моделей, по одной модели на каждую подсистему или важный компонент. Затем для описания всей системы должна быть построена составная модель, объединяющая все отдельные модели. Рекомендуется использовать разложение на подсистемы, только когда разделение на основные части системы стабильно. Нестабильность границ подсистем быстро обесценит как отдельные модели, так и их объединение.

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

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

Несколько рекомендаций, которыми пользуются опытные аналитики для определения момента завершения моделирования.

В целом рекомендуется прекращать моделирование, когда уровень детализации модели удовлетворяет ее цель.

Для отдельной модели, которая создается независимо от какой-либо другой модели, декомпозиция одного из ее блоков должна прекращаться, если:

1. Блок содержит достаточно деталей. Проверить достаточность деталей обычно совсем легко, необходимо просто спросить себя, отвечает ли блок на все или на часть вопросов, составляющих цель модели. Если блок помогает ответить на один или более вопросов, то дальнейшая декомпозиция может не понадобиться.

2. Необходимо изменить уровень абстракции, чтобы достичь большей детализации блока. Иногда при декомпозиции блока выясняется, что диаграмма начинает описывать, как функционирует блок, вместо описания того, что блок делает. В этом случае происходит изменение уровня абстракции – изменение сути того, что должна представлять модель (т.е. изменение способа описания системы). В SADT изменение уровня абстракции часто означает выход за пределы цели модели и, следовательно, это указывает на прекращение декомпозиции.

3. Необходимо изменить точку зрения, чтобы детализировать блок. Изменение точки зрения происходит примерно так же, как изменение уровня абстракции. Это чаще всего характерно для ситуаций, когда точку зрения модели нельзя использовать для декомпозиции конкретного блока, т. е. этот блок можно декомпозировать, только если посмотреть на него с другой позиции. Об этом может свидетельствовать заметное изменение терминологии.

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

5. Блок представляет тривиальную функцию. Тривиальная функция – это такая функция, понимание которой не требует никаких объяснений. В этом случае очевидна целесообразность отказа от декомпозиции, потому что роль SADT заключается в превращении сложного вопроса в понятный, а не в педантичной разработке очевидных деталей. В таких случаях декомпозиция определенных блоков может принести больше вреда, чем пользы. Тривиальные функции лучше всего описываются небольшим объемом текста. Следует заметить, что «тривиальный» не означает «бесполезный». Тривиальные функции выполняют очень важную роль, поясняя работу более сложных функций, а иногда и соединяя вместе основные подсистемы. Поэтому при анализе не следует пропускать тривиальные функции. Наоборот, их существование должно быть зафиксировано и они должны быть детализированы, как и любые другие функции. Однако следует предостеречь от больших затрат времени на анализ тривиальных функций системы. Усиленное внимание к мелочам может привести к созданию модели, которой будет недоставать абстракции, что сделает ее трудной для понимания и использования.

 

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

Метод SADT в наибольшей степени подходит для описания процессов верхнего уровня управления. Его основные преимущества заключаются в следующем:

1. полнота описания бизнес-процесса (управление, информационные и материальные потоки, обратные связи);

2. комплексность декомпозиции;

3. возможность агрегирования и детализации потоков данных и информации (разделение и слияние дуг);

4. наличие жестких требований, обеспечивающих получение моделей стандартного вида;

5. простота документирования процессов;

6. соответствие подхода к описанию процессов стандарту ISO 9000:2000.

В то же время метод SADT обладает рядом недостатков:

1. сложность восприятия (большое количество дуг на диаграммах);

2. большое количество уровней декомпозиции;

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

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