Методология структурного проектирования SADT

         

Блоки, для которых нет необходимости в дальнейшей декомпозиции



Рисунок 17-1. Блоки, для которых нет необходимости в дальнейшей декомпозиции.


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

Посмотрите на текущее расположение и высоту выбранного вами станка. Теперь опустите или поднимите его, чтобы вам было удобно работать. Затем измените его расположение, чтобы вы могли безопасно вставить, обработать и вынуть деталь. Может быть, для этого вам придется двигать, поворачивать или наклонять станок. Изучите устройство станка, прежде чем пытаться его налаживать.

Изменение уровня абстракции обычно происходит, когда модель уже имеет 2-3 уровня глубины, и их легко заметить. Небольшие изменения, однако, могут остаться незамеченными для автора. Обычно ошибки обнаруживаются в процессе рецензирования диаграмм. Свежий взгляд читательской аудитории определяет замену "что" на "как". Если изменение уровня абстракции не обнаружено во время цикла автор/читатель, то при следующей декомпозиции диаграммы оно обычно становится очевидным.



Дополнение моделей


Иерархические наборы SADT-диаграмм, называемые "моделями", вводят объект описания и уточняют его регулярным, управляемым и понятным образом. Это обеспечивается тем, что диаграммы модели всегда организованы в соответствии с порядком нумерации узлов. Это означает, что первым идет узел А-0, вторым - узел АО, третьим - узел А1, четвертым - узел All и т. д. Такой порядок расположения SADT-диаграмм является копией "древовидной" структуры, часто встречающейся в математике и информатике. Полная SADT-модель обычно читается двумя способами. Первый способ - обзорное чтение, когда читаются все диаграммы верхнего уровня, прежде чем перейти к диаграммам следующего. Это называется чтением "в ширину". Второй способ -детальное чтение, когда читают отдельную ветвь дерева вплоть до диаграмм самого нижнего уровня. Это называется чтением "в глубину".

Чтобы помочь читателям правильно двигаться по древовидному набору диаграмм, разработаны дополнительные средства. Примерами таких средств могут служить указатель диаграмм и указатель узлов. Они представляют собой составленные с отступами списки узлов или диаграмм ( по типу оглавления) , определяющих содержание модели. В указателе диаграмм перечисляются все диаграммы модели с приведенными в отдельной строке названием и номером узла каждой диаграммы. В указателе узлов перечисляются все блоки модели, причем в каждой отдельной строке записываются название и номер узла соответствующего блока. Таким образом, указатель узлов является просто более подробным, чем указатель диаграмм, списком. Указатели диаграмм для моделей обсуждаются в части VI. Обратите внимание на то, что оглавления (таблицы содержаний) служат как кратким конспектом системы, так и средством быстрого поиска при рассмотрении конкретного функционального фрагмента системы.

Рисунок 18-5. На диаграмме показан основной путь



Дополнения к диаграммам


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

SADT-диаграммы могут быть дополнены информацией в виде текстов, рисунков и глоссариев. Текст обычно представляет собой рассказ об одной из частей диаграммы. Рисунки - это картинки, поясняющие отдельные моменты. Глоссарий - набор определений объектов и функций, представленных на диаграмме. Чтобы показать, как SADT-аналитики дополняют диаграмму, мы напишем текст, составим глоссарий и сделаем рисунок для диаграммы подготовить рабочее место модели экспериментального механического цеха, приведенной на Рисунок 18-1. Мы выбрали в качестве образца диаграмму, находящуюся на самом нижнем уровне модели экспериментального механического цеха, хотя дополнения обычно приводятся для всех диаграмм модели.

Дополнительная информация записывается или представляется на стандартных SADT-бланках. Поскольку дополнения уточняют конкретную диаграмму модели, для идентификации и связывания дополнительной страницы с диаграммой, к которой она относится, используется принятая в SADT схема нумерации узлов. К номеру узла диаграммы добавляется буква и целое число. Буква определяет тип дополнения (Т - текст, Р -рисунок и Г - глоссарий), а число означает порядковый номер этой текстовой страницы среди других дополнительных страниц данной диаграммы. Обратите внимание, как номера узлов привязывают страницы с дополнениями на Рисунок 18-2, 18-3 и 18-4 к диаграмме подготовить рабочее место.



Достаточная детализированность



17.3. Достаточная детализированность

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

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

Чтобы разложить ручные инструменты вначале просмотрите детали технических операций, чтобы определить, какие именно операции будут выполнены. Разложите ручные инструменты в порядке, соответствующем порядку выполнения операций. Учтите местоположение станка в цехе, чтобы инструменты оказались под рукой во время каждой операции.



Генерация правил действия


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

Действие каждого блока описывается таблицей истинности, представляющей собой декартово произведение всех возможных сочетаний присутствия (отмечаемого с помощью "true"

или Т) и обязательного отсутствия (отмечаемого с помощью "false"

или F) входных дуг, дуг управления и выходных дуг. Каждый столбец такой таблицы становится тогда потенциальным правилом действия. (Иногда не имеет значения, принимает ли конкретная дуга участие в действии. В этих случаях представляется разумным использование буквы D. Однако запомните, что для полного отражения декартова произведения потребуется существенное увеличение размера таблиц.)

Обычно не все, что входит в таблицу, становится правилом действия, но каждое действие в таблице определено. Например, в табл. 19-1 представлено декартово произведение с отсутствующими или присутствующими дугами для блока подготовить рабочее место. Для экспериментального механического цеха реален только случай 1, когда все входные дуги и дуги управления участвуют в действии. Попробуйте применять этот

Условия

Варианты действий

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Выбранные инструменты


Станки в цехе


Чертежи и указания


Оборудованное рабочее место

T F T F T F T F T  F  T  F  T  F  T  F


T T F F T T F F T  T  F  F  T  T  F  F


T T T T F F F F T  T  T  T  F  F  F  F


T T T T T T T T T  F  F  F  F  F  F  F

Таблица 19-1. Все возможные действия блока "Подготовить рабочее место"

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



Дополнения к диаграммам и моделям

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



Примечания на диаграммах и моделях


<

Информация о свойствах


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

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

Не удивительно, что понимание системы будет не полным, пока не определены свойства функций и объектов. SADT требует, чтобы свойства определялись с использованием так называемых "меток свойств". Метка свойства - это замечание "с квадратом", соединенное с блоком или дугой с помощью зигзагообразной линии и описывающее это свойство. Описания не всех свойств конкретного блока или дуги помещаются на диаграмму, а только тех, которые проясняют содержание диаграммы. Например, на Рисунок 19-1 показано, как используются метки свойств для описания стандартной частоты выполнения функций в ходе выполнения работ с рабочим комплектом. Эти метки присоединены к блокам диаграммы.

На Рисунок 19-1 видно, как всего несколько меток могут подчеркнуть суть диаграммы. Однако для полноты для каждого блока или дуги должен составляться глоссарий, связанный с их свойствами. Наш опыт показывает, что помещение информации такого рода из глоссария в словарь данных - надежный способ записать эти сведения. Таким образом, описания свойств всегда доступны и их легко находить.

Рисунок 19-1. Добавление меток, описывающих свойства моделируемой системы



Изменение точки зрения



17.5. Изменение точки зрения

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

Обратитесь к диаграмме ПС/А23 из приложения С и рассмотрите функцию прибыть 6 магазин - действие в рамках общей задачи покупки продуктов с целью накормить семью. Попытки разложить этот блок приведут к функциям типа сесть в автобус и поехать на такси, а также к объектам типа переход и автобусная остановка. Неожиданно в модель проникает новый набор терминов. Для того чтобы \ декомпозировать блок прибыть в магазин, мы должны рассматривать человека как нечто, подвергающееся перемещению посредством сложной системы транспорта, а не как кормильца семьи. Поскольку точка зрения изменилась, мы решаем не декомпозировать эту функцию. Это хороший пример, потому что он указывает на часто встречающиеся ситуации, которые сигнализируют о возможной замене точки зрения:

Вы находите трудным дальнейшую декомпозицию "хорошо понятого" блока без изменения точки зрения модели.

Для декомпозиции блока требуется совершенно новая терминология.

Декомпозиция описывает систему, не входящую в рассмотрение.

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



Изменение уровня абстракции



17.4. Изменение уровня абстракции

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

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

Посмотрите на текущее расположение и высоту выбранного вами станка. Теперь опустите или поднимите его, чтобы вам было удобно работать. Затем измените его расположение, чтобы вы могли безопасно вставить, обработать и вынуть деталь. Может быть, для этого вам придется двигать, поворачивать или наклонять станок. Изучите устройство станка, прежде чем пытаться его налаживать.

Изменение уровня абстракции обычно происходит, когда модель уже имеет 2-3 уровня глубины, и их легко заметить. Небольшие изменения, однако, могут остаться незамеченными для автора. Обычно ошибки обнаруживаются в процессе рецензирования диаграмм. Свежий взгляд читательской аудитории определяет замену "что" на "как". Если изменение уровня абстракции не обнаружено во время цикла автор/читатель, то при следующей декомпозиции диаграммы оно обычно становится очевидным.



Начало проекта Успешный проект



Рисунок 20-1. Типичная структура SADT-проекта

контроля. Эти лица должны отвечать за разрешение конфликтов, проведение политики проекта, принятие результатов, интерпретацию и реализацию технического задания. Обеспечьте участие в работе Комитета нескольких специалистов с высоким уровнем компетентности, которые смогут отстоять свои решения. В процессе работы над проектом ваша организационная структура будет иметь вид, аналогичный приведенному на Рисунок 20-1.



Определение терминологии с помощью глоссария


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

Рисунок 18-1. Диаграмма, которую необходимо дополнить глоссарием, текстом и рисунками

Рисунок 18-2 Глоссарий новых терминов

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

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



Пояснение с помощью рисунков


Хотя для определения терминологии и изложения содержания используются текстовые описания, слова следует употреблять экономно. Мы советуем для пояснения тонких моментов и того, что трудно выразить словами, использовать, где это возможно, и рисунки. В SADT любое изображение, которое не является строго диаграммой, считается дополнительным рисунком. SADT-рисунки - это обычно либо картинки, либо диаграммы с дополнительными изображениями, связанные с конкретной диаграммой модели. Связь указывается с помощью добавления к номеру узла поясняемой диаграммы буквы Р и порядкового номера, как показано на Рисунок 18-4.

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

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

Рисунок 18-4. Рисунок, показывающий, что представляет собой дуга СТАНОК, ГОТОВЫЙ К РАБОТЕ

мени (например, график поступления заданий). На Рисунок 18-4 показано, как выглядит типичное готовое рабочее место.

Хорошие картинки незаменимы, но их нужно долго рисовать. Автор всегда должен иметь под рукой достаточный запас картинок, готовых к использованию - диаграммы самой SADT-модели. SADT-авторы обычно выделяют некоторые фрагменты изображения на нескольких диаграммах модели, чтобы подчеркнуть отдельные важные моменты. Диаграмма с дополнительной графикой может уточнить какие-либо детали, показывая различные группы дуг, описывая варианты действия блока или функционирование системы при изменяющейся окружающей среде, показывая основной поток данных, детализируя роли обратных связей, описывая принципиально неверные ситуации и случаи ошибочной трактовки или просто документируя важные изменения в диаграмме.
На Рисунок 18- 5 выделены преобразования, которые происходят с оборудованием (т.е. станками и инструментами), при превращении их в оборудованное рабочее место. Сравните это с текстовым описанием подготовки рабочего места, приведенным на Рисунок 18-3.

Для выделения каких-либо частей диаграммы чаще всего используют жирные линии. Мы, однако, при любой возможности пользуемся цветом. Цвет может отразить в диаграмме еще одну важную характеристику информации - разделение ее по типам. Попробуйте раскрасить дуги диаграммы подготовить рабочее место следующим образом: планы изобразите красным, оборудование - синим, остальную информацию -зеленым. Обратите внимание, как цвет по-новому осветил диаграмму, разбив представленные дугами объекты на типы. Раскрасив таким образом всю модель, можно описать влияние определенных данных на функции системы (например, на каких этапах нужен чертеж), а также указать те функции, которым необходим определенный тип данных (например, на каких этапах обрабатываются заготовки). Цвет - не универсальное, но очень эффективное средство, когда имеется не более 10 категорий.

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


Пояснение содержания с помощью текста


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

Подготовка хорошего текста требует времени, даже если текст относится к одному блоку. Поэтому обычно текст пишется, когда диаграмма перестает подвергаться изменениям. Иногда текст используется для уточнения важных моментов в процессе создания диаграммы. Мы настоятельно рекомендуем по мере возможности использовать графику и цикл автор/читатель, чтобы избавиться от неясностей и построить диаграмму точно описывающую реальность. После этого вы сможете без труда обобщить или уточнить диаграмму при помощи хорошо организованного и насыщенного фактами текста. Например, если бы мы написали текст сразу после первого наброска диаграммы выполнить задание, представленного на Рисунок 9-2, нам пришлось бы его несколько раз переписывать, потому что, как показано в части III, диаграмма подверглась существенным изменениям в результате рецензирования.

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

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



Рисунок 18-3 Подготовка рабочего места

 


Правила действия


Вспомните, что функциональные диаграммы

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

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

[Модель/] блок * действие : предусловия--> постусловия

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




Рисунок 19-2. Функция, имеющая единственное правило действия

Для функции блок правило действия действие определяется так: если истинны предусловия, выполняется функция блок

и делает истинными постусловия.

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

ICOM-код идентифицирует единичную дугу управления, входную или выходную дугу конкретного блока. Логические операторы

AND, OR и NOT

вместе со скобками представляют средства для записи различных сложных логических выражений. Например, на Рисунок 19-2 показан блок диаграммы ЭМЦ/А2, у которого только одно правило действия. Это правило утверждает, что функции. подготовить рабочее место необходимы выбранное инструменты, станки в цехе, чертеж и указания, чтобы рабочий подготовил оборудованное рабочее место. Это пример правила действия, которое утверждает необходимость участия всех входных дуг, дуг управления и выходных дуг в действии конкретного блока.

Часто возникают ситуации, в которых для правильного действия блока необходимо отсутствие одной или нескольких дуг. Дуги, не участвующие в конкретном действии, отмечаются горизонтальным штрихом (символизирующим NOT) над ICOM-кодом, если они входят в предусловие. Это означает, что объекты, представляемые этой дугой, должны отсутствовать для того, чтобы действие было выполнено. Например, действие 3 на Рисунок 19-3 утверждает, что план выполнения заданий не должен быть представлен в момент оценки задания, который предшествует приемке.



Рисунок 19-3. Функция, имеющая несколько правил действия

Встречаются также ситуации, когда только некоторые из дуг используются в процессе действия для производства выходов. Если входная дуга или дуга управления не участвуют в действии, они просто опускаются в предусловии. Аналогично если только часть выходов блока производится во время действии, то ICOM-коды для этих не создаваемых выходов опускаются в постусловиях. Например, отсутствие 02 и 03 в действии 4 означает, что в процессе этого действия вырабатывается только статус задания.

Иногда функции полностью используют свои входы или управления в процессе действия. В таких случаях эти входные дуги и дуги управления перечисляются в постусловии со штрихом отрицания

NOT над ними. Это означает, что объекты, представленные данными дугами, использованы во время действия функции и недоступны для других блоков или будущих действий.


Прекращение декомпозиции



17.2. Прекращение декомпозиции

Мы рекомендуем прекращать моделирование, когда уровень детализации модели удовлетворяет ее цель. Другими словами, вы должны закончить моделирование, когда почувствуете, что дальнейшее продвижение не будет удовлетворять информационные потребности проекта или вступит с ними в противоречие. Хотя интуитивно это правило понятно, ему трудно следовать, не оценив модель. В первое десятилетие использования SADT для создания моделей в различных прикладных областях были разработаны некоторые критерии для определения момента завершения моделирования. Этот опыт показал, что для отдельной модели, которая создается независимо от какой-либо другой модели, декомпозиция одного из ее блоков должна прекращаться, если:

блок содержит достаточно деталей;

необходимо изменить уровень абстракции., чтобы достичь большей детализации, блока;

необходимо изменить точку зрения, чтобы детализировать блок;

блок очень похож на другой блок той же модели;

блок очень похож на блок другой модели;

блок представляет тривиальную функцию.

Эти правила подчеркивают практические аспекты применения SADT для описания систем реального мира с конкретной целью (например, понять работу телефонной станции, чтобы определить требования к ее программному обеспечению). Предполагая, что большинство наших читателей будут применять SADT именно так, мы далее обсудим более подробно каждый из этих пунктов для иллюстрации приведенных правил и их важных моментов. Мы будем использовать диаграмму Рисунок 17-1, поскольку эта диаграмма находится на самом "дне" модели экспериментального механического цеха.



Принятие решения о завершении моделирования



17.8. Принятие решения о завершении моделирования

Вероятность принятия неправильного решения о завершении моделирования может быть уменьшена, если вы оцените каждый блок, который хотите детализировать, в соответствии с приведенными выше правилами. Поскольку большинство SADT-моделей обычно содержат от 10 до 320 диаграмм, лучшее время для начала оценки блоков, когда модель достигает этих размеров. Если какая-то часть модели достигла уровня, не требующего дальнейшей декомпозиции, обращайтесь к своему собственному критерию для определения момента завершения моделирования, прежде чем декомпозировать блок, который еще не был детализирован.

Помните, что критерии, приведенные в этой главе, носят характер рекомендаций, следовательно, их нельзя применять механически. Иногда может случиться так, что в какой-то конкретной ситуации два правила будут противоречить друг Другу. Разрешение таких конфликтов требует рассудительности и осмотрительности. А это результат накопленного опыта. Если сложилась подобная ситуация и вы не знаете, что делать дальше, направьте на рецензирование специальную папку. Используйте цикл автор/читатель для привлечения наиболее опытных SADT-аналитиков, тех, кто с большей вероятностью даст вам дополнительную информацию для принятия обоснованного решения. Кроме того, мы советуем вести записи по сложным вопросам, по тому, как они были решены и что этому способствовало. Такие записи помогут вам впоследствии, если окажется, что моделирование следовало закончить раньше. Они помогут также при определении и выборе объектов будущего моделирования.



в методологии SADT необходима координация



20.5. Резюме

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



17.9. Резюме

SADT-модели иерархичны, и поэтому их размер может увеличиваться со скоростью геометрической прогрессии. Хотя многие SADT-модели имеют глубину 5-6 уровней, они чаще всего состоят не более чем из нескольких десятков диаграмм и редко превосходят предел в 100 диаграмм. Декомпозиция модели или ее части немедленно прекращается, если модель достигла уровня детализации, достаточного для достижения цели. Это происходит, когда модель достаточно подробна, чтобы ответить на все вопросы, которые включает цель модели, а также при изменении уровня абстракции или точки зрения. Кроме того, декомпозиция блока может быть прекращена, если окажется, что функции блока очень сходны с другой частью модели, которая уже декомпозирована. Таким образом, достаточность деталей, изменение уровня абстракции, изменение точки зрения и сходная функциональность являются основными критериями, которые применяют SADT-аналитики для определения момента прекращения декомпозиции.


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


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

Сходные функции



17.6. Сходные функции

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

Рассмотрите блок выбрать станок на Рисунок 17-1 и блок выбрать инструменты

на Рисунок 16-3. Оба они связаны с некоторым выбором из заданного множества устройств. Блок выбрать инструменты делает это, подчиняясь следующему шагу задания, а блок выбрать станок -

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

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



Создание и рецензирование результатов работы



20.2. Создание и рецензирование результатов работы

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

SADT-папки так малы. Мы рекомендуем выпускать папку, когда у вас уже накоплена информация для рецензирования. Ее объем может быть различным в зависимости как от самого проекта, так и от опыта его участников. Приведем несколько примеров, когда размер папки может реально отразиться на продуктивности рецензирования:

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

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

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

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

Размер папки - это один из аспектов проектирования. Не менее важно количество



Создание модели



20.3. Создание модели

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

Начальные диаграммы и связанный с ними глоссарий составляют первую папку, которая проходит несколько циклов автор/читатель, пока не будут созданы стабильные диаграммы АО и А-0. После этого группа аналитиков определяет цели декомпозиции каждого блока диаграммы АО и назначает для каждого блока по одному автору. Автор детализирует свою часть модели и согласовывает интерфейсы на диаграмме АО с другими авторами. Таким образом коллектив авторов может быстро создать модель, не мешая друг другу (см. уроки в главах 23 и 24).

В ходе совместного творческого процесса каждый автор детализирует свою часть модели, которая рецензируется экспертами и другими авторами. Эта детализация как результат индивидуальной работы требует сбора автором информации (в основном путем чтения документов и опроса экспертов), ограничения каждого декомпозируемого объекта, определения точки зрения декомпозиции, создания диаграммы и ее рецензирования (см. уроки в главах 25 и 26). Для такой работы необходимы внутренняя дисциплинированность и понимание потенциальных проблем. Как и все SADT-авторы, мы выработали за годы работы принципы, позволяющих избежать ловушек.
Некоторые наиболее важные из них заключаются в выборе задания для очередного шага, в определении производительности своего труда и отслеживании необходимых ограничений.

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

Для повышения квалификации SADT-авторов существенное значение имеет их собственное определение производительности своего труда и оценка качества работы. Исключительно полезно для определения производительности труда фиксировать время, затраченное на выполнение конкретных работ при моделировании в рамках SADT. Просматривая эти записи, можно определить, какие виды деятельности вы выполняете хорошо, с какими у вас возникают затруднения и в чем вы далеки от оптимальности. В качестве примера можно использовать табл. 20-1.

Таблица 20-1. Сроки создания SADT-диаграмм.

Задание Совершенно заново Новая версия
Черчение 15-60 минут 10-30 минут
Критика 10-30 минут 10-30 минут
Комментирование 10-40 минут 5-20 минут
Количество диаграмм в день 2-5 5-10
С точки зрения соблюдения графика для успеха проекта важной является скорость качественного выполнения работы. Следите за тем, чтобы папки и модели не превышали критических размеров, приведенных в табл. 20-2.

Таблица 20-2. Критические размеры SADT-продуктов

Результаты работы Количество
Папка

Папка

Модель
2-6 диаграмм

3-6 циклов рецензирования

10-30 диаграмм
Результаты работ, превосходящие эти размеры, могут быть неудобны для рецензирования или не соответствовать целям проекта. Мы всегда заново переоцениваем как содержание подобных результатов, так и их соответствие плану проекта. Иногда нужны большие модели или папки, но чаще они свидетельствуют о наличии в проекте потенциальных проблем.




Стратегии дополнения модели



20.4. Стратегии дополнения модели

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

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

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

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

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

Атрибуты приемлемости (т.е. независимые испытатели, тесты, место и длительность тестирования) должны быть организованы вокруг структуры SADT-модели, если нельзя придумать лучшей организации. Для документирования этой информации используйте исполнителей.

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



Тривиальные функции



17.7. Тривиальные функции

Тривиальная функция - это такая функция понимание которой не требует никаких объяснений. В этом случае нам очевидна целесообразность отказа от декомпозиции, потому что роль SADT заключается в превращении сложного вопроса в понятный, а не в педантичной разработке очевидных деталей. Рассмотрим блок выбрать станок на Рисунок 17-1. Его свободно можно считать тривиальной функцией, потому что рабочие прекрасно знают, какой станок больше подходит для определенного рода обработки металла. Поэтому этот "тривиальный" блок не следует декомпозировать, чтобы не обидеть рабочих. Разумно избегать декомпозиции тривиальных блоков, особенно в организациях, имеющих доступ к государственным секретам. В таких случаях декомпозиция определенных блоков может принести больше вреда, чем пользы. Тривиальные функции лучше всего описываются небольшим объемом текста.

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



Уровни консенсуса



Рисунок 20-2. Уровни консенсуса

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

Он схематически изображен на Рисунок 20-2, где показаны также уровни достижения согласия. Обычно для достижения согласия со всей читательской аудиторией необходимо несколько папок.