Модель SADT представляет собой серию диаграмм с сопроводительной документацией, разбивающих сложный объект на составные части, которые представлены в виде блоков. Детали каждого из основных блоков показаны в виде блоков на других диаграммах. Каждая детальная диаграмма является декомпозицией блока из более общей диаграммы. На каждом шаге декомпозиции более общая диаграмма называется родительской для более детальной диаграммы. Дуги, входящие в блок и выходящие из него на диаграмме верхнего уровня, являются точно теми же самыми, что и дуги, входящие в диаграмму нижнего уровня и выходящие из нее, потому что блок и диаграмма представляют одну и ту же часть системы (рисунок 2).
Рис.2. Структура SADT-модели. Декомпозиция диаграмм
На рисунке 3 представлены различные варианты выполнения функций и соединения дуг с блоками.
Рис. 3а) параллельное выполнение функций
Рис. 3 б) Варианты соединения дуг с блоками
Некоторые дуги присоединены к блокам диаграммы обоими концами, у других же один конец остается неприсоединенным. Неприсоединенные дуги соответствуют входам, управлениям и выходам родительского блока. Источник или получатель этих пограничных дуг может быть обнаружен только на родительской диаграмме. Неприсоединенные концы должны соответствовать дугам на исходной диаграмме. Все граничные дуги должны продолжаться на родительской диаграмме, чтобы она была полной и непротиворечивой.
На SADT-диаграммах не указаны явно ни последовательность, ни время. Обратные связи, итерации, продолжающиеся процессы и перекрывающиеся (по времени) функции могут быть изображены с помощью дуг. Обратные связи могут выступать в виде комментариев, замечаний, исправлений и т.д. (рисунок 4 а).
Рис. 4 ). Пример обратной связи
Как было отмечено, механизмы (дуги с нижней стороны) показывают средства, с помощью которых осуществляется выполнение функций. Механизм может быть человеком, компьютером или любым другим устройством, которое помогает выполнять данную функцию (рисунок 4 б).
Рис. 4 б). Пример механизма
Каждый блок на диаграмме имеет свой номер. Блок любой диаграммы может быть далее описан диаграммой нижнего уровня, которая, в свою очередь, может быть далее детализирована с помощью необходимого числа диаграмм. Таким образом, формируется иерархия диаграмм.
Для того, чтобы указать положение любой диаграммы или блока в иерархии, используются номера диаграмм. Например, А21 является диаграммой, которая детализирует блок 1 на диаграмме А2. Аналогично, А2 детализирует блок 2 на диаграмме А0, которая является самой верхней диаграммой модели. На рисунке 5 показано типичное дерево диаграмм.
Рис. 5. Иерархия диаграмм
2.3. Типы связей между функциями
Одним из важных моментов при проектировании ИС с помощью методологии SADT является точная согласованность типов связей между функциями. Различают по крайней мере семь типов связывания:
• случайная;
• логическая;
• временная;
• процедурная;
• коммуникационная;
• последовательная;
• функциональная.
Ниже каждый тип связи кратко определен и проиллюстрирован с помощью типичного примера из SADT. [10]
Тип случайной связности: наименее желательный.
Случайная связность возникает, когда конкретная связь между функциями мала или полностью отсутствует. Это относится к ситуации, когда имена данных на SADT-дугах в одной диаграмме имеют малую связь друг с другом. Крайний вариант этого случая показан на рисунке 6 а.
Рис. 6 а) Случайная связность
Тип логической связности. Логическое связывание происходит тогда, когда данные и функции собираются вместе вследствие того, что они попадают в общий класс или набор элементов, но необходимых функциональных отношений между ними не обнаруживается.
Тип временной связности. Связанные по времени элементы возникают вследствие того, что они представляют функции, связанные во времени, когда данные используются одновременно или функции включаются параллельно, а не последовательно.
Тип процедурной связности. Процедурно-связанные элементы появляются сгруппированными вместе вследствие того, что они выполняются в течение одной и той же части цикла или процесса. Пример процедурно-связанной диаграммы приведен на рисунке 6 б .Рис. 6 б) Процедурная связность
Тип коммуникационной связности.Диаграммы демонстрируют коммуникационные связи, когда блоки группируются вследствие того, что они используют одни и те же входные данные и/или производят одни и те же выходные данные (рисунок 6 в).
Рис.6 в) Коммуникационная связность
Тип последовательной связности. На диаграммах, имеющих последовательные связи, выход одной функции служит входными данными для следующей функции. Связь между элементами на диаграмме является более тесной, чем на рассмотренных выше уровнях связок, поскольку моделируются причинно-следственные зависимости (рисунок 13).
Тип функциональной связности. Диаграмма отражает полную функциональную связность, при наличии полной зависимости одной функции от другой. Диаграмма, которая является чисто функциональной, не содержит чужеродных элементов, относящихся к последовательному или более слабому типу связности. Одним из способов определения функционально-связанных диаграмм является рассмотрение двух блоков, связанных через управляющие дуги, как показано на рисунке 6 г).
Рис. 6 г) Последовательная связность
В математических терминах необходимое условие для простейшего типа функциональной связности, показанной на рисунке 6 д), имеет следующий вид (формула 1):
C = g(B) = g(f(A)) (1)
Ниже в таблице 2 представлены все типы связей, рассмотренные выше. Важно отметить, что уровни 4-6 устанавливают типы связностей, которые разработчики считают важнейшими для получения диаграмм хорошего качества. [18]
Рис. 6 д) Функциональная связность
Таблица 2
Описание типов связей
2.3. Сетевое планирование при разработке проекта ИС
Сетевое планирование – это комплекс графических и расчетных методов организационных мероприятий, обеспечивающих моделирование, анализ и динамическую перестройку плана выполнения сложных проектов и разработок. Характерной особенностью таких проектов является то, что они состоят из ряда отдельных, элементарных работ. Они обусловливают друг друга так, что выполнение некоторых работ не может быть начато раньше, чем завершены некоторые другие. [17]
Самые известные методы планирования и управления – метод критического пути (CPM) и система планирования и руководства программами разработок (PERT).
Основные этапы выполнения этих методов:
1) определяются отдельные работы, составляющие проект, их отношения предшествования и длительности;
2) проект представляется в виде сети, показывающей отношения предшествования среди работ, составляющих проект;
3) на основе построенной сети выполняются вычисления, в результате которых составляется временной график реализации проекта.
Сетевое планирование и управление включает 4 этапа:
1) структурное планирование;
2) календарное планирование;
3) оперативное управление.
Структурное планирование начинается с разбиения проекта на четко определенные операции, для которых определяется продолжительность, затем строится сетевой график, представляющий взаимосвязи работ проекта. Это позволяет детально анализировать все работы и вносить улучшения в структуру проекта еще до начала его реализации. [2]
Календарное планирование предусматривает построение календарного графика, определяющего моменты начала и окончания каждой работы и другие временные характеристики сетевого графика. Это позволяет выявить критические операции, которым необходимо уделять особое внимание, чтобы закончить проект в директивный срок.
В ходе оперативного управления применяются сетевой и календарный графики для составления периодических отчетов о ходе выполнения проекта, при этом сетевая модель может подвергнутся оперативной корректировке, вследствие чего будет разрабатываться новый календарный план остальной части проекта.