Затем блок, который представляет систему в качестве единого модуля, детализируется на другой диаграмме с помощью нескольких блоков, соединенных интерфейсными дугами. Эти блоки определяют основные подфункции исходной функции. Данная декомпозиция выявляет полный набор подфункций, каждая из которых показана как блок, границы которого определены интерфейсными дугами. Каждая их этих подфункций может быть декомпозирована подобным образом в целях большей детализации.
Во всех случаях каждая подфункция может содержать только те элементы, которые входят в исходную функцию. Кроме того, модель не может опустить какие-либо элементы, т.е. как уже отмечалось, родительский блок и его интерфейсы обеспечивают контекст. К нему нельзя ничего добавить и из него нельзя ничего удалить.
Модель SADT представляет собой серию диаграмм с сопроводительной документацией, разбивающих сложный объект на составные части, которые изображены в виде блоков (рис.7). Детали каждого из основных блоков показаны в виде блоков на других диаграммах. Каждая детальная диаграмма является декомпозицией блока из диаграммы предыдущего уровня. На каждом шаге декомпозиции диаграмма предыдущего уровня называется родительской для более детальной диаграммы.
Дуги, входящие в блок и выходящие из него на диаграмме верхнего уровня, являются точно теми же самыми, что и дуги, входящие в диаграмму нижнего уровня и выходящие из нее, потому что блок и диаграмма изображают одну и ту же часть системы.
Рис. 6. Общее представление
Ниже (рис.8,9) приведены различные варианты выполнения функций и соединения дуг с блоками.
Некоторые дуги присоединены к блокам диаграмм обоими концами, у других же один конец остается не присоединенным. Не присоединенные дуги соответствуют входам, управлениям и выходам родительского блока. Источник или получатель этих пограничных дуг может быть обнаружен только на родительской диаграмме. Все граничные дуги должны продолжаться на родительской диаграмме, чтобы она была полной и непротиворечивой.
Верхняя диаграмма является родительской для нижней диаграммы
Рис.7. Иерархия диаграмм
Рис.8. Функции блоков А2 и А3 могут выполняться параллельно
Рис. 9. Соответствие интерфейсных дуг родительской (а) и детальной (б) диаграмм
На SADT диаграммах не указаны явно ни последовательность, ни время. Обратные связи, итерации, продолжающиеся процессы и перекрывающиеся (по времени) функции могут быть изображены с помощью дуг. Обратные связи (рис. 10) могут выступать в виде комментариев, замечаний, исправлений и т.д.
Системные требованияКомментарии
Предварительная
Спецификация
Улучшенный проект
Рис. 10. Пример обратной связи
Механизмы (дуги снизу) показывают средства, с помощью которых осуществляется выполнение функций. Механизм может быть человеком, компьютером или любым другим устройством, которое помогает выполнять данную функцию. Для примера рассмотрим предметную область «Налоговая система РФ» (рис11).
Каждый блок на диаграмме имеет свой номер. Для того, чтобы указать положение любой диаграммы или блока в иерархии, используются номера диаграмм. Например, А21 является диаграммой, которая детализирует блок А21 на диаграмме А2. Аналогично диаграмма А2 детализирует блок А2 на диаграмме А0, которая является самой верхней диаграммой модели. На рис. 12 показан пример дерева диаграмм.
Отчетность Отчетность
Налогоплательщиков вышестоящим
организациям
Отдел по работе с юридическими лицами
Рис. 11. Выполнение функций осуществляется с помощью механизмов
А0Работа Государственной налоговой инспекции
А1 А2 А3
Работа Работа Работа
с физическими с юридическими вспомогательных
лицами лицами подразделениями
А11 А12 А13
Работа Работа Работа
по подоходному по налогу по налогу
налогу на имущество на землю
Рис. 12. Иерархия диаграмм
Типы связей между функциями
Одним из важнейших моментов при моделировании бизнес-процессов организации с помощью метода SADT является точная согласованность типов связей между функциями. Различают по крайней мере связи семи типов (в порядке возрастания их относительной значимости):
· случайная;
· логическая;
· временная;
· процедурная;
· коммуникационная;
· последовательная;
· функциональная.
Случайная связь – показывает, что конкретная связь между функциями незначительна или полностью отсутствует (рис.13).
Это относится к ситуации, когда имена данных на SADT – дугах в одной диаграмме имеют слабую связь друг с другом. Крайний вариант этого случая:
Логическая связь - данные и функции собираются вместе благодаря тому, что они попадают в общий класс или набор элементов, но необходимых функциональных отношений между ними не обнаруживается.
Временная связь- представляет функции, связанные во времени, когда данные используются одновременно или функции включаются параллельно, а не последовательно.
Процедурная связь - Функции сгруппированы вместе благодаря тому, что они выполняются в течение одной и той же части цикла или процесса.
Коммуникационная связь – функции группируются благодаря тому, что они используют одни и те же исходные данные и/или производят одни и те же выходные данные.
Последовательная связь – выход одной функции служит входными данными для следующей функции. Связь между элементами на диаграмме является более тесной, чем в рассмотренных выше случаях, поскольку моделируются причинно-следственные зависимости.
Функциональная связь– все элементы функции влияют на выполнение одной и той же функции. Диаграмма, являющаяся чисто функциональной, не содержит чужеродных элементов, относящихся к последовательному или более слабому типу связи. Одним из способов определения функционально связанных диаграмм является рассмотрение двух блоков, связанных через управляющие дуги, как показано на рис.17.
В математических терминах необходимое условие для простейшего типа функциональной связи имеет вид:
С=g(B)=g(f(F)).
В таблице 1 ниже представлены все типы связей. Важно отметить, что уровни 4-6 устанавливают типы связей, которые разработчики считают важнейшими для получения диаграмм хорошего качества.
Таблица 1
Уровень значимости | Тип связи | Характеристика типа связи | |
Для функций | Для данных | ||
0 | случайная | случайная | Случайная |
1 | логическая | Функции одного и того же множества или типа (например, «редактировать все входы») | Данные одного и того же множества или типа |
2 | временная | Функции одного и того же периода времени (например, «операции инициализации») | Данные, используемые в каком либо временном интервале |
3 | процедурная | Функции, работающие в одной и той же фазе или итерации, например, «первый проход компилятора» | Данные используемые во время одной и той же фазы или итерации |
4 | коммуникационная | Функции, использующие одни и те же данные | Данные, на которые воздействует одна и та же деятельность |
5 | Последовательная | Функции, выполняющие последовательное преобразование одних и тех же данных | Данные, преобразуемые последовательными функциями |
6 | функциональная | Функции, объединяемые для выполнения одной функции | Данные, связанные с одной функцией |
Лекция 14. Моделирование потоков данных (процессов). Состав диаграмм потоков данных. Построение иерархии потоков данных. Сравнительный анализ SADT- моделей и диаграмм потоков данных
Диаграммы потоков данных (DFD) являются основным средством моделирования функциональных требований к проектируемой системе.
С их помощью эти требования представляются в виде иерархии функциональных компонентов (процессов), связанных потоками данных. Главная цель такого представления - продемонстрировать, как каждый процесс преобразует свои входные данные в выходные, а также выявить отношения между этими процессами.
Диаграммы потоков данных известны очень давно. В фольклоре упоминается пример использования DFD для реорганизации переполненного клерками офиса, относящийся к 20-м гг. осуществлявший реорганизацию консультант обозначил кружком каждого клерка, а стрелкой - каждый документ, передаваемый между ними. Используя такую диаграмму, он предложил схему реорганизации, в соответствии с которой два клерка, обменивающихся множеством документов, были посажены рядом, а клерки с малым взаимодействием были посажены на большом расстоянии друг от друга. Так появилась первая модель, представляющая собой потоковую диаграмму – предвестника DFD.