Методология SADT
Оглавление
Введение
SADT возникла
в конце 60-х годов в ходе
революции, вызванной
- Анализ — определение того, что система будет делать,
- Проектирование — определение подсистем и их взаимодействие,
- Реализация — разработка подсистем по отдельности, объединение — соединение подсистем в единое целое,
- Тестирование — проверка работы системы,
- Установка — введение системы в действие,
- Эксплуатация — использование системы.
SADT (Structured Analysis and Design Technique) — методология структурного анализа и проектирования, интегрирующая процесс моделирования, управление конфигурацией проекта, использование дополнительных языковых средств и руководство проектом со своим графическим языком. Методология SADT – одна из самых известных методологий анализа и проектирования систем. Она является, пожалуй, единственной методологий, отражающей такие характеристики, как управление, обратная связь и ресурсы. Другая особенность SADT заключается в том, что она развивалась как язык описания функционирования систем общего вида, тогда как в других структурных методологиях упор чаще делается на проектирование программного обеспечения.
Не смотря на кажущуюся старость этой методологии, SADT и сегодня остается востребованным средством проектирования и структурного анализа. Современный уровень информационных технологий предоставляет богатый выбор методов для создания автоматизированной поддержки SADT. Наиболее доступным на сегодняшний день SADT-средством является Design/IDEF (Meta Software Corp.) — изначально построенный в рамках программы интегрированной компьютеризации производства и широко используемый ныне в различных областях деятельности. Автоматизированная поддержка SADT происходит в развитии от просто графического средства до программного обеспечения, функционирующего на базе знаний более общих понятий моделирования. Такие развитые средства обладают способностью понимать семантику взаимосвязанной сети диаграмм SADT и множества моделей, а также объединять это множество сведений и правил с другими технологиями.
Следующим этапом развития SADT является методология IDEF0. Моделирование средствами IDEF0 является первым этапом изучения любой системы, поэтому необходимо подробно изучить способы моделирования процессов с помощью SADT и IDEF0.
Чтобы изучить данную методологию необходимо:
1) Изучить теоретическое описание методологии (все компоненты диаграмм и их использование в SADT-диаграммах)
2) Изучить практическое
применение методологии (
Глава 1. Теоретические основы методологии SADT
Прежде чем перейти к практическому применению данной методологии нужно, прежде всего, изучить теоретические основы. Это, прежде всего:
- История разработки и появления методологии функционального моделирования SADT
- Состав функциональной модели (собственно, составляющие части диаграмм)
- Иерархия диаграмм (изучение декомпозиции функциональных блоков SADT-диаграмм)
1.1. История возникновения
Дуглас Т. Росс часть своих PLEX-теорий относящихся к методологии и языку описания систем, назвал "Методология структурного анализа и проектирования" (SADT). Исходная работа над SADT началась в 1969 г. Первое ее крупное приложение было реализовано в 1973 г. при разработке большого аэрокосмического проекта, когда она была несколько пересмотрена сотрудниками SofTech, Inc. В 1974 г. SADT была еще улучшена и передана одной из крупнейших европейских телефонных компаний. Появление SADT на рынке произошло в 1975 г. после годичного оформления в виде продукта. К 1981 г. SADT уже использовали более чем в 50 компаниях при работе более чем над 200 проектами, включавшими более 2000 людей и охватывавшими дюжину проблемных областей, в том числе телефонные сети, аэрокосмическое производство, управление и контроль, учет материально-технических ресурсов и обработку данных. Ее широкое распространение в настоящее время в европейской, дальневосточной и американской аэрокосмической промышленности (под названием IDEFO) позволяет эти цифры существенно увеличить. Таким образом, SADT выделяется среди современных методологий описания систем благодаря своему широкому применению. Почему SADT имеет такое широкое применение? Во-первых, SADT является единственной методологией, легко отражающей такие системные характеристики, как управление, обратная связь и исполнители. Это объясняется тем, что SADT изначально возникла на базе проектирования систем более общего вида в отличие от других структурных методов, "выросших" из проектирования программного обеспечения. Во-вторых, SADT в дополнение к существовавшим в то время концепциям и стандартам для создания систем имела развитые процедуры поддержки коллективной работы и обладала преимуществом, связанным с ее применением на ранних стадиях создания системы. Кроме того, широкое использование SADT показало, что ее можно сочетать с другими структурными методами. Это достигается использованием графических SADT-описаний в качестве схем, связывающих воедино различные методы, примененные для описания определенных частей системы с различным уровнем детализации. Таким образом, неадекватные спецификации систем того времени вызвали создание графического языка SADT, а его усиленное использование преобразовало SADT в законченную методологию, способную повысить качество продуктов, создаваемых на ранних стадиях развития проекта. Итак, SADT началась как язык описания функционирования систем общего вида, а по мере применения ее процедуры описания систем были улучшены и дополнены.
- Предпостылки к созданию и появление методологии SADT
Традиционные подходы к созданию систем приводили к возникновению многих проблем. Не было единого подхода. Привлечение пользователя к процессу разработки не контролировалось. Проверка на согласованность проводилась нерегулярно или вообще отсутствовала. Результаты одного этапа не согласовывались с результатами других. Процесс с трудом поддавался оценкам, как качественным, так и количественным. Утверждалось, что когда создатели систем пользуются методологиями типа структурного программирования и проектирования сверху вниз, они решают либо не поставленные задачи, либо плохо поставленные, либо хорошо поставленные, но неправильно понятые задачи. Кроме того, ошибки в создании систем становились все менее доступны выявлению с помощью аппаратных средств или программного обеспечения, а наиболее катастрофические ошибки допускались на ранних этапах создания системы. Часто эти ошибки были следствием неполноты функциональных спецификаций или несогласованности между спецификациями и результатами проектирования. Проектировщики знали, что сложность систем возрастает и что определены они часто весьма слабо. Рост объема и сложности систем является жизненной реалией. Эту предпосылку нужно было принять как неизбежную. Но ошибочное определение системы не является неизбежным: оно - результат неадекватности методов создания систем. Вскоре был выдвинут тезис: совершенствование методов анализа есть ключ к созданию систем, эффективных по стоимости, производительности и надежности. Для решения ключевых проблем традиционного создания систем широкого профиля требовались новые методы, специально предназначенные для использования на ранних стадиях процесса. Применение SADT проистекало из этого убеждения.
1.3. Состав функциональной модели
Методы, подобные SADT, на начальных этапах создания системы позволяли гораздо лучше понять рассматриваемую проблему. А это сокращает затраты как на создание, так и на эксплуатацию системы, а кроме того, повышает ее надежность. SADT - это способ уменьшить количество дорогостоящих ошибок за счет структуризации на ранних этапах создания системы, улучшения контактов между пользователями и разработчиками и сглаживания перехода от анализа к проектированию.
Рис.1.1. Функциональный блок и интерфейсные дуги
Основные элементы этой методологии основываются на следующих концепциях:
- графическое представление блочного моделирования. Графика блоков и дуг SADT-диаграммы отображает функцию в виде блока, а интерфейсы входа/выхода представляются дугами, соответственно входящими в блок и выходящими из него. Взаимодействие блоков друг с другом описываются посредством интерфейсных дуг, выражающих "ограничения", которые в свою очередь определяют, когда и каким образом функции выполняются и управляются (Рис.1.1.);
- строгость и точность. Выполнение правил SADT требует достаточной строгости и точности, не накладывая в то же время чрезмерных ограничений на действия аналитика. Правила SADT включают:
- ограничение количества блоков на каждом уровне декомпозиции (правило 3-6 блоков);
- связность диаграмм (номера блоков);
- уникальность меток и наименований (отсутствие повторяющихся имен);
- синтаксические правила для графики (блоков и дуг);
- разделение входов и управлений (правило определения роли данных).
- отделение организации от функции, т.е. исключение влияния организационной структуры на функциональную модель.
Подход SADT (технология структурированного анализа и разработки) относится к классу формальных методов , используемых при анализе и разработке систем . Несмотря на то , что вполне допустима независимая разработка функциональных моделей , методология SADT предполагает ведение структурированного проекта анализа , в процессе которого происходит их создание . В дополнение к функциональному моделированию SADT структурный анализ предполагает построение информационных моделей данных и диаграмм состояний , которые моделируют поведение системы во времени.
Часто разработка моделей применяется для документирования ситуации , сложившейся к определенному моменту (модели “как есть” – “as is” ). Впоследствии они применяются при создании новых моделей функционирования системы (модели “как должно быть “ – “to be” ), а также для проверки моделей “to be ”, с тем чтобы удостовериться , что предполагаемые изменения действительно повлекут улучшение функционирования системы.
В дополнение к алгоритмизации процесса построения предполагаемой системы модели “to be” используются для планирования загрузки частей системы, калькуляции бюджета и распределения ресурсов, при построении плана реорганизации системы, определяющего действия по переводу системы из состояния “as is” в состояние ”to be” .
Преимущества, получаемые от разработки моделей “as is”, должны быть сопоставимы с затратами средств и времени , которые для этого необходимы. В литературе без труда можно найти многочисленные примеры систем, изначально построенных для решения несоответствующих их истинному назначению задач. “As is”- моделирование позволяет обойти подобные трудности . С другой стороны, если имеется определенный уровень понимания задачи в целом (как это часто случается при разработке информационных систем), затраты средств на разработку “as is”-моделей могут быть неоправданными.
Методология SADT может использоваться для моделирования широкого круга систем и определения требований и функций, а затем для разработки системы, которая удовлетворяет этим требованиям и реализует эти функции. Для уже существующих систем SADT может быть использована для анализа функций, выполняемых системой, а также для указания механизмов, посредством которых они осуществляются.
В основе методологии SADT лежат два основных принципа:
- SA-блоки, на основе которых создается иерархическая многоуровневая модульная система, каждый уровень которой представляет собой законченную систему (блок), поддерживаемую и контролируемую системой (блоком), находящейся над ней.
- Декомпозиция. Использование этой концепции позволяет разделить каждый блок, понимаемый как единое целое, на свои составляющие, описываемые на более детальной диаграмме. Процесс декомпозиции проводится до достижения нужного уровня подробности описания. Диаграмма ограничивается 3-6 блоками для того, чтобы детализация осуществлялась постепенно. Вместо одной громоздкой модели используется несколько небольших взаимосвязанных моделей, значения которых взаимно дополняют друг друга, делая понятной структуризацию сложного объекта.
Обычно SADT-методология
применяется на ранних этапах жизненного
цикла информационной системы.
SADT-модель – это точное, полное и адекватное
текстовое и графическое описание системы
имеющей конкретное назначение, выполненное
в виде иерархически организованной совокупности
диаграмм, созданных на основе стандартного
представления данных. Это описание системы
у которой есть единственный субъект,
цель и одна точка зрения с помощью SADT-методологии.
Такая модель представляет собой совокупность
иерархически упорядоченных и взаимосвязанных
диаграмм, организованных в виде древовидной
структуры, где верхняя диаграмма является
наиболее общей, а самые нижние наиболее
детализированы.
В SADT-моделях используются как естественный,
так и графический языки. Для передачи
информации о конкретной системе источником
естественного языка служат люди, описывающие
систему, а источником графического языка
- сама методология SADT. Графический язык SADT обеспечивает структуру и точную
передачу модели семантики естественного
языка. Графический язык SADT организует
естественный язык вполне определенным
и однозначным образом, за счет чего SADT
позволяет описывать системы, которые
до недавнего времени не поддавались адекватному
представлению.
С точки зрения SADT модель может быть сосредоточена
либо на функциях системы, либо на ее объектах.
SADT-модели, ориентированные на функции,
принято называть функциональными моделями,
а ориентированные на объекты системы
– моделями данных. Функциональная модель представляет с требуемой степенью
детализации систему функций, которые
в свою очередь отражают свои взаимоотношения
через объекты системы. Полная методология
SADT поддерживает создание множества моделей
для более точного описания сложной системы.
Согласно авторам SADT процесс моделирования, как процесса создания непротиворечивой
и полезной системы описаний, состоит из четырех последовательных
этапов:
- Сбор информации об исследуемой области.
2. Документирование полученной информации.
3. Представление ее в виде модели.
4. Уточнение модели посредством итеративного рецензирования.
Таким образом, SADT выделяется среди современных методологий описания систем благодаря своему широкому применению. Почему SADT имеет такое широкое применение? Потому что:
- SADT является единственной методологией, легко отражающей такие системные характеристики, как управление, обратная связь и исполнители. Это объясняется тем, что SADT изначально возникла на базе проектирования систем более общего вида в отличие от других структурных методов, "выросших" из проектирования программного обеспечения.
- SADT в дополнение к существовавшим в то время концепциям и стандартам для создания систем имела развитые процедуры поддержки коллективной работы и обладала преимуществом, связанным с ее применением на ранних стадиях создания системы. Кроме того, широкое использование SADT показало, что ее можно сочетать с другими структурными методами. Это достигается использованием графических SADT-описаний в качестве схем, связывающих воедино различные методы, примененные для описания определенных частей системы с различным уровнем детализации.
Результатом применения методологии SADT является модель, которая состоит из диаграмм, фрагментов текстов и глоссария, имеющих ссылки друг на друга. Диаграммы - главные компоненты модели, все функции ИС и интерфейсы на них представлены как блоки и дуги. Место соединения дуги с блоком определяет тип интерфейса.
- Дуга
Дуга изображается одинарной линией со стрелкой на конце. Они изображают такие понятия, как данные или объекты, связанные с выполняемыми функциями, и описываются существительными или существительными с определениями.
Линия дуги может быть прямой или изогнутой. Поскольку дуга часто изображает не один, а несколько данных (объектов), то она может иметь разветвление или соединение.
Изображение дуг должно соответствовать следующим синтаксическим правилам:
- могут быть изогнуты только на 90°;
- изображаются сплошной линией;
- чертятся только горизонтально или вертикально (но не по диагонали);
- должны касаться внешней границы блока, но не должны входить в блок;
- должны присоединяться к сторонам блока, но не к углам.
Взаимоотношения между дугами и блоками
Между данными (объектами) и функциями возможны четыре вида отношений: вход, управление, выход и механизм. Каждый вид изображается дугой, связанной с определенной стороной блока: левая сторона предназначена для входных дуг (входов) Х правая для выходных (выходов), верхняя сторона для управленческих дуг и нижняя для дуг механизмов.
Входные дуги изображают данные (объекты), используемые и преобразуемые функциями (документы, сырье, детали).
Выходные дуги изображают данные (объекты), в которые преобразуются входы (документы, счета, деньги, устройства).
Управляющие дуги представляют информацию, управляющую действиями функций (законы, приказы, системные требования, планы).
Дуги механизмов изображают физические аспекты функций (людей, склады, организации, приборы). С помощью дуг механизмов имеется возможность точно определять, какие ресурсы требуются для реализации конкретной функции, кто будет выполнять ее и т.д.
- Блоки
На диаграмме блоки выстраиваются по степени важности. Такой относительный порядок называется доминированием. Доминирование понимается как влияние одного блока диаграммы на другие. Наиболее доминирующий блок обычно размещается в верхнем левом углу диаграммы, а наименее доминирующий - в правом нижнем.
Другим методом указания доминирования блоков является их нумерация: блок с меньшим номером будет иметь большую степень доминирования над блоком с большим номером.
Одной из наиболее важных особенностей методологии SADT является постепенное введение все больших уровней детализации по мере создания диаграмм, отображающих модель.
В приложении А, где приведены четыре диаграммы и их взаимосвязи, показана структура SADT-модели. Каждый компонент модели может быть декомпозирован на другой диаграмме. Каждая диаграмма иллюстрирует "внутреннее строение" блока на родительской диаграмме.
1.2. Иерархия диаграмм
Описание модели SADT организовано в виде иерархии упорядоченных и взаимосвязанных диаграмм, что отображает функциональную структуру объекта. Процесс моделирования начинается с представления работы как единого целого – одного функционального блока с интерфейсными дугами, эта диаграмма называется контекстной.
Построение SADT-модели начинается с представления всей системы в виде простейшей компоненты - одного блока и дуг, изображающих интерфейсы с функциями вне системы. Поскольку единственный блок представляет всю систему как единое целое, имя, указанное в блоке, является общим. Это верно и для интерфейсных дуг - они также представляют полный набор внешних интерфейсов системы в целом.
Затем блок, который представляет систему в качестве единого модуля, детализируется на другой диаграмме с помощью нескольких блоков, соединенных интерфейсными дугами. Эти блоки представляют основные подфункции исходной функции. Данная декомпозиция выявляет полный набор подфункций, каждая из которых представлена как блок, границы которого определены интерфейсными дугами. Каждая из этих подфункций может быть декомпозирована подобным образом для более детального представления.
Во всех случаях каждая подфункция может содержать только те элементы, которые входят в исходную функцию. Кроме того, модель не может опустить какие-либо элементы, т.е., как уже отмечалось, родительский блок и его интерфейсы обеспечивают контекст. К нему нельзя ничего добавить, и из него не может быть ничего удалено.
Модель SADT представляет собой серию диаграмм с сопроводительной документацией, разбивающих сложный объект на составные части, которые представлены в виде блоков. Детали каждого из основных блоков показаны в виде блоков на других диаграммах. Каждая детальная диаграмма является декомпозицией блока из более общей диаграммы. На каждом шаге декомпозиции более общая диаграмма называется родительской для более детальной диаграммы.
Дуги, входящие в блок и выходящие из него на диаграмме верхнего уровня, являются точно теми же самыми, что и дуги, входящие в диаграмму нижнего уровня и выходящие из нее, потому что блок и диаграмма представляют одну и ту же часть системы.
На рисунках 1.2 — 1.4 представлены различные варианты выполнения функций и соединения дуг с блоками.
Рис. 1.2. Одновременное выполнение
Рис. 1.3. Соответствие должно быть полным и непротиворечивым
Некоторые дуги присоединены к блокам диаграммы обоими концами, у других же один конец остается неприсоединенным. Неприсоединенные дуги соответствуют входам, управлениям и выходам родительского блока. Источник или получатель этих пограничных дуг может быть обнаружен только на родительской диаграмме. Неприсоединенные концы должны соответствовать дугам на исходной диаграмме. Все граничные дуги должны продолжаться на родительской диаграмме, чтобы она была полной и непротиворечивой.
На SADT-диаграммах не указаны явно ни последовательность, ни время. Обратные связи, итерации, продолжающиеся процессы и перекрывающиеся (по времени) функции могут быть изображены с помощью дуг. Обратные связи могут выступать в виде комментариев, замечаний, исправлений и т.д. (Рис. 1.4).
Рис. 1.4. Пример обратной связи
Как было отмечено, механизмы (дуги с нижней стороны) показывают средства, с помощью которых осуществляется выполнение функций. Механизм может быть человеком, компьютером или любым другим устройством, которое помогает выполнять данную функцию (Рис. 1.5).
Рис. 1.5. Пример механизма
Каждый блок на диаграмме имеет свой номер. Блок любой диаграммы может быть далее описан диаграммой нижнего уровня, которая, в свою очередь, может быть далее детализирована с помощью необходимого числа диаграмм. Таким образом, формируется иерархия диаграмм.
Для того, чтобы
указать положение любой
Типы связей между функциями
Одним из важных моментов при проектировании ИС с помощью методологии SADT является точная согласованность типов связей между функциями. Различают по крайней мере семь типов связывания (Таблица 1.1)
Таблица 1.1.
Тип связи |
Относительная значимость |
Случайная |
0 |
Логическая |
1 |
Временная |
2 |
Процедурная |
3 |
Коммуникационная |
4 |
Последовательная |
5 |
Функциональная |
6 |
Ниже каждый тип связи кратко определен и проиллюстрирован с помощью типичного примера из SADT.
(0) Тип случайной связности: наименее желательный.
Случайная связность возникает, когда конкретная связь между функциями мала или полностью отсутствует. Это относится к ситуации, когда имена данных на SADT-дугах в одной диаграмме имеют малую связь друг с другом. Крайний вариант этого случая показан на рисунке 1.7.
Рис. 1.7. Случайная связность
(1) Тип логической связности. Логическое связывание происходит тогда, когда данные и функции собираются вместе вследствие того, что они попадают в общий класс или набор элементов, но необходимых функциональных отношений между ними не обнаруживается.
(2) Тип временной связности. Связанные по времени элементы возникают вследствие того, что они представляют функции, связанные во времени, когда данные используются одновременно или функции включаются параллельно, а не последовательно.
- Тип процедурной связности. Процедурно-связанные элементы появляются сгруппированными вместе вследствие того, что они выполняются в течение одной и той же части цикла или процесса. Пример процедурно-связанной диаграммы приведен на рисунке 1.8.
Рис. 1.8. Процедурная связность
(4) Тип коммуникационной
Рис. 1.9. Коммуникационная связность
(5) Тип последовательной
Рис. 1.10. Последовательная связность
(6) Тип функциональной связности. Диаграмма отражает полную функциональную связность, при наличии полной зависимости одной функции от другой. Диаграмма, которая является чисто функциональной, не содержит чужеродных элементов, относящихся к последовательному или более слабому типу связности. Одним из способов определения функционально-связанных диаграмм является рассмотрение двух блоков, связанных через управляющие дуги, как показано на рисунке 1.11.
Рис. 1.11. Функциональная связность
Ниже в таблице 1.2. представлены все типы связей, рассмотренные выше. Важно отметить, что уровни 4-6 устанавливают типы связностей, которые разработчики считают важнейшими для получения диаграмм хорошего качества.
Таблица 1.2.
Значимость |
Тип связности |
Для функций |
Для данных |
0 |
Случайная |
Случайная |
Случайная |
1 |
Логическая |
Функции одного и того же множества или типа (например, "редактировать все входы") |
Данные одного и того же множества или типа |
2 |
Временная |
Функции одного и того
же периода времени (например, |
Данные, используемые в каком-либо временном интервале |
3 |
Процедурная |
Функции, работающие в одной и той же фазе или итерации (например, "первый проход компилятора") |
Данные, используемые во время одной и той же фазы или итерации |
4 |
Коммуникационнная |
Функции, использующие одни и те же данные |
Данные, на которые воздействует одна и та же деятельность |
5 |
Последовательная |
Функции, выполняющие последовательные преобразования одних и тех же данных |
Данные, преобразуемые последовательными функциями |
6 |
Функциональная |
Функции, объединяемые для выполнения одной функции |
Данные, связанные с одной функцией |

- Методология UML
- Методология анализа делового и финансового состояния фирмы
- Методология анализа рыка кинопроката и кинопоказа и его состояние
- Методология анализа хозяйственной деятельности предприятий городского хозяйства
- Методология антикризисного управления организацией
- Методология бухгалтерского учета
- Методология бухгалтерского финансового учета материалов
- Методологические проблемы исследования социальной стратификации в российском обществе
- Методологические проблемы синергетики
- Методологические проблемы теории социальной работы
- Методологические факторы эффективности управления
- Методологический основы и подходы к оценке и управлению стоимостью имущества предприятия
- Методологический подход Давида Рикардо к анализу ренты, прибыли и заработной платы
- Методология CVP-анализа как основа формирования тарифной политики водоканалов