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

         

Завершение моделирования

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



Идентификация декомпозиции номерами узлов


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

Рис 3-1. Контекстная диаграмма модели

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

Таким образом, каждая диаграмма представляет собой некоторую законченную часть всей модели. В методологии SADT идентифицируется каждая диаграмма данной модели посредством того, что называется "номер узла". Номер узла для контекстной диаграммы имеет следующий вид: название модели или аббревиатура, косая черта, заглавная буква A (Activity в функциональных диаграммах), дефис и ноль. Например, номером узла для контекстной диаграммы модели экспериментального механического цеха является ЭМЦ/А-0. Номером узла диаграммы, декомпозирующей контекстную диаграмму, является тот же номер узла, но без дефиса (например, ЭМЦ/АО). Все другие номера узлов образуются посредством добавления к номеру узла родительской диаграммы номера декомпозируемого блока. На рис. 3-2 показаны две диаграммы модели экспериментального механического цеха. Номер узла на первой диаграмме - ЭМЦ/АО, а номер узла на второй диаграмме - ЭМЦ/А1. Диаграмма ЭМЦ/А1 декомпозирует блок 1 диаграммы ЭМЦ/АО. (Первый ноль при образовании номера узла принято опускать, поэтому вместо ЭМЦ/А01 пишется ЭМЦ/А1.)



Идентификация версий диаграмм С-номерами


При создании SADT-модели одну и ту же диаграмму вместе с ее блоками и дугами перечерчивают несколько раз, что приводит к появлению различных ее вариантов. Чтобы различать разные версии одной и той же диаграммы, в SADT используется схема контроля конфигурации диаграмм, основанная на хронологических номерах, или С-номерах. С-номерные коды образуются из инициалов автора и последовательных номеров. Эти коды ставятся в нижнем правом углу SADT-бланка. Например, DAM010 -это С-номер для диаграммы выполнить задание на рис. 2-1. Если диаграмма заменяет более старый вариант, то автор помещает предыдущий С-номер в скобках, чтобы указать на связь с предыдущей работой. Например, диаграмма DAM010 заменяет предыдущую версию DAM009. Каждый автор проекта SADT ведет реестр всех созданных им диаграмм, нумеруя их последовательными целыми числами. Для этого используется бланк реестра С-номеров SADT. На рис. 2-3 приведен реестр С-номеров рассматриваемой в этой книге модели экспериментального механического цеха. Обратите внимание на то, как бланк указывает следующие номера, которые нужно использовать. Автору остается только записать номер узла и его название для каждой новой диаграммы.



Исправление взаимосвязанных диаграмм


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

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

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



Источники информации


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

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

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


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

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

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



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


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

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

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



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


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

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

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

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



Изучение ближайшего контекста диаграммы


Изучив все внутренние детали диаграммы, сосредоточьтесь на их контексте, определив связи между диаграммой и ее родителем. Вы получите более глубокое понимание диаграммы, потому что граница объекта определяет, как диаграмма входит в остальную часть модели. Понять контекст диаграммы позволяет чтение: (1) блока и дуг, появляющихся на родительской диаграмме, представляющих ограничения для изучаемой диаграммы (2) ICOM-меток диаграммы, (3) связей этой диаграммы с другими блоками родительской диаграммы, (4) дополнительного к родительской диаграмме материала. Элементы этой диаграммы также читаются последовательно.

14.3.1. Чтение родительского блока и его дуг

Начните с чтения блока родительской диаграммы. Это освежит в памяти представление об общей функции диаграммы и ее взаимосвязей с остальными частями модели. Например, диаграмма ЭМЦ/АО (рис.14-1) обобщает функцию выполнить задание как процесс, который преобразует сырье и заготовки и брак в законченное или незаконченное задание в соответствии с планом выполнения задания. При этом используются станки и инструменты и иногда докладывается о статусе задания.

14.3.2. Чтение ICOM-кодов

Теперь прочтите внешние дуги диаграммы и определите их ICOM-коды. Проверьте соответствие каждого ICOM-кода одной из граничных дуг родительской диаграммы. Отметьте все несоответствия или пропуски. Таким образом вы удостоверитесь в том, что автор в процессе анализа ничего не пропустил из необходимых данных. На диаграмме ЭМЦ/А2 брак имеет ICOM - код 13, что соответствует (счет ведется сверху вниз) третьей входной дуге блока 2 на диаграмме ЭМЦ/АО.

14.3.3. Изучение связей диаграммы с ее родителем

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

14.3.4. Чтение дополнительного материала родительской диаграммы

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



Изучение деталей диаграммы


Для понимания деталей отдельной диаграммы необходимо: (1) прочитать название и номер узла, (2) изучить каждый блок, (3) изучить внутренние дуги; (4) прочитать все замечания автора; (5) просмотреть весь связанный с диаграммой дополнительный материал. Чтение осуществляется наиболее эффективно, если все эти элементы диаграммы читаются последовательно. По мере обсуждения этой части процесса обращайтесь к рис. 14-1 и 14-2.

14.2.1. Прочитайте название и номер узла

Начните читать диаграмму с просмотра бланка, обратив особое внимание на название и номер узла диаграммы. Например, диаграмма выполнить задание (рис. 14-2) имеет номер узла ЭМЦ/А2 и является диаграммой второго уровня модели экспериментального механического цеха. Следовательно, на ней начинается описание некоторых деталей работы механического цеха. Используйте название и номер узла для того, чтобы сосредоточиться на обсуждаемом объекте и уровне его детализации в модели.

14.2.2. Изучите каждый блок

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

Рис. 14-1. Титульный лист папки и родительская диаграмма

Рис. 14-2. Диаграмма с дополнительным материалом

(его входы и выходы) и что ограничивает его выполнение (его управления). Сосредоточившись на конкретном блоке, вы сможете установить, как связаны все касающиеся его дуги. Например, блок 3 на рис. 14-2 описывает шаг подготовить рабочее место, во время которого выбранные инструменты и один из станков в цехе используются для организации оборудованного рабочего места в соответствии с чертежом и указаниями.

14.2.3. Изучите внутренние дуги

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

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

Вспомните, что в SADT можно описывать два типа обратной связи: по данным и по управлению. Например, дуга результаты обработки на диаграмме ЭМЦ/А2 - это обратная связь по данным, а дуга штамп "принято" диаграммы ЭМЦ/АО - обратная связь по управлению. Обратные связи по данным слабее. Это просто "трубопроводы", доставляющие данные от одной функции к другой. Обратные связи по управлению намного сильнее. Они указывают на условия, определяемые одной функцией и влияющие на работу другой функции. Обращайте на них особое внимание.

14.2.4. Прочитайте авторские замечания

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

14.2.5. Прочитайте приложения к диаграмме

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



Язык ссылок DT


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

Язык ссылок полезен также при написании текста к диаграмме. Например, описание основного пути потока данных на диаграмме выполнить задание, сделанное в разделе 14.2.3 обычным языком, могло бы быть записано с использованием языка ссылок SADT так: С1 к 1С1 к 102 к 2С1 и ЗС1 и 4С1, и т. д. до тех пор, пока не будет 401 к 112.

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



Коды ICOM гарантируют стыковку диаграмм


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

В SADT принята система обозначений, позволяющая аналитику точно идентифицировать и проверять связи по дугам между диаграммами. Эта схема кодирования дуг -"ICOM" - получила название по первым буквам английских эквивалентов слов вход (Input), управление (Control), выход (Output), механизм (Mechanism). Коды ICOM чрезвычайно эффективны, поскольку они позволяют аналитику быстро проверять согласованность внешних дуг диаграммы с граничными дугами соответствующего блока родительской диаграммы. Они также обеспечивают согласованность декомпозиции, поскольку все дуги, входящие в диаграмму и выходящие из нее, должны быть учтены. На рис. 3-2 дуга требования по срокам выполнения задания может быть отслежена от ее начала (С1 блока 0 диаграммы ЭМЦ/ А-0) на границе модели через верхнюю часть диаграммы ЭМЦ/АО к блоку управлять выполнением задания (СЗ блока 4 диаграммы ЭМЦ/ А1). (Мы детально обсудим некоторые исключения из этого правила в главе 5.)


Если вы начинаете строить диаграмму следующего уровня, то дуги, касающиеся декомпозируемого блока, используются в качестве источников и приемников для дуг, которые вы создаете на новой диаграмме. После завершения диаграммы ее внешние дуги стыкуются с родительской диаграммой для обеспечения согласованности. Одним из способов такой стыковки может служить присваивание кодов ICOM внешним дугам новой диаграммы согласно следующим правилам: представьте себе рисунок новой диаграммы внутри разлагаемого блока. Продлите внешние дуги почти до края диаграммы. Зрительно соедините каждую внешнюю дугу диаграммы с соответствующей граничной дугой декомпозируемого блока (на рис. 3-3 в некоторых местах мы используем пунктирные линии для изображения процесса зрительного соединения). присвойте код каждой зрительной связи. Используйте I для входных дуг, С - для связей между дугами управления, О - для связей между выходными дугами, М - для связей между дугами механизма. добавьте после каждой буквы цифру, соответствующую положению данной дуги среди других дуг того же типа, касающихся родительского блока. Причем входные и выходные дуги пересчитываются сверху вниз, а дуги управлений и механизмов пересчитываются слева направо (см. рис. 3-3). Теперь запишите каждый код около окончания каждой внешней дуги. На рис. 3-3 приведены субъект и его границы (блок и прилегающие дуги) и декомпозирующая его диаграмма. Обратите внимание, что граница субъекта изображена жирной линией для того, чтобы подчеркнуть, как внешние дуги связаны с соответствующими граничными дугами. В этом примере мы изобразили на диаграмме пунктирными линиями зрительные связи только между выходными дугами и соответствующими им граничными дугами. (Другие связи легко определить зрительно.) В соответствии со схемой кодирования для рис. 3-3 были получены коды ICOM: II, 12, Cl, C2, 01, 02, Ml. Кодирование дуг ICOM-метками произведено в зависимости от того, к какой стороне родительского блока примыкает данная дуга.

При следовании схеме кодирования ICOM создается совокупность неявных связующих звеньев между страницами, которые можно быстро изменить при изменении границ. (Сравните схему кодирования ICOM/SADT с альтернативной схемой, в которой внешние дуги просто помечаются определенным образом, скажем, буквами от А до Я.) Эти неявные межстраничные связующие звенья облегчают процесс чтения и рецензирования SADT-диаграмм, а также проверку, насколько согласованно произведена декомпозиция.Коды ICOM упрощают также работу, связанную с внесением вручную локальных изменений в диаграмму, и объединяют различные варианты диаграмм так, что они хорошо стыкуются в модели. По нашему мнению, коды ICOM являются одним из наиболее важных вкладов SADT в технологию графического моделирования. Они обеспечивают требуемую строгость, позволяя в то же время авторам работать независимо, чертить разборчиво и выбирать без ущерба для предыдущей работы подходящую терминологию на последующих уровнях детализации.



Когда формировать папку


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



Комментирование работы


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

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

Рис. 12-2. Титульный лист папки и диаграмма, подготовленная автором



Конструктивная критика


Никто не любит, когда его работу критикуют, не предлагая ничего взамен. SADT настоятельно рекомендует позитивный и конструктивный стиль комментирования. Конструктивные комментарии коротки, ясны, позитивны и конкретны. Например, замечания 4 и 5 на рис. 15-2 не только позволяют исправить ошибку автора, но и поясняют, почему исходная метка дуги неверна.

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

Опытные SADT-читатели не останавливаются в случае, если они не находят ошибок. Их задача тогда отметить все верное. Таким образом можно обнаружить пропуски важных моментов, неуместность отдельных частей диаграммы, неверную точку зрения или неправильно понятую цель. Вот почему хорошее нужно указывать так же, как плохое. Авторы должны знать, что они на верном пути, даже если есть недочеты. Например, на рис. 15-2 в замечании к дуге оборудованное рабочее место содержится похвала автору за верное понимание предмета рассмотрения и выразительное название.

Квалифицированные SADT-читатели вкладывают максимально возможное в свои комментарии. Лучше всего для комментариев использовать графический язык SADT. С его помощью читатель может быстро исправить синтаксис, предложить другие метки, направить дуги к другим блокам и рекомендовать другие декомпозиции. Используйте графику всегда, когда это возможно, потому что "меньше слов" часто означает "больше информации". На рис. 16-3 приведен пример графического замечания.



Координация процесса рецензирования


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



Корректировка новой диаграммы


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

10.4.1. Переопределение доминирования

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

10.4.2. Содержательные названия блоков

Для блоков обычно стараются выбрать содержательные название. Однако в SADT нет необходимости выражать все с помощью названий блоков, потому что о работе блока многое сообщают метки окружающих его дуг. Например, детали, сырье и брак превращаются в результаты обработки, в соответствии со следующим шагом задания. Читая дуги блока 4 на рис. 10-3, можно довольно хорошо разобраться в работе блока обработать на станке и собрать. Таким образом, более подробное название блоку не требуется.
Оно может только затруднить понимание.

10.4.3. Дуги, хорошо передающие информацию о себе

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

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

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

10.4.4. Пояснения

Закончив построение диаграммы, поясните ее важные аспекты с помощью замечаний или дополнительного материала. Однако будьте осторожны с пояснениями: не используйте их как прикрытие плохого построения диаграмм. Проясняйте только те понятия, которые нельзя изобразить в виде блоков и дуг. Например, пометить дугу 11 на рис. 10-3 словом материалы и сделать замечание, что материалы - это сырье, заготовки, хуже, чем просто пометить дугу этими двумя этими словами.С другой стороны, описание типичных незаконченных заданий существенно облегчит объяснение того, как они должны быть завершены.



Корректность модели проверяется в процессе итеративного рецензирования


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

Цикл автор/читатель начинается в тот момент, когда автор принимает решение распространить информацию о какой-либо части своей работы с целью получения отзыва о ней. Материал для распространения оформляется в виде "папок" - небольших пакетов с результатами работы, которые критически обсуждаются другими специалистами в течение определенного времени. Сделанные письменные замечания также помещаются в папку в виде нумерованных комментариев. Папки с замечаниями являются, таким образом, обратной связью, которую авторы получают на свою работу. Читатели - это те, кто читает и критикует создаваемую модель (см. блок 4 на рис. 4-1), а затем помещает замечания в папки. Их работа возможна благодаря тому, что графический язык SADT-диаграмм позволяет создавать диаграммы и модели, которые можно легко и быстро читать. (Простота графического языка потому не случайна. Она позволяет получить представление о системе, на основе которого можно дать обоснованное заключение о достоверности модели.)

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



Критическая оценка содержания диаграммы


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

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

14.5.1. Вопросы о синтаксисе

Анализируя детали диаграммы, задавайте себе вначале следующие вопросы, особенно если вы только начинаете читать SADT-диаграммы или если автор только начинает работать с применением SADT: Все ли блоки правильно пронумерованы? Все ли блоки имеют названия в глагольной форме? Все ли дуги на месте? Все ли дуги имеют названия в форме существительного ? Все ли метки ясно привязаны к своим дугам? Есть ли на длинных дугах дополнительные метки? Нет ли дуг без меток?

Изучая непосредственный контекст диаграммы, задавайте следующие вопросы: У всех ли внешних дуг есть ICOM-код? Верно ли связывает ICOM-код внешние дуги с граничными дугами родителя? Все ли метки внешних дуг совместимы с метками граничных дуг родителя? Не используется ли помещение дуг в тоннель (скобки рядом с их концами) избыточно или неверно?

14.5.2.
Чтобы оценить декомпозицию диаграммы, спросите себя: Достаточна ли полная декомпозиция? Не отсутствует ли какой-нибудь блок? Нет ли блока, не относящегося к делу? Нет ли в декомпозиции каких-либо неожиданностей ? Не сделал бы я совершенно другую декомпозицию ? Чтобы определить цель и точку зрения диаграммы, уточните: На какие вопросы отвечает эта диаграмма? Соответствует ли это цели модели? С чьей точки зрения описана модель? Совпадает ли это с точкой зрения модели ? Чтобы оценить непротиворечивость диаграммы, спросите себя: Не является ли диаграмма слишком запутанной или слишком детальной, чтобы ответить на вопросы, связанные с целью модели ? Не отвечает ли диаграмма на вопросы, не относящиеся к цели модели? Используются ли термины в одном и том же смысле? Все ли факты соответствуют точке зрения модели? Чтобы оценить адекватность описания, спросите: Отражает ли модель реальность? Соответствует ли порядок расположения блоков убыванию их доминантности? Нет ли лишних или отсутствующих дуг между блоками? Чтобы оценить точность представления, задайте вопросы: Не вводят ли в заблуждение названия блоков и дуг? Содержит ли ветви дуг только те данные, которые действительно нужны блоку? Не перекрываются ли функции двух блоков ? Нет ли ненужных дуг, касающихся блока? Для оценки правильности активизации блоков (т.е. какова возможная последовательность их функционирования в ходе реальной работы системы) спросите себя: Работает ли "нормальный" путь потока данных? Как ошибочные данные будут влиять на блок? Объясняются ли чем-либо ошибочные пути? Не должна ли функция выполнять больше, чем это определяется касающимися ее дугами? И наконец, один из самых полезных вопросов: "что нового я узнал, читая диаграмму?" Он ведет к последнему вопросу: "стоило ли читать диаграмму?". При положительном ответе, возможно, диаграмму стоит включить в модель.



Модель имеет единственный субъект


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



Модель отвечает на вопросы


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

М есть модель системы S, если М может быть использована для получения ответов на вопросы относительно S с точностью А.

Таким образом, целью модели является получение ответов на некоторую совокупность вопросов. Эти вопросы неявно присутствуют (подразумеваются) в процессе анализа и, следовательно, они руководят созданием модели и направляют его. Это означает, что сама модель должна будет дать ответы на эти вопросы с заданной степенью точности. Если модель отвечает не на все вопросы или ее ответы недостаточно точны, то мы говорим, что модель не достигла своей цели. Определяя модель таким образом, SADT закладывает основы практического моделирования.

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

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

Рис 1-1. Определение цели и точки зрения модели ЭМЦ

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



Модели используются после их одобрения


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

В процессе SADT-моделирования рекомендуется выделить специальную группу людей, ответственных за то, что создаваемая в процессе анализа модель будет точна и используема в дальнейшем. Эта группа, называемая Комитетом технического контроля (см. блок 5 на рис. 4-1), отвечает за контроль качества моделей, создаваемых авторами SADT-проекта. Комитет следит за выполняемой работой и ее соответствием конечным целям всего проекта. Члены Комитета обсуждают модель и оценивают, насколько она может быть использована и будет использована соответствующим образом в ходе выполнения проекта для достижения его глобальных целей.

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



Модели SADT структурируют естественный язык


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

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

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

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

Рис. 6-1. Описание границ SADT-модели

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



Момент прекращения декомпозиции определяется точностью


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

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



Начало моделирования



 

Глава 22. Начало моделирования Оглавление

Вспомним, что SADT-модель начинается с очерчивания границ системы, определения цели и точки зрения модели и создания диаграмм верхнего уровня. Эта глава, состоящая из семи уроков, рассчитана на то, чтобы провести вас через те этапы, которые чаще всего выполняют SADT-аналитики в начале создания функциональной модели: в уроке 1 очерчивается контекст задачи, в уроке 2 определяется цель и точка зрения модели, в уроке 3 создается диаграмма АО , в уроке 4 - диаграмма А-0, в уроке 5 дается критическая оценка диаграммы А-0, в уроке б критически оценивается диаграмма АО, в уроке 7 обе диаграммы переделываются.

В идеале вы должны выполнить все семь уроков без перерыва. Это даст вам верное представление об объеме работы, необходимой для начала моделирования. В крайнем случае мы рекомендуем выполнить уроки 1-4, затем сделать перерыв, и далее приступить к выполнению уроков 5-7. Исходите из следующего расчета: полчаса на чтение, понимание и выполнение каждого урока. Не огорчайтесь, если вы не укладываетесь в полчаса. Ваша задача - научиться методологии, а не устраивать гонки на скорость. По мере приобретения опыта в SADT ваша производительность будет возрастать, потому что, как при изучении любого языка, чем больше вы пользуетесь языком SADT, тем лучше вы им овладеваете.
 
 

Урок 1. Очерчивание границ объекта

Цель

Создать очерченный контекст для модели "Питание семьи".

Действия 1. Прежде чем начать, вспомните основные понятия SADT-моделирования. Посмотрите, как они применяются к очерчиванию объекта моделирования.

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

3. Теперь оцените исходный список критически. Вычеркните названия, не относящихся к системе объектов. Если есть возможность, объединяйте названия в группы, проводя соединительные линии или обводя слова кружками.
Добавляйте новые названия по мере развития ваших идей. 4. Остановитесь, когда поток идей иссякнет. 5. Теперь проделайте то же самое для функций системы. Для перечисления функций пользуйтесь списком данных, затем оцените новый список. Вычеркните те названия, которые не входят в систему. Группируйте сходные функции, соединяя их названия линиями или обводя кружками. Меняйте список данных по мере постижения работы системы. 6. Остановитесь, когда вы перечислите достаточное для создания диаграммы число объектов и функций. Примечания 1. Это процесс, в ходе которого достигается общее согласие относительно границ "системы". 2. Ясность относительно входящих в систему объектов начнет появляться только после составления исходного списка, исключения из него каких-либо объектов и включения новых. 3. Иногда объекты, которые вначале были исключены, возвращаются снова в очерченный контекст. 4. Список данных изменится в ходе составления списка функций. Возможно, по мере возникновения новых идей вы начнете "метаться" между списками. Образец Обратите внимание на то, что по ходу составления списков данных и функций был составлен список характеристик "подростка". Это пример того, как следует документировать предположения, возникающие в ходе анализа.
 
  Урок 2. Определение цели и точки зрения модели Цель Сформулировать цель модели "Питание семьи" и определить, с чьей точки зрения будет описан этот процесс. Действия 1. Составьте множество вопросов, на которые должна отвечать модель. Уточните это множество, определив, кто задает вопросы. Запишите по крайней мере 5-10 вопросов. Затем задайте степень точности ответа на каждый из них. 2. С помощью этого набора вопросов определите, как будет использоваться модель. Если вы не можете сформулировать, как она будет использоваться, попробуйте записать еще вопросы или попытайтесь вообразить, кто будет применять модель. В одном предложении сформулируйте, как она будет использоваться.


Это станет целью модели. 3. Теперь решите, кто рассказывает о "Питании семьи". Составьте список кандидатов, чтобы убедиться, что вы выбрали самую подходящую точку зрения. Выберите из всех того, кто сможет ответить на большинство вопросов. Его ( ее ) точка зрения станет точкой зрения модели. Примечания. 1. Составление хорошего списка вопросов приводит к пониманию того, как будет использоваться модель. Чем больше вопросов, тем лучше вы поймете, о чем должна рассказать модель. 2. В качестве точки зрения модели можно выбрать точку зрения одного человека (например, отца) или нескольких (например, родителей). Помните, что каждая точка зрения выделит свои аспекты проблемы. Лучшей будет та, с которой проще всего ответить на все вопросы. Образец 1. Обратите внимание, что записано множество подробных вопросов о процессе питания семьи. Это приводит к формулировке цели модели как определения всего спектра действий, необходимых для питания семьи. 2. Цель модели включает такое подробное описание для того, чтобы подростки могли реализовать питание семью даже при невозможности проконсультироваться с родителями. 3. В образце приведено несколько вариантов точки зрения (например, точка зрения соседей). Однако была выбрана точка зрения родителей, потому что они "главные специалисты" в своем домашнем хозяйстве.
 
  Урок 3. Построение диаграммы верхнего уровня Цель Описать процесс питания семьи в виде одной диаграммы, состоящей из 3-6 важнейших функций, взаимосвязанных через информацию управления (например, меню) и материальные объекты (например, посуду). Действия 1. Объедините 3-6 функций из списка функций очерченного контекста и расположите их по порядку доминантности. Нарисуйте и назовите блоки по одному для каждой функции в соответствии с порядком доминирования. 2. Нарисуйте и пометьте внутренние дуги, представляющие ограничения для работы каждого блока, используя составленный список данных. Чтобы сделать это, проанализируйте функцию каждого блока и задайте соответствующий вопрос. 3.


Теперь нарисуйте и пометьте дуги, представляющие ограничения "извне" системы, используя составленный список данных. Подумайте, какого рода объекты влияют на питание семьи 4. Наконец, изобразите основной поток данных, прокладывая путь от блока к блоку. Используйте список данных и представьте себе, что вы рассказываете подросткам о том, как реализуется процесс питания. Примечание Следите за обратными связями между блоками. Обратные связи часто возникают в системах, ориентированных на процесс (таких, как эта), в которых некоторые функции часто повторяются. Обратные связи возникают также в системах подобных рассматриваемой здесь, в которых эффективно используются побочные продукты или отходы. Образец 1. Все планирование собрано в первом блоке. Его можно было бы распределить по всем блокам, но показалось, что на необходимость планирования следует указать подросткам сразу. 2. Обратите внимание, что бюджет (абстрактный объект) влияет на план, в то время как деньги (реальный объект) даются функции, пополняющей запас продуктов, и расходуются ею. 3. Обратите внимание, что посуда и остатки возвращаются назад от функции убирать со стола к функциям, которые их используют. 4. Дуги "механизмов" сознательно опущены, потому что они не помогают достижению цели модели.
 
  Урок 4. Обобщение диаграммы верхнего уровня Цель Нарисовать единственный блок со его входами, управлениями и выходами, который обобщает всю только что нарисованную диаграмму АО. Действия 1. Нарисуйте единственный большой блок в середине страницы и пометьте его названием диаграммы АО. Это обобщает все функции системы. 2. Теперь нарисуйте и пометьте все входные дуги, дуги управления и выходные дуги - по одной для каждой внешней дуги диаграммы АО. Это обеспечивает согласованность двух рисунков. 3. Наконец, напишите под большим блоком цель и точку зрения модели. Это сразу же определит смысл и направленность модели каждому, кто начнет ее читать. Примечание Этот единственный блок со своими дугами обобщает внешние связи системы "Питание семьи". Образец 1.


Обратите внимание, как этот чертеж подчеркивает, что делает система, ее внешние данные, цель и точку зрения модели - и все это на одной странице. Вот почему диаграмма А-0 используется для первого представления SADT-модели. 2. Обратите также внимание, что внизу справа от большого блока приведен С-номер диаграммы АО. Этот номер определяет, какая именно версия диаграммы АО детализирует этот блок.
 
  Урок 5. Критическая оценка обобщающей диаграммы Цель Документировать все вопросы, возникшие с диаграммой А-0. Действия 1. Прочтите диаграмму вслух, пользуясь для изложения шаблоном типа: "функция (имя блока) преобразует (имена входных дуг) в (имена выходных дуг) в соответствии с (имена дуг управления). 2. Оцените изложенное с точки зрения здравого смысла. Определите неувязки, запишите, в чем они заключаются, и проведите соответствующую переделку (например, поменяйте метки, объедините дуги). 3. Критически оценив чертеж, оцените также цель и точку зрения. Запишите неувязки и пересмотрите цель и точку зрения. Примечание Проговаривая содержание диаграммы, предпочтительно вслух, вы яснее увидите ее недостатки. Образец 1. Эта диаграмма читается так: "Питание семьи преобразует вкусы, диетические требования и деньги в пищу и отходы в соответствии с бюджетом, доступностью продуктов, рецептами, общепринятыми и семейными правилами и режимом дня". Это не совсем правильно. Ее можно изложить более просто: "Питание семьи преобразует некормленных людей и деньги в накормленных людей и отходы в соответствии с ...". 2. Ограничения рецепты, общепринятые и семейные правила и режим дня были объединены в семейные правила и цель модели была конкретизирована. 3. Нумерация замечаний указывает на последовательность выявления и исправления недостатков.
 
 
 
  Урок 6. Критическая оценка диаграммы верхнего уровня Цель Документировать все вопросы, возникшие с диаграммой АО. Действия 1. Внесите в эту диаграмму все исправления, соответствующие исправлениям на диаграмме А-0.


Например, если на дуге управления диаграммы А-0 изменилась метка, то измените соответствующую внешнюю дугу на данной диаграмме. 2. Определите смысл данной диаграммы после исправления всех связанных с диаграммой А-0 недостатков. Оцените его адекватность. Определите недостатки нового варианта, запишите их и внесите соответствующие изменения (например, измените метки, объедините дуги). Примечания 1. Вы сделаете меньше ошибок, если для начала перенесете на диаграмму АО все изменения, сделанные в диаграмме А-0. 2. Проговорив содержание исправленной диаграммы АО, вы скорее увидите ее недостатки. Образец 1. Обратите внимание, что внешние дуги рецепты, общепринятые и семейные правила и режим дня объединены в новую внешнюю дугу семейные правила. 2. Объединение вкусов и диетических требований в некормленных людей привело к появлению новой внешней входной дуги как к блоку спланировать меню, так и к блоку обслуживать за столом. 3. Нумерация замечаний указывает на последовательность выявления и исправления недостатков.
 
  Урок 7. Переделка обобщающей диаграммы и диаграммы верхнего уровня Цель Переделать в соответствии с критической оценкой, выполненной в уроке 6, и начертить заново диаграммы А-0 и АО. Действия 1. Вначале перечертите диаграмму А-0. По ходу дела обдумывайте изложенное в диаграмме и проверяйте, сохранился ли в ней смысл. Перепишите, если нужно, цель и точку зрения модели. Затем отложите диаграмму А-0 в сторону, но держите ее под рукой, чтобы можно было сверять с ней при переделке диаграмму АО. 2. Перечерчивая диаграмму АО, обдумайте изложенное в ней. Обращайтесь время от времени к диаграмме А-0, чтобы удостовериться, что детали диаграммы АО согласованы с ее контекстом. 3. Свяжите все внешние дуги диаграммы АО с родительской диаграммой А-0, используя ICOM-коды. Это позволит вам избежать потери внешних дуг. Проверьте соответствие меток внешних дуг диаграммы АО меткам дуг диаграммы А-0. Примечания 1. Сказать много с помощью немногих слов - ключ к хорошему моделированию.


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

Оглавление


Начало проекта


Успешный проект всегда имеет хороший старт, который обычно включает формирование технического задания на проектирование, исходный выбор создаваемых моделей, организацию группы аналитиков, выбор Комитета технического контроля и составление графика работ. Такое начало приводит к созданию плана проекта, который координирует усилия многих людей и делает проект управляемым.

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

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

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

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

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



Написание спецификации


Глава 27. Написание спецификации
SADT модель не является спецификацией. Она содержит хорошо организованную и точную совокупность информации, с помощью которой можно создать спецификацию. Эта глава состоит из четырех уроков, рассчитанных на то, чтобы научить вас писать спецификации для SADT-мод-елей. В уроке 22 в диаграммы А-0 и АО добавлены метки свойств. В уроках 23 и 24 метки свойств распространены на декомпозиции первого и второго уровней. Все эти метки свойств вместе с диаграммами являются исходным материалом для написания спецификации. Это рассматривается в уроке 25. Диаграммы и необходимый текст собираются в спецификационный документ в соответствии с деревом узлов SADT для модели "Питание семьи".

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



Некоторые стратегии декомпозиции


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

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

Декомпозиция в соответствии с функциями, которые люди или организации выполняют, может оказаться полезной стратегией для создания системы описаний, фиксирующей взаимодействие между людьми в процессе их работы. Декомпозиция, приведенная на рис. 6-2, описывает взаимодействие персонала механического цеха и функции, выполняемые каждым отдельным лицом. Таким образом, эта диаграмма представляет общую картину работы механического цеха, а каждый из ее потомков дает более концентрированное описание определенного рода работы (управления заданием, обработки и контроля). Иногда взаимодействие между функциями невелико, как в механическом цехе. Очень часто, однако, взаимосвязи между функциями весьма многочисленны и сложны. Вот почему мы рекомендуем использовать эту стратегию только в начале работы над моделью системы из разряда, который часто называют РЗ - первые буквы английских слов people (люди), paper (бумаги), procedures (процедуры).
Это поможет собрать исходную информацию о системе, с помощью которой можно создать более обоснованную функциональную декомпозицию системы в целом.

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

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

Если ничто другое не подходит, всегда можно применить декомпозицию по физическому процессу. Результатом такого сорта декомпозиции будет выделение функциональных стадий, этапов завершения или шагов выполнения. На диаграммах низкого уровня (А311, А312, А313) модели обучения из главы 13 подробно описана последовательность шагов, которую нужно выполнить, чтобы подготовить материал для обучения военных.Хотя эта стратегия полезна при описании существующих процессов (таких, например, как работа промышленного предприятия), результатом ее часто может стать слишком последовательное описание системы, которое не будет в полной мере учитывать ограничения, диктуемые функциями друг другу. При этом может оказаться скрытой последовательность управления. Мы рекомендуем эту стратегию, только если целью модели является описание физического процесса как такового или только в крайнем случае, когда вы не понимаете, как действовать.



Обмен информацией с помощью папок


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

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

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



Обобщение читательских комментариев


Каждое замечание, с которым вы согласились, приводит к изменениям в исходной диаграмме. Зафиксируйте эти изменения с помощью замечания "с кружком" на своем экземпляре папки. Используйте всю мощь графического языка и языка ссылок SADT для того, чтобы быстро делать примечания и легко и аккуратно вносить изменения в диаграмму. На рис. 16-3 показаны примечания, сделанные к диаграмме выполнить задание после обработки читательских комментариев. Обратите внимание, что изменения терминологии привели к изменению метки дуг. А это в свою очередь заставило автора сделать более тесной связь между результатами обработки и законченным и незаконченным заданием.

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

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



Обобщение диаграммы АО


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

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


В процессе обобщения вы убедитесь в том, что он помогает прояснить описание системы, потому что при обобщении вы просматриваете метки дуг для более точного наименования данных, которыми обмениваются система и ее среда. Кроме того, во время обобщения дуги часто объединяются для упрощения изображения модели. В этом случае дуги разветвляются на свои составляющие на диаграмме АО. Например, на диаграмме АО, приведенной на рис. 8-3, указано, что сырье и заготовки входят в состав рабочего комплекта.

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



Обозначения для менее распространенных интерфейсов по дугам


Номера узлов, С-номера и коды ICOM управляют подавляющим большинством ситуаций внутренних связей в модели. Однако между родительскими диаграммами и диаграммами-потомками могут возникать некоторые специфические ситуации, в которых разумное использование синтаксиса модели улучшает описание модели, а именно: (1) при разветвлении и соединении внешних дуг; (2) при изменении входных дуг на управляющие и наоборот; (3) когда дуги "входят в тоннель". Мы приведем примеры каждой из этих ситуаций, так чтобы вы могли распознать их и понять их значение. Однако необходимо предупредить, что такие средства изображения следует использовать только в особых ситуациях для прояснения и упрощения описания системы. Их следует применять для удобства, а не как прикрытие плохого анализа систем. Во всех этих случаях данные при пересечении границ диаграмм сохраняются, т. е. все входные данные некоторым образом используются для образования всех выходных данных. Ключом для понимания таких ситуаций является то, что дуги SADT изображают иерархические наборы данных (в главе 5 приведены дополнительные пояснения относительно иерархии дуг и дуг вообще).

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

Особая ситуация возникает также тогда, когда входная дуга превращается в дугу управления и наоборот.
Это происходит, если дуга управления (или входная), касающаяся границы блока, используется при декомпозиции диаграммы как входная (или соответственно управленческая) дуга. В уроке 7 обратите внимание на то, что дуга деньги как часть дуги деньги и бюджет является дугой управления на диаграмме ПС/А-0, однако используется как входная дуга на диаграмме ПС/ АО. Аналитик связал их для того, чтобы подчеркнуть, что на верхнем уровне модели бюджет и деньги управляют процессом питания семьи. Бюджет управляет планированием, а деньги - это нечто, превращаемое в процессе хождения по магазинам в продукты. Нам редко встречались ситуации, в которых требуется подобная техника. Мы советуем хорошо подумать об альтернативных способах построения диаграммы, прежде чем применять эту технику.

Две другие особые ситуации возникают, когда дуги "входят в тоннель" между диаграммами. Дуга "входит в тоннель", либо (1) если она

Рис 3-3. Кодирование связей между SADT-диаграммами

является внешней дугой, которая отсутствует на родительской диаграмме (имеет скрытый источник), либо (2) если она касается блока, но не появляется на диаграмме, которая его декомпозирует (имеет скрытый приемник). Тоннельные дуги от скрытого источника начинаются скобками, чтобы указать, что эти дуги идут из какой-то другой части модели или прямо извне модели. На рис. 3-2 дуга незанятый рабочий С1 блока получить задание и назначить исполнителя на диаграмме ЭМЦ/А1 входит в тоннель и поэтому она не касается блока управлять выполнением задания на родительской диаграмме ЭМЦ/АО. Тоннельные дуги, имеющие скрытый приемник, кончаются скобками, чтобы отразить тот факт, что такая дуга идет к какой-то другой части модели или выходит из нее или что она не будет более в этой модели рассматриваться. На рис. 3-2 все дуги механизмов диаграммы изготовить нестандартную деталь являются тоннельными и указывают на то, что они не будут показаны при декомпозиции соответствующих блоков.

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



Обозначения согласия и несогласия с автором


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



Обратная связь по управлению и по потоку данных


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

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

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

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



Организация папки


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

На рис. 13-3 показана SADT-папка, содержащая результаты анализа, проведенного в части I, где обсуждались начало разработки и частичная декомпозиция модели экспериментального механического цеха. На титульном листе указано, что эта папка относится к декомпозиции объекта выполнить задание, на диаграмме ЭМЦ/А2. Кроме того, на титульном листе помещено замечание автора, в котором он просит объяснить понятие деталь. Диаграмма ЭМЦ/АО изготовить нестандартную деталь расположена перед диаграммой выполнить задание для того, чтобы обеспечить читателей контекстом. Лист глоссария ЭМЦ/А2Г1 определяет терминологию, введенную на диаграмме выполнить задание. Он расположен после диаграммы.



Основные этапы


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

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

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



Ответы на комментарии


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

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

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



Переделка диаграмм


Принято или не принято какое-либо замечания читателя отметьте в вашем экземпляре папки. После этого вы готовы к переделке рассматриваемой диаграммы и всех других диаграмм, которые были затронуты. При серьезных изменениях мы рекомендуем начертить диаграмму заново. На рис. 16-4 показан результат перечерчивания в соответствии с примечаниями к диаграмме выполнить задание, приведенными на рис. 16-3. Обратите внимание, что замечание 7

Рис. 16-3. Диаграмма с комментариями

Рис. 16-4. Перерисованная диаграмма

заставило автора ввести обратную связь по управлению от блока 4 к блоку 1 и что автор поменял ее метку при переделке диаграммы.

Если вы чертите диаграмму заново, не забудьте отметить заменяемую диаграмму, указав ее С-номер в скобках сразу же после С-номера новой диаграммы, как показано на рис. 16-4. Обратите внимание, что С-номер исходной диаграммы (DAM010) заключен в скобки и помещен рядом с С-номером переделанной диаграммы (DAM015). Таким образом с помощью набора указателей, направленных назад, метод SADT связывает между собой различные версии одной и той же диаграммы, чтобы всегда можно было проследить изменения в ходе аналитического проекта.

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



Получение знаний в процессе опроса


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



Построение диаграммы АО


Исходное содержание диаграммы АО обеспечивают списки данных и функций. Для правильного описания системы содержанию надо придать форму. В SADT это делается посредством построения диаграммы. Начинающим авторам мы советуем придерживаться определенного порядка: (1) расположите блоки на странице, (2) нарисуйте основные дуги, представляющие ограничения, (3) нарисуйте внешние дуги и (4) нарисуйте все оставшиеся дуги. Со временем накопленный опыт позволит вам отойти от этой процедуры и изображать блоки и дуги в соответствии с той идеей, которую вы хотите воплотить в диаграмме.

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

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

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

Следующим шагом в построении диаграммы является размещение остальных внешних дуг и назначение им соответствующих ICOM-кодов.
Таким образом, все данные, входящие в систему или выходящие из нее, оказываются учтенными на рисунке. Потеря внешней дуги - это ошибка интерфейса, одна из самых распространенных в системном анализе. Занимаясь декомпозицией объекта, можно забыть об интерфейсных данных, потому что очень легко сосредоточиться на деталях. Начиная с изображения всех внешних дуг, вы повысите точность диаграммы, включив все интерфейсные данные. И наконец, нарисуйте все остальные дуги, отражающие детали работы системы в целом. Во-первых, нарисуйте оставшиеся ограничения, действующие между блоками. Например, рассматриваемый чертеж влияет на проверку детали. Во-вторых, нарисуйте основной поток данных. На рис. 8-3 показана обработка сырья и заготовок в соответствии с планом. выполнения задания и контроль качества выполнения задания (иногда неоднократный) и в соответствии с чертежом. В-третьих, рассмотрите все "патологические" потоки данных (случаи возникновения ошибок). В-четвертых, уточните обратные связи в потоках данных. Например, забракованное задание снова попадает в цикл в качестве брака. В заключение изобразите все обратные связи, вызываемые ошибочными ситуациями.

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



Повторное чтение папки


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

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

Таблица 15-1. Примеры языка ссылок SADT

Код

Формат

Значение

3 Блок Блок 3
5 Замечание Замечание 5
01 Вершина дуги Граничная дуга
312 Блок+вершина дуг Вторая входная
. дуга блока 3
- - Смотри
Е.2 Страница+блок На стр.Е см. блок 2
A.I Страница+ замечание На диаграмме А
см. замечание 1
А42.3 Диаграмма+блок На диаграмме А42
см. блок 3
В.401 Страница+вершина дуги На стр. В см.
первую выходную
дугу блока 4



что эта первая, посвященная SADT


Предисловие Оглавление
Замечательно, что эта первая, посвященная SADT книга, наконец, вышла в свет, и мне очень приятно предложение написать к ней предисловие. Авторы книги, мои коллеги и добрые друзья, прекрасно подготовлены для того, чтобы вести вас, читатель, по пути, который они и другие исследователи считают успешным для разностороннего использования и преподавания этой методологии. Как все хорошие преподаватели, они накладывают собственный отпечаток и по-своему расставляют акценты в излагаемом материале, но вы увидите, что все, что я упомяну здесь в общем обзоре проблемы, полностью относится и к самой книге. С моей стороны, SADT - это не столько изобретение, сколько открытие. Впервые я использовал обозначение "SA-блок", лежащее в основе того, что я гораздо позже стал называть структурным анализом (Structured Analysis, SA), в промежуточном отчете по созданию алгоритмического языка АРТв Массачусетском технологическом институте (МТИ) 30 лет назад. Это обозначение четко выражало одну важную идею, связанную с тем, что сегодня называется иерархической многоуровневой модульной системой. Каждый уровень представлял собой законченную систему (блок), поддерживаемую и контролируемую системой (блоком), находящейся над ней (APT является стандартным языком типа Фортрана, Кобола или Лиспа, но используется для автоматизированного проектирования сервисных программ, причем исходная архитектура системы APT применяется до сих пор). Однако концепция "декомпозиции", вторая центральная идея SADT, в то время еще не была явно сформулирована. Прежде чем она явилась на сцену, SA-блок еще раз был использован мною подобным образом в ключевом рисунке моей статьи "AED-подход к системам автоматизированного проектирования", отмеченной премией в 1967 г. Создание AED в МТИ последовало за созданием APT и предшествовало большинству технических средств и разработок как в той области, которая теперь называется разработкой программного обеспечения, так и в области собственно систем автоматизированного проектирования (САПР).
На этом рисунке изображалась "система систем для построения систем", т. е. предназначенная для того, что теперь называется технологией "компилятора компиляторов" для создания специальных языков, ориентированных на пользователя. Таблично контролируемые процессоры (для проверки правописания, грамматического анализа, генерации кодов, выполнения), каждый из которых представлял законченную систему (блок), были не столько разбиты на уровни, сколько сцеплены друг с другом (выход с входом), образуя компилятор. Аналогичным образом порождались и таблицы. Итак, SA-блок был полностью осознан и использован, хотя еще и не назван.
Показательно, что именно между этими двумя случаями использования графических SA-блоков важность того, что теперь называется "иерархической декомпозицией сверху вниз", была подчеркнута "не графически" в моем завершающем отчете I960 года по созданию AED, названном "Постановка целей". Я подчеркнул, что САПР должна быть объектно-ориентированна и что объекты, включая те системы, которые мы создаем для работы с ними, должны определяться и описываться сверху вниз до нужного уровня детализации.
Использование этих фундаментальных понятий и осмысление их в рабочем, практическом аспекте, потребовало следующую дюжину лет, ибо последним подготовительным этапом для структурного анализа послужила в 1972 г. интенсивная, закрытая, шести недельная работа (после того, как мы оставили МТИ, чтобы в 1969 г. основать компанию SofTech), в ходе которой я должен был создать общий проект завода будущего для коммерческого клиента. Предполагалось привлечение дюжины различных спецификаций пользователей и применение соответствующих им интегрированных систем, системы распределенной базы данных, работающей практически без простоев, обеспечивающей тройную избыточность, возможность восстановления данных, а также имеющей функции обработки. Весь этот комплекс должен был функционировать с использованием иерархии компьютеров для инженерных расчетов и офисных работ, систем управления, механизмов учета и обработки сырья, деталей и инструментов, в сочетании со станками, людьми, приказами...


Главным требованием была надежность проекта. Он должен был обеспечивать возможность для принятия основополагающих решений и для выполнения функций строго самоконтроля за развитием работы.
В азарте я свел годами апробируемые идеи и опыт в соответствующую методологию проектирования, выделяя интерфейсы между модульными системами и их использование в качестве защитного барьера для требуемой сверх надежности. Таким образом, я завершил проект в срок. Эта работа и результаты последующих бесед с С.Хори, который ввел почти такие же обозначения SA-блоков в своем "клеточном моделировании" (cell modeling) человеко-ориентированных функций, послужили основой для создания в 1973 году первого "Руководства автора". Оно предназначалось для обучения аналитиков методу, использующему понятие "архитектура" (Architecture Method) и примененному в работах по проекту военно-воздушных сил по разработке систем автоматизированного производства (AFCAM). В следующем году я придумал название "Структурный анализ" для методологии, объединяющей SA-блоки и SA-декомпозицию в единый графический "язык проектирования систем". Остальное принадлежит истории.
Как видится мне SADT теперь, спустя годы? Для меня представляет все больший интерес объяснять, почему методология так хорошо работает. Беглое изложение моей последней попытки сделать это послужит подходящим финалом для настоящего предисловия. Я советую вам возвращаться к время от времени к изложенному далее материалу по мере дальнейшего чтения книги. Вы увидите, что с каждым разом вам будут открываться новые грани. Мир и все в нем, включая наши мысли о нем, можно рассматривать как систему взаимодействующих систем. У системы есть граница, поведение и сущность. Каждое из этих понятий определяется взаимодействием этой системы с другими системами, с которыми она соединяется еще и в новые системы. Так, например, грузовик имеет электрическую, механическую и гидравлическую системы. Конкретно - у него есть системы управления движением, расписания доставки и расценок.


Другая, более абстрактная область - наука имеет предмет, теории, лаборатории, учебный курс, эксперименты, бюджет, студентов. У романа есть изложение, персонажи, сюжет и стиль. История (прошлое, настоящее, будущее - возможное или испытанное в жизни) может включать все это.
Как такое разнообразие систем можно строго исследовать? Приспосабливая и используя именно тот язык, который является наиболее естественным для данного объекта. Это может быть "естественный" язык, такой, как английский, технический жаргон искусственного формального языка, математические формулы или далее изображения форм и очертаний. Как можно избежать неточностей и двусмысленности такого разнообразия выражений? Так же, как это происходит в любом естественном языке: к этим выражениям следует применять правила пунктуации, которые не несут самостоятельного смысла, но служат для ограничения, структурирования и интерпретации этих выражений так, чтобы сохранить только то значение, которое имелось в виду.
Как такое разнообразие различных объектов может быть включено в одну и ту же схему пунктуации? Путем введения строгой, точной, пригодной для чтения как человеком, так и машиной письменной формы, которая сама по себе моделирует границу, поведение и сущность любого выбранного объекта, выраженные на естественном для данного объекта языке. Что значит "моделирует"? Может ли одна модель моделировать все? Вот определение:
"М моделирует А, если М отвечает на вопросы относительно А".
Одна и та же схема моделирования может быть использована для моделирования любого выбранного объекта. Каждая модель ограничена в своих ответах, но нет ограничения на то, как и что моделирует модель, как нет ограничения на человеческую мысль. Итак, что же является универсальной единицей универсальной пунктуации для неограниченного строго структурного анализа? SA-блок:
Вход при наличии управления преобразуется в выход с помощью "механизма" (исполнителя).
Выходы одного блока могут быть входами или управлениями (или исполнителями) для других блоков. (Блоки именуются, а дуги помечаются с использованием естественного языка.) Дуги могут разветвляться и соединяться, а каждый блок может быть подвергнут декомпозиции, т.


е. разделен как целое на свои составляющие на более детальной диаграмме. Входы, управления и выходы определяют интерфейсы между блоками, а исполнители позволяют при необходимости в определенной степени объединять объекты. Границы блоков и диаграмм должны быть согласованы, а возникающая иерархическая, взаимосвязанная совокупность диаграмм является моделью. Благодаря объяснению термина "декомпозиции" каждая грамматическая форма имеет свое строго определенное значение.
Как регулируется сложность, чтобы была понятна суть? Диаграмма ограничивается 3-6 блоками для того, чтобы детализация осуществлялась постепенно. Вместо одной громоздкой модели используется несколько небольших взаимосвязанных моделей, значения которых взаимно дополняют друг друга, делая понятной структуризацию сложного объекта. Как обеспечивается понятность? Насколько практичен подход? Только достаточно дисциплинированный ум позволяет создавать хорошо структурированные модели. SA-авторов (разработчиков) учат точным методам организации процесса создания хороших моделей с помощью наглядной структуризации, которую обеспечивает графический язык SA-блоков и дуг и которая дает возможность реализовывать обратную связь. Затем для подтверждения того, что модели действительно отражают задуманное, SA-читателей учат точным методам правильной интерпретации моделей. Применяемый в SA цикл автор/читатель позволяет регулярно доводить до сведения автора замечания к модели. Тем самым обеспечивается непрерывная проверка ее качества специально отобранными для этого читателями. Хорошо определенные и достаточно простые обязанности SA-библиотекаря поддерживают как коллективную деятельность, так и индивидуальную работу автора. Простота методики, начиная от дисциплины мышления до организации движения бумаг обеспечивает наиболее продуктивный и эффективный обмен информацией без искусственных усложнений. Если читатели достаточно активны, то опыт накапливается быстро.
Предназначены ли языковые средства методологии SA для полной замены всех других форм передачи информации читателю? Вовсе нет - они хорошо дополняются ими.


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


Правила действия могут связываться с непрерывными или дискретными потоками данных в моделях, а ограничения на типы словаря данных могут применяться к объектам и событиям. Принципиальное определение функциональной модели может быть сформулировано алгоритмически как структурированная программа типа "цикл с выходами" с дополнительными метками, указывающими, когда используются входные и управляющие данные.
Каков "послужной список" SA? За очень немногими исключениями SA успешно применялся либо в виде методологии структурного анализа и проектирования (SADT) компании SofTech, либо как только функциональный вариант в правительственной версии (IDEFO). Его применяли тысячи людей при работе над сотнями проектов во многих областях, начиная с 1973 года. Большинство применений было связано с системами "человек-машина-компьютер" в бизнесе, производстве, обороне, связи и организации проектирования. Можно надеяться, что доступность этой книги расширит область его применения за счет гуманитарных и научных сфер. SA применим к любому интересному объекту.
Дуглас Т. Росс,
SofTecb и МТИ, ноябрь 1986 г.
Оглавление


Предпосылки создания SADT


Предпосылки создания SADT Оглавление

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

Эта последовательность всегда выполнялась итерационно, потому что система полностью никогда не удовлетворяла требованиям пользователей, поскольку их требования часто менялись. И, тем не менее, с этой моделью создания системы, ориентированной на управление, постоянно возникали сложности. Эксплуатационные расходы, возникавшие после сдачи системы, стали существенно превышать расходы на ее создание и продолжали расти с огромной скоростью из-за низкого качества исходно созданной системы. Некоторые считали, что рост эксплуатационных расходов обусловлен характером ошибок, допущенных в процессе создания системы. Исследования показали, что большой процент ошибок в системе возник в процессе анализа и проектирования, гораздо меньше их было допущено при реализации и тестировании, а цена (временная и денежная) обнаружения и исправления ошибок становилась выше на более поздних стадиях проекта. Например, исправление ошибки на стадии проектирования стоит в 2 раза, на стадии тестирования - в 10 раз, а на стадии эксплуатации системы - в 100 раз дороже, чем на стадии анализа.
На обнаружение ошибок, допущенных на этапе анализа и проектирования, расходуется примерно в 2 раза больше времени, а на их исправление - примерно в 5 раз, чем на ошибки, допущенные на более поздних стадиях. Кроме того, ошибки анализа и проектирования обнаруживались часто самими пользователями, что вызывало их недовольство.

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


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

Дуглас Т. Росс часть своих 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, чтобы увидеть, как с помощью этой методологии можно описать систему, и как из этого описания получаются спецификации.

Оглавление


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


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

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



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



 

Глава 19. Примечания на диаграммах и моделях Оглавление

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

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

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

Свойства очень важны, потому что они связаны с требованиями системы, которые должны удовлетворяться, иначе система не будет правильно функционировать.
Например, время, которое затрачивает угольный ликвационный реактор на обработку определенной порции угля, зависит от веса и качества угля. Для этой системы свойства угля и время ликвации - критические требования. То же относится и к контролю качества в механическом цехе. Справочник стандартов качества и точки контроля на чертеже - это то, что управляет качеством выполнения задания в экспериментальном механическом цехе. Без этих ограничений цех не сможет производить детали для новых моделей самолетов. Не удивительно, что понимание системы будет не полным, пока не определены свойства функций и объектов. SADT требует, чтобы свойства определялись с использованием так называемых "меток свойств". Метка свойства - это замечание "с квадратом", соединенное с блоком или дугой с помощью зигзагообразной линии и описывающее это свойство. Описания не всех свойств конкретного блока или дуги помещаются на диаграмму, а только тех, которые проясняют содержание диаграммы. Например, на рис. 19-1 показано, как используются метки свойств для описания стандартной частоты выполнения функций в ходе выполнения работ с рабочим комплектом. Эти метки присоединены к блокам диаграммы. На рис. 19-1 видно, как всего несколько меток могут подчеркнуть суть диаграммы. Однако для полноты для каждого блока или дуги должен составляться глоссарий, связанный с их свойствами. Наш опыт показывает, что помещение информации такого рода из глоссария в словарь данных - надежный способ записать эти сведения. Таким образом, описания свойств всегда доступны и их легко находить. Рис. 19-1. Добавление меток, описывающих свойства моделируемой системы 19.2. Правила действия Вспомните, что функциональные диаграммы 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 над ними. Это означает, что объекты, представленные данными дугами, использованы во время действия функции и недоступны для других блоков или будущих действий. 19.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. Все возможные действия блока "Подготовить рабочее место" прием, когда вы точно не знаете, как выполняется конкретная функция моделируемой вами системы. 19.4. Резюме Метки свойств в SADT описывают конкретные аспекты системы. Они помещаются на диаграмме в виде примечаний, часто как подготовительный этап к созданию спецификации модели.


Правила действия в SADT кодируют набор возможных действий блоков модели. Иногда для какого-либо блока эти правила трудно определить. В этом случае для создания полного набора возможных действий мы советуем использовать методы, применяемые в логическом исчислении. Дополнительная литература Dickover, M., and С. McGowan: "Software Design Using SADT", SofTech Technical paper TP061, August 1977. Mendelson, E.: Introduction to Mathematical Logic, VAn Nostrand Reinhold, New York, 1964. Martin, J., and C. McClure: Diagramming Techniques for Analysts and Programmers, Prentice-Hall, Englewood Cliffs, N.J., 1985. Parnas, D.: "On the Criteria to be Used in Decomposing Systems into Modules", CACM, December 1972. Ross, D.: "An Essay on Activity Diagramming", SofTech Technical Report no. 7104, November 1976. Ross D.: "Structured Analysis (SA): A Language for Communicating Ideas", IEEE Transactions on Software Engineering, vol. 3, no. 1, January 1977. Schoman, K.: "SADT and  PERT", SofTech Deliverable no. CLIN#0-02AG, November 1977. SofTech, Inc.: "The DWS/CS Emergency Preset Structured Specification", Technical Paper no. 1083-1, August 1981. Savith, W.: Abstract Machines and Grammars, Litt;e, Brown, Boston, 1982. Weinberg, G.: An Introduction to General Systems Theory, John Wiley, New York, 1975. Weinberg, G.: Rethinking Systems Analysis and Design, Little Brown, Boston, 1982.
 
Оглавление


Принципы функционального моделирования



В этой части книги кратко излагается методология SADT, описываются основные понятия, на которых она базируется, и объясняется, почему графический язык и процесс SADT -моделирования могут быть использованы для создания содержательных описаний систем. Книга посвящена подмножеству полной методологии SADT , ориентированному на функции системы и называемому "функциональным моделированием". В части I сконцентрированы главные аспекты функционального SADT-моделирования, чтобы облегчить поиск нужного материала при возникновении вопросов теоретического плана. В главе 1 дано общее определение системы, показано место SADT в спектре методов описания систем и введены основные понятия, на которых базируется SADT. В главе 2 обсуждаются синтаксические правила и правила применения методов, необходимые для создания одной SADT-диаграммы. В главе 3 приведены правила, соединения нескольких SADT-диаграмм в одну модель, даже если эта модель быстро развивается. В главе 4 показано, как процесс SADT-моделирования, важнейшая часть методологии SADT, обеспечивает достоверность моделей. В главе 5 более подробно рассмотрены SADT-диаграммы и характеристики системы, которые они отражают. Глава 6 посвящена отдельным аспектам создания SADT-моделей. Теория и практика SADT поясняются с помощью задачи экспериментального механического цеха, которая последовательно рассматривается в частях I - IV книги. Фрагменты модели экспериментального механического цеха иллюстрируют основные понятия SADT и типичное использование этой методологии. Хотя в части I и определяются основные понятия SADT, сами по себе они недостаточны для построения точной, понятной и полезной SADT-модели. Дополнительные процессы анализа, синтеза, рецензирования и управления проектированием (которые обсуждаются в других частях книги) также являются важными компонентами методологии SADT.

Часть I. Принципы функционального моделирования
Оглавление


Принципы и приемы расположения дуг


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

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



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


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

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