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

         

Процедура чтения


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

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



Процесс авторской проверки


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

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

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



Процесс опроса


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

7.3.1. Подготовка

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

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

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

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

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

7.3.2. Проведение опроса

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

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

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


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

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

7.3.3. Завершение

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



Проверка заполнения полей бланка диаграммы


Проверка заполнения полей бланка диаграммы не занимает много времени. Вначале проверьте фамилию автора, название проекта, дату создания и исправления, а также С-номер, чтобы отличить эту диаграмму от других. Например, диаграмма ЭМЦ/А2 на рис. 15-2 построена для проекта экспериментального механического цеха (ЭМЦ) 25.03.93 и ее С-номер -DAM010. Затем проверьте контекстный блок, название и номер узла, чтобы определить место диаграммы в модели. Диаграмма выполнить задание является декомпозицией второго блока своего родителя и находится на уровне А2 модели экспериментального механического цеха. Далее проверьте поле статуса, чтобы определить уровень полученной диаграммы. Например, диаграмма выполнить задание является просто диаграммой "Рабочая версия" и, следовательно, она почти или совсем не подвергалась рецензированию. В заключение поместите свои инициалы и дату рецензирования в поле "Читатель". Если вы всегда будете с этого начинать, то скоро станете делать это автоматически.

Рис. 15-1. Титульный лист и родительская с комментариями рецензента

Рис. 15-2. Диаграмма и дополнительный материал с комментарием рецензента



Различие между входными дугами и дугами управления


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

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

Рис. 5-3 Отделение входов от управлений

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

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



Размер SADT-моделей


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

В такой модели общее число блоков составляет 1365, а в четырехуровневой модели, содержащей по шесть блоков на диаграмме, общее число их - 9331.

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

Уровень в

Модели

Общее число блоков в модели

4 блока/1 диаграмма

6 блоков/1 диаграмма

Тор
0
1
2
3
4

1
5
21
85
341
1365

1
7
43
259
1555
9331

Таблица 17-1. Размер иерархических моделей увеличивается со скоростью геометрической прогрессии

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

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


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



Размеры папки


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

Рис. 13-3. Заполненный титульный SADT-папки

Рис. 13-4. Подготовка страницы глоссария

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



диаграмма содержит от трех до


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


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


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


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


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


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


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


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


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


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


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


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


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

SADT-модели


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

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

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

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



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


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

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

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



Система представляется одним блоком


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

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

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

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



Соглашения по размещению блоков


1. Располагайте блоки по диагонали - от левого верхнего угла диаграммы до правого нижнего, и пронумеруйте их в том же порядке.

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

2. Разместите номер каждого блока в его нижнем правом углу. Стандартное расположение номеров позволяет их быстро находить.

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



Соглашения по размещению блоков и дуг


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

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

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

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

5. Если возможно, присоединяйте дуги к блокам в одной и той же ICOM-позиции. Соединения дуг конкретного типа с блоками будут согласованными, и тем самым вы упростите чтение диаграммы.

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

7. Минимизируйте число петель и поворотов каждой дуги. Это также упростит диаграмму.



Соглашения по размещению дуг


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

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

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

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

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

6. Объедините дуги, источники которых не указаны на диаграмме, если они представляют одни и те же данные. Этим вы графически покажете единый источник сходных данных.

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



Составление исходной документации


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

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

Рис. 12-1. Процесс проверки модели в SADT

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



Составление списка данных


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

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

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



Составление списка функций


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

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

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

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



Совершенствование моделей


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

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

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


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

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

Рис. 12-4. Диаграмма и титульный лист с ответами автора



Создание альтернативных декомпозиций


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

10.3.1. Альтернативная декомпозиция и объединение функций

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

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

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

10.3.2.
Альтернативное объединение и разъединение дуг

Иногда можно обнаружить две дуги, которые начинаются и кончаются в одних и тех же местах диаграммы. То есть обе дуги начинаются и кончаются у одних и тех же блоков (см. рис. 10-2). В этом случае посмотрите на эти две дуги внимательно. Может оказаться, что их следует объединить в одну. Если вы можете придумать хорошее наименование, объединяющее названия этих дуг, объедините их. Если наличие двух дуг имеет определенный смысл, не объединяйте их. Объединение скрывает детали, поэтому не делайте это механически. Исчезновение деталей повредит диаграмме. Например, замечания 7 и 8 на рис. 10-1 отражают попытку объединить брак и сырье, отвергнутую из-за того, что они оказались различными вещами.

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

Рис. 10-3. Пересмотренная диаграмма

10.3.3. Тестирование

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



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

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

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

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



Создание декомпозиции второго уровня


Глава 25. Создание декомпозиции второго уровня
Во время создания декомпозиции (диаграмм) первого уровня вы начинали раскрывать детали изучаемой системы. Эта глава, включающая три урока, рассчитана на то, чтобы провести вас через этапы создания декомпозиции второго уровня. По завершении этих уроков вы построите диаграмму, детализирующую один блок в декомпозиции первого уровня. Эта диаграмма должна быть достаточно детализирована, чтобы соответствовать цели модели, т. е. она должна отвечать на некоторые вопросы из набора вопросов модели в целом. В уроке 15 эта диаграмма создается. Урок 16 требует произвести ее критическую оценку и переделку. В уроке 17 учащиеся формируют папку для рецензирования.

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



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


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

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

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

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

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



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


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

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

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


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

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

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

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

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

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



Спецификации модели "Питание семьи



Цель

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

Точка зрения

Документ написан родителями для подростков.

Содержание

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

Спецификации модели "Питание семьи"
Диаграмма Название
А-0
А-ОТ1
АО
АОТ1
А2
А2
А21
А21Т1
Питание семьи (контекст)
Питание семьи (контекст)-текст
Питание семьи (верхний уровень)
Питание семьи (верхний уровень) - текст
Пополнять запасы
Пополнять запасы v текст
Использовать кладовую
Использовать кладовую v текст
Чтение документа.

Документ написан и составлен в соответствии со структурой и содержанием модели "Питание семьи". При работе с SADT-моделями всегда используют узловые номера. Диаграммы модели рассматриваются в соответствии с обходом дерева "от корня". Это означает, что сначала представляются наиболее общие аспекты питания семьи, а затем - более детальные аспекты этой модели. Поэтому для общего ознакомления с документом прочтите текст, относящийся к питанию семьи (т.е. А-0 и АО). Для более подробного ознакомления прочтите весь текст, относящийся к пополнению запасов продуктов (А2 и А21).



Средства автоматизации



 

Глава 21. Средства автоматизации Оглавление

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

В конце 70-х появились компьютеры достаточной мощности и диапазона с приемлемой скоростью создания графических изображений. Это дало возможность автоматизировать те структурные методы, которые, подобно SADT, существенно опирались на графику. Хотя такие технологии в то время только начинали развиваться, ВВС США финансировали разработку первой системы автоматизации SADT (и, кстати говоря, первого автоматизированного средства для структурного анализа, делающего упор на графику), названного AUTOIDEFO.

В начале 80-х годов появился умещающийся на письменном столе персональный компьютер с графическими возможностями. Это привело к созданию автоматизированных рабочих мест для нескольких графических методов структурного анализа. В это же время первые попытки реализации SADT на мини- и микрокомпьютерах были предприняты в США, Европе и Скандинавии. Одним из результатов таких попыток стало создание автоматизированного рабочего места SADT во Франции, названное SPECIF_X. В этой главе описываются как AUTOIDEFO, так и SPECIF_X. Мы дадим обзор их возможностей, опишем интерфейс с пользователем, обсудим требуемые технические средства.

21.1. AUTOIDEFO

В программе ВВС США, связанной с интегрированной компьютеризацией производства ICAM (Integrated Computer Aided Manufacturing), было взято подмножество полной методологии SADT, названное IDEFO. (На самом деле, SADT описана в этой книге в том объеме, который почти полностью соответствует ее IDEFO подмножеству).
Одна из задач программы ICAM заключалась в стандартизации описаний аэрокосмического производства для государственных подрядчиков. Выбор языка IDEF был значительным шагом на пути к такой стандартизации. Средство AUTOIDEFO предназначено для облегчения процесса создания и рецензирования IDEFO-диаграмм и моделей для географически разобщенных аэрокосмических подрядчиков. Поскольку модели IDEFO часто рецензировались подрядчиками, рассеянными по всей территории Соединенных Штатов, ВВС потребовали, чтобы AUTOIDEFO функционировало на диалоговых устройствах и сетях связи, которые имели широкое распространение или были легко доступны в то время. Исходная конфигурация системы включала дисплеи с векторной графикой и графопостроители, соединенные с большой ЭВМ, которая могла быть подключена к обычной сети связи. Средство AUTOIDEFO, работавшее в данной конфигурации, предоставляло пользователям командно-ориентированную графическую систему, управляемую с помощью меню. Пользователи вначале выбирали графическую операцию из иерархического меню (например, добавить блок, убрать ICOM-метку), а затем выбирали конкретный графический объект с помощью тонкого курсора. Иерархическое меню -облегчало ведение библиотеки диаграмм, начало новых моделей и вычерчивание диаграмм. Память на электронных лампах и графопостроители создавали SADT-диаграммы с достаточной графической разрешимостью. К несомненным достоинствам AUTOIDEFO следует отнести поддержку им управления SADT-проектированием и цикла автор/читатель. Например, руководитель проекта мог при организации нового проекта задать списки рассылки папок. Это обеспечивало распространение папок среди множества различных подрядчиков, расположенных в самых разных местах, предоставляя возможность специалистам комментировать диаграммы и отвечать на комментарии. Распространение папок осуществлялось автоматически после создания папки, ее комментирования или после получения ответов. Таким образом, AUTOIDEFO являлось не просто средством для автоматизированного построения диаграмм.


Оно поддерживало также процесс создания модели. Выбрав определенные команды, аналитик мог построить SADT-модель, начав ее с создания диаграммы А-0 и добавляя к ней последующие диаграммы в порядке номеров узлов. Таким образом, одновременно могло создаваться, храниться, обрабатываться, публиковаться и архивироваться множество различных моделей. Это позволяло соединять несколько взаимосвязанных моделей. Например, модель крыла самолета могла быть соединена с моделью фюзеляжа именно в тех точках, где они должны соединяться. Факторы производительности и применимости технического и программного обеспечения, относящиеся к технологии того времени, вынудили ВВС потребовать создания второй версии AUTOIDEFO. Эта версия будет использовать новые растровые дисплеи и автоматизированные рабочие места, объединенные в сети. С применением новых технологий вторая версия AUTOIDEFO должна обеспечить более эффективное соотношение между ценой и производительностью, сохраняя прежнюю функциональность. 21.2. SPECIF_X Возникнув первоначально в Соединенных Штатах, методология SADT прошла первые крупные "полевые испытания" в большой европейской телекоммуникационной компании в начале 70-х годов. В проекте определялись требования к большой телефонной управляющей системе. После этого SADT стала чрезвычайно популярной в Европе методологией спецификации требований. Совсем недавно использование SADT для спецификации требований было поддержано программой ESPRIT - рассчитанных на 10 лет инициативных работ в области программного обеспечения, принятых в Европейском Экономическом Сообществе. Не удивительно, что в Европе в начале 80-х годов было начато несколько разработок автоматизированного обеспечения SADT, что привело к созданию таких средств, как SPECIF_X. Целью SPECIF_X является поддержка широкого применения SADT-методов для более быстрого получения высококачественных спецификаций, чем это возможно с помощью карандаша и бумаги. SPECIF_X было разработано французской компанией Institut de Genie Logiciel (IGL) для использования на автоматизированных рабочих местах с растровыми дисплеями и графопостроителями или лазерными принтерами.


Менее эргономичная версия средства, выполняющая те же функции, может работать на компьютерах, имеющих отдельные терминалы с расширенными графическими возможностями и построчно печатающими устройствами. Версия SPECIF_X, работающая на графическом автоматизированном рабочем месте, предлагает пользователю меню, из которого курсором выбираются базовые строительные элементы SADT (блоки, дуги, метки) и создает из них диаграмму. Пользовательский интерфейс имеет высокие интерактивные характеристики, позволяя автоматически и вручную заворачивать дуги вокруг блоков и двигать блоки вместе с присоединенными к ним дугами. Диаграммы получаются достаточно хорошего качества, особенно если использовать вывод на лазерный принтер. В дополнение к графической редактированию диаграмм SPECIF_X поддерживает управление диаграммами и моделями. Варианты диаграмм отслеживаются с помощью С-номеров, а диаграммы объединяются в модели с использованием номеров узлов. Проводится проверка согласованности модели, как во время построения диаграммы, так и во время ввода ее в модель. Обеспечивается также поддержка модификации диаграммы. Например, SPECIF_X может определить, как повлияет на всю модель удаление конкретной дуги. Можно также создать глоссарий, связав его термины с соответствующей диаграммой и поместить термины в словарь данных. Полный словарь данных может быть создан и распечатан отдельно от диаграмм, что дает возможность составления словаря технических терминов для каждой модели. И наконец, SPECIF_X поддерживает цикл автор/читатель, позволяя организовывать диаграммы в папки, которые затем могут читать другие пользователи программного средства. 21.3. Design/IDEF Пакет Design/IDEF (Meta Software Corp.) -графическая среда для проектирования и моделирования сложных систем широкого назначения, поддерживающая методологии описания и моделирования системных функций (IDEFO/ SADT), структур и потоков данных в системе (IDEF1, IDEF1X, E-R) и поведения системы (IDEF/CPN). Пакет Design/IDEF был использован для создания проектов сложнейших систем, связанных с автоматизацией и компьютеризацией производства, управлением и контролем, телекоммуникациями и аэрокосмонавтикой.


Design/ IDEF используется как составная часть в некоторых известных пакетах типа CIM (Computer Integrated Manufacturing) и САЕ (Computer Aided Engineering) и принят в качестве стандарта для проектов, финансируемых американскими и европейскими спонсорами. Рассмотрим более подробно основные возможности пакета Design/IDEF. Представление графики Design/IDEF имеет быструю и высококачественную графику, включающую создание стандартных и пользовательских объектов, выравнивание и манипулирование объектами, выбор атрибутов графических объектов и текста. Дополнительно в Design/IDEF реализованы возможности, требуемые для редактирования и моделирования данных: построение связывающих линий типа "резинка", маршрутизация и сглаживание дуг т.д. Обеспечение непротиворечивости модели Design/IDEF имеет встроенные возможности, дающие уверенность разработчику, что IDEF-модель будет точной, целостной и непротиворечивой на протяжении всего цикла ее создания. Например, при модификации текста, принадлежащему функциональному блоку или дуге в какой-то одной части модели, текст будет динамически скорректирован на всех страницах модели. Поддержка Словаря Данных Design/IDEF имеет встроенный Словарь Данных, который позволяет хранить информацию и создавать отчеты о функциях и потоках данных в IDEF-модели. Словарь дает возможность определять начальную информацию об объектах и предоставляет разнообразный набор функций сопровождения, восстановления и сохранения целостности файлов данных. Возможности словаря отличаются большой гибкостью и позволяют пользователю вводить неограниченное число параметров для каждого объекта. В сочетании с высококачественной печатью на лазерном принтере, это позволяет разработчику создавать документацию проекта, отвечающую самым высоким требованиям. Генерация отчетов Design/IDEF предоставляет возможность использовать пять видов отчетов для поддержки и анализа моделей: Отчет о контроле полноты модели Отчет о функциях Отчет о дугах Отчет о ссылках IDEF-отчет Все отчеты могут быть показаны на экране компьютера, отредактированы и распечатаны с помощью текстового редактора.


Design/IDEF анализирует и отбирает данные для генерации текстового файла, содержащего информацию о диаграммах и Словаре. Информация, содержащаяся в отчетах, может быть экспортирована для использования в других программах, таких как, например, электронные таблицы, настольные издательские системы и текстовые редакторы. Организация коллективной работы Design/IDEF поддерживает работу многочисленной группы разработчиков, создающих одновременно большую и сложную IDEF-модель. Подмодели легко интегрируются в одну большую модель. Моделирование данных (IDEF1, IDEF1X и E-R - методологии) Design/IDEF дает также возможность создавать информационные модели, которые представляют как собственно данные, так и связи между ними в системе.. Информация, содержащаяся в IDEF-моделях, экспортируется в любую базу данных, а сами модели могут быть экспортированы в Design/CPN - пакет динамического моделирования и анализа сложных систем. Как CASE-пакет по разработке программного обеспечения Design/IDEF поддерживает первые стадии создания программного продукта: Формулировка требований и целей проекта - определение того, что проектируемая система будет делать. Разработка спецификаций - формализованное описание требований. Создание проекта - определение подсистем и взаимодействий между ними. Документирование проекта - создание базы данных проекта, текстуальное описание составных частей проекта. Анализ проекта - проверка проекта на полноту и непротиворечивость. Результатом работы пакета Design/IDEF является проект программной системы, состоящий из двух частей: проекта функциональной структуры системы, содержащий иерархически связанные страницы с IDEFO-диаграммами и описывающий все модули (вплоть до элементарных функций) системы, их взаимосвязи, входные и выходные параметры; проекта информационной структуры системы - логической модели ее базы данных, - описывающей все структуры и взаимосвязи данных. Оба проекта проверяются на полноту и непротиворечивость, сопровождаются базой данных проекта и документацией. Design/IDEF работает в различных операционных средах: можно строить модели на IBM PC под MS-Windows, Macintosh или под Unix X Window System и переносить диаграммы из одной операционной среды в другую. 21.4.


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


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

Категория Понятие Реализация в SADT
Продукты:
Модели

Объект
Набор вопросов 
Точка зрения 
Иерархия

Ограниченный объект 
Цель модели 
Точка зрения модели 
Номера узлов, номера блоков
Диаграммы Декомпозиция
Версии, варианты
Сложность
Ясность
Диаграмма, списки данных и функций
С-номера
Правило от трех-до-шести
Правила построения диаграмм
Дополнения Объяснения
Акценты
Терминология
Резюме
Листы текста
Листы рисунков
Листы глоссария, Словарь данных
Список узлов
Язык:
Функции

Функция
Вход
Выход
Управление
Исполнитель
Имена

Блок
Левая сторона блока
Правая сторона блока
Верхняя сторона блока
Нижняя сторона блока
Метки
Данные Данные
Управление
Поток
Конвейер
Имена
Дуга
Дуга
Дуга
Соединение и разветвление дуг
Метки
Интерфейсы Ограниченный объект
Связка интерфейса
Подавление
Блок и его дуги
ICOM-коды
Начало или конец дуги, помещенной в тоннель
Аннотации Комментарии
Ответы
Решения
Свойства
Последовательность
Примечание
Примечания с "кружком"
- -
- -
Метки свойств
Правила действий
Примечание Квадратные "с квадратом"
Процесс: Объяснение
Опрос
Описание
Критика
Распространение
Одобрение
Публикация
Эксперты
Авторы
Авторы
Рецензенты, цикл автор/читатель
Папки, Библиотекарь
Комитет технического контроля
Библиотекарь, формат публикации модели



ции. Сделав все это, вы получите достаточно знаний, чтобы оценить объем усилий, необходимых для создания автоматизированного SADT-сред-ства. Мы предполагаем, что вы поймете, насколько это большой и дорогостоящий проект. 21.5. Резюме Современный уровень информационной технологии предоставляет богатый выбор методов для создания автоматизированной поддержки SADT. Наиболее доступным на сегодняшний день SADT-средством является Design/I DEF (Meta Software Corp.)- изначально построенный в рамках программы интегрированной компьютеризации производства и широко используемый ныне в различных областях деятельности. Автоматизированная поддержка SADT видится нам в развитии от просто графического средства до программного обеспечения, функционирующего на базе знаний более общих понятий моделирования. Такие развитые средства должны обладать способностью понимать семантику взаимосвязанной сети диаграмм SADT и множества моделей, а также объединять это множество сведений и правил с другими технологиями.
 
Оглавление


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


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

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

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



Связывание декомпозиции с помощью С-номеров


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

Рис 3-2. Связь между родительской диаграммой и диаграммой потомком

Как только образуется направленная вниз связь, на диаграмме-потомке формируется ссылка на родительскую диаграмму. В области контекста SADT-бланка (правый верхний угол) автор изображает каждый блок родительской диаграммы маленькими квадратиками, заштриховывает квадратик декомпозируемого блока и размещает С-номер родительской диаграммы возле заштрихованного квадратика. Это образует "направленную вверх" (к родительской диаграмме) связь. Метод соединения диаграмм посредством однозначно определенных номеров гарантирует, что именно нужная версия диаграммы станет частью модели. Другими словами, при использовании С-номеров осуществляется тщательный контроль за введением новых диаграмм в иерархию модели. На рис. 3-2 область контекста бланка диаграммы управлять выполнением задания содержит три квадратика - по одному для каждого блока диаграммы изготовить нестандартную деталь. Первый блок заштрихован. Это указывает на то, что данная диаграмма декомпозирует первый блок диаграммы DAM008.



Типы опроса


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

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

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



Титульный лист


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

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

Рис. 13-1. Папки циклически перемещаются между автором и читателями

Рис. 13-2. Зоны и области титульного листа SADT-папки

статус материалов и С-номера. В области 2, предназначенной для информации о содержании папки, авторы записывают номер узла и название папки, а также номер узла, название и С-номер для каждой страницы папки. В области 3 записываются фамилии тех, кому папка должна быть послана. Замечания о папке в целом автор помещает в область 4, а в области 5 он размещает специальные инструкции для библиотекаря.



Точка зрения модели влияет на расстановку акцентов и терминологию


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

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

Выбор одной точки зрения обеспечивает согласованность терминологии. Точку зрения лучше всего понимать как "вид на систему" с позиции определенного человека. Часто точка зрения непосредственно связана с конкретной ролью, выполняемой этим человеком, который является

Рис. 6-2. Все обязанности сотрудников цеха имеют одинаковые степени важности

Рис. 6-3. Некоторые функции более важны для контролера

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

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

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



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


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

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



У модели может быть только одна точка зрения


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

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

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

1.5. Модели как взаимосвязанные наборы диаграмм

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

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

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


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

1.6. Резюме

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

Рис 1-2 Две взаимосвязанных SADT-модели



Аннотирование декомпозиции первого уровня


Цель

Записать нефункциональные требования для диаграмм Ах.

Действия

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

2. Поместите диаграммы АО и Ах перед собой. Нефункциональные требования диаграммы АО перенесите на вашу диаграмму Ах.

3. Сконцентрируйтесь теперь на том, чтобы для диаграммы Ах сформулировать более подробные нефункциональные требования.. Работайте сначала с блоками, затем - с внешними дугами, а в конце - с внутренними дугами. Функциям соответствуют частота действий, продолжительность и исключительные случаи функционирования. Дугам соответствуют объемы, время создания, время использования, специальные атрибуты и места хранения.

Примечания

1. Нефункциональные требования диаграммы АО будут более общими, чем те, которые вы пишете к диаграмме Ах.

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

3. Как правило, аннотированные диаграммы Ах являются мостами между высокоуровневыми и детализированными нефункциональными требованиями.

Образец

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

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



Индивидуальная подготовка папки


Цель

Создать SADT-папку на основе переделанной диаграммы второго уровня и ее глоссария.

Действия

1. Положите рядом диаграмму и глоссарий, убедитесь, что вся информация на этих двух листах согласована.

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

3. В зону комментариев титульного листа добавьте любые другие комментарии или замечания для читателей.

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

Примечание

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

Образец

1. Прочтите примечание на титульном листе, относящиеся к проблеме интерфейса. Оно объясняет, как детализация выявляет новые связи между основными функциями модели "Питание семьи".

2. Обратите внимание на то, как упрощение графики прояснило содержание диаграммы А21.

3. Дробление и объединение данных для дуг покупки и продукты хорошо показывают, как можно декомпозировать SADT-дуги .

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

Оглавление


Индивидуальное построение диаграмм


Цель

Декомпозировать один блок диаграммы Ах.

Действия

1. Выберите блок диаграммы Ах. Он будет контекстом на протяжении этого урока. Не выходите за его границы.

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

3. Прочтите диаграмму Ах и сосредоточьте внимание на том, как контекстный блок согласуется с другими блоками диаграммы. Используйте входные, выходные дуги и дуги управления контекстного блока для первоначального списка данных.

4. Следуйте этапам построения диаграммы. Разместите список данных и список функций в левой части бланка и начертите диаграмму на оставшемся месте.

5. Во время работы делайте для себя замечания и определяйте терминологию. Закончив работу, вернитесь назад и проверьте ICOM-коды. Уточните, не забыли ли вы использовать какие-нибудь данные, определенные дугами, касающимися границы блока.

Примечания

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

2. Не беспокойтесь о точности этой диаграммы. Декомпозиция второго уровня редко удается с первого раза. На данном этапе старайтесь раскрыть детали. Точность придет в процессе рецензирования диаграммы.

Образец

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

2. На диаграмме много дуг с несколькими ветвями. Так часто бывает, когда раскрывается много деталей.

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



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


Цель

Критически оценить, как диаграммы Ахх детализируют блоки диаграммы Ах.

Действия

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

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

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

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

Примечание

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

Образец

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

2. Замечание 7 напоминает автору о необходимости учесть выброшенную испорченную пищу при декомпозиции блока учитывать.



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


Цель

Описать процесс питания семьи в соответствии с диаграммами, построенными в уроках 22, 23, 24.

Действия

1. Поместите вашу диаграмму Ахх с требованиями перед собой. Держите поблизости для справок диаграммы Ах, АО и А-0.

2. Текст, который вы собираетесь написать, снабдите названием, номером узла, а также названием вашей диаграммы Ахх. Не забудьте добавить обозначение /Т1 к номеру узла.

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

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

Примечания

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

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

Образец

1. Обратите внимание на то, как взятые из диаграммы А-0 цель и точка зрения кратко описывают содержание спецификации.

2. Упорядочение диаграмм и текста в соответствии с SADT-схемой нумерации узлов обеспечивает целостность спецификации в процессе ее написания.

3. Оцените, насколько мал текст каждого абзаца и как плавен переход понятий из одного абзаца в другой. Это результат организации процесса работы и концентрации информации, отраженный в спецификации SADT-диаграммы.

Оглавление


Запись требований для декомпозиции второго уровня


Цель

Записать нефункциональные требования для диаграммы Ахх.

Действия

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

требования этого урока с помощью SADT-замечаний "с квадратом

2. Поместите диаграммы Ах и Ахх перед собой. Нефункциональные требования диаграммы Ах перенесите на вашу диаграмму Ахх и детализируйте их.

3. Сконцентрируйтесь теперь на диаграмме Ахх и формулировке более детализированных нефункциональных требованиях. Работайте сначала с блоками, затем - с внешними дугами, а в конце - с внутренними дугами. Функциям соответствуют частота действий, продолжительность и исключительные случаи функционирования. Дугам соответствует объем, время создания, время использования, специальные атрибуты и места хранения.

Примечания

1. Нефункциональные требования диаграммы Ахх в общем случае будут более детализированными, чем нефункциональные требования диаграммы Ах.

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

3. Аннотированные диаграммы Ахх обычно содержат довольно подробные нефункциональные требования.

Образец

1. Детализированные нефункциональные требования диаграммы А21 описывают меры предосторожности чтобы минимизировать порчу продуктов.

2. Требования для дуг управления на диаграмме А21 проясняют, как недельный план питания влияет на детализированные действия по использованию кладовой.



Запись требований для обобщенной диаграммы и диаграммы верхнего уровня


Цель

Записать нефункциональные требования для диаграмм А-0 и АО

Действия

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

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

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

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

5. Теперь сосредоточьтесь на диаграмме АО. Запишите более детализированные нефункциональные требования для внутренних дуг и блоков. Сконцентрируйте внимание на последовательности выполнения и ограничения основных функций системы.

Примечания

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

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

3. Аннотированная диаграмма АО содержит обычно наиболее общие и важные нефункциональные требования к любой диаграмме модели.

Образец

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

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



Уточнение места диаграммы в модели


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

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

Рассмотрим диаграммы А-0, АО и А2 модели экспериментального механического цеха, представленные на рис. 6-1, 14-1 и 14-2. Читая эти диаграммы в указанном порядке, мы заметим, что: (1) станки и инструменты оказываются основным входом цеха с точки зрения начальника, (2) рабочий комплект, по-видимому, является единственным источником плана выполнения задания, (3) справочник стандартов качества, похоже не оказывает никакого воздействия на процессы обработки. Страницы глоссария для диаграмм А-0 и АО объяснят природу этих объектов более подробно и, следовательно, помогут прояснить, почему диаграммы именно так описывают ситуацию.



Использование экспертных систем, языков четвертого


Введение Оглавление
Использование экспертных систем, языков четвертого поколения и систем автоматизированного производства постоянно расширяется. Успех этих систем непосредственно зависит от нашей способности предварить их разработку и внедрение описанием всего комплекса проблем, которые необходимо разрешить, указанием того, какие функции системы должны быть автоматизированы, определением точек интерфейса человек-машина и того, как взаимодействует система со своим окружением. Иными словами, этап проектирования системы является критическим для создания высококачественных систем. Системное проектирование - это дисциплина, определяющая подсистемы, компоненты и способы их соединения, задающая ограничения, при которых система должна функционировать, выбирающая наиболее эффективное сочетание людей, машин и программного обеспечения для реализации системы. SADT - одна из самых известных и широко используемых систем проектирования. SADT - аббревиатура слов Structured Analysis and Design Technique (Технология структурного анализа и проектирования) - это графические обозначения и подход к описанию систем. Дуглас Т. Росс ввел их почти 20 лет назад. С тех пор системные аналитики компании SofTech, Inc. улучшили SADT и использовали ее в решении широкого круга проблем. Программное обеспечение телефонных сетей, системная поддержка и диагностика, долгосрочное и стратегическое планирование, автоматизированное производство и проектирование, конфигурация компьютерных систем, обучение персонала, встроенное программное обеспечение для оборонных систем, управление финансами и материально-техническим снабжением - вот некоторые из областей эффективного применение SADT. Широкий спектр областей указывает на универсальность и мощь методологии SADT. В программе интегрированной компьютеризации производства (ICAM) Министерства обороны США была признана полезность SADT, что привело к стандартизации и публикации ее части, называемой IDEFO. Такая стандартизация вкупе с растущей автоматизированной поддержкой и этой книгой означает, что SADT теперь более доступна и проста в использовании.
Под названием IDEFO SADT применялась тысячами специалистов в военных и промышленных организациях. В коммерческом мире SADT используется для определения требований. В этом качестве она конкурирует с методами, ориентированными на потоки данных, - структурного проектирования Е.Иордана, структурного анализа Т.ДеМарко, структурного системного анализа С. Гейна и Т. Сарсона, а также с методами структуризации данных - методами М.Джексона, Лж.Д. Варнира и К. Орра. В отличие от этих методов структурного анализа, истоки которых нужно искать в проектировании программного обеспечения, SADT создана для описания системы и ее среды до определения требований к программному обеспечению или к чему-либо другому. Иными словами, поставив своей целью описание системы в общем, создатели SADT изобрели графический языки набор процедур анализа для понимания системы прежде, чем можно представить себе ее воплощение. Таким образом, SADT, как правило, применяется на ранних этапах процесса создания системы, который часто называют "жизненным циклом системы", и иногда за этим следует применение упомянутых выше методов.
В течение тех 10 лет, что мы, авторы этой книги, использовали и преподавали SADT, мы ощущали потребность в книге, излагающей ее основы и методы. Открытая информация по SADT была рассыпана по техническим статьям и неклассифицированным сообщениям, которые доступны лишь работающим в области программного обеспечения и компьютерных наук. Поэтому основная цель этой книги - познакомить с SADT гораздо более широкую аудиторию, всех, кто связан с научными дисциплинами, изучающими системы, - медициной, экологией, наукой о мышлении или экономикой. Чтобы достичь этой цели, мы представляем SADT развернуто и наглядно, сосредоточив внимание на том, как создается с помощью SADT полная модель системы. Мы последовательно, шаг за шагом, показываем, как строится SADT-модель, чтобы, прочтя эту книгу, вы понимали, что такое SADT-модели и как они создаются. Естественно, что изложение материала отражает наш опыт работы с SADT и наш взгляд на ее развитие.


Основное внимание в книге уделено изложению основных концепций SADT, объяснению ее реализации, описанию процесса моделирования, обсуждению современной автоматизированной поддержки SADT и анализу примеров, взятых из реальной жизни. В части I "Основные понятия функционального моделирования" излагаются фундаментальные понятия SADT-моделирования систем. В части II "Создание функциональных моделей и диаграмм" показано, как графический язык SADT используется для декомпозиции описания системы с помощью иерархического набора диаграмм. В части III "Рецензирование диаграмм и моделей"- рассматривается цикл автор/читатель, специальным образом организованный процесс рецензирования для повышения качества моделей. По мнению многих пользователей SADT, этот процесс - лучший способом удостовериться в правильности и плодотворности своей работы. Поэтому мы описали цикл автор/читатель как самостоятельную процедуру, которая может использоваться в ходе любой работы. В части IV "Завершение моделирования. Руководство моделированием" - обсуждаются проблемы управления и организации работы группы SADT-аналитиков и приводится набор критериев, которые могут помочь определить, когда следует завершить процесс моделирования.
Одна из целей книги - демонстрация наиболее типичного способа применения SADT с помощью 25 уроков, которые организованы так, чтобы научить построению функциональной модели. Эти практические упражнения позволят приобрести знания и навыки, необходимые, чтобы начать использовать SADT. Часть V "Создание функциональной модели и спецификации. Уроки" построена в соответствии с главами этой книги. Каждый урок охватывает отдельный этап создания модели. Эти уроки предназначены также для на аудиторных занятий. Начальные уроки построены таким образом, чтобы в процессе коллективной работы более подготовленные учащиеся могли помочь менее опытным. Последующие уроки стимулируют индивидуальную работу, чтобы все учащиеся достигли одинакового уровня знаний.


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


Выбор цели и точки зрения


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

Рис. 8-1. Определение целей и точки зрения

Рис. 8-2. Подготовка списка функций и списка данных

Рис. 8-3. Диаграмма АО

Рис. 8-4. Диаграмма А-О

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



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


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



Выявление интерфейсных ошибок


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

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



Выявление недостатков новой диаграммы


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

Рис. 10-1. Диаграмма после критики рецензента

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

10.2.1. Вопросы о блоках

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

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

10.2.2. Вопросы о связи с родительской диаграммой

Теперь зададим вопросы о связи диаграммы с ее родителем. При этом мы проверим, как диаграмма вписывается в модель. Все ли внешние дуги имеют ICOM-коды? Все ли ICOM-коды соединяют дуги с одним и тем же значением?

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

Замечания 3 и 4 на рис. 10-1 исправляют ошибку в названии дуги (12) станки и инструменты, а замечания 7 и 8 отражают развитие спора автора с самим собой относительно природы отходов и сырья - проблема, которая нередко возникает в связи с производственными процессами.


10.2.3. Вопросы о внутренних дугах

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



Чтобы сделать такое замечание, нужно:


В SADT существенные комментарии записываются в виде замечаний "с кружком". Чтобы сделать такое замечание, нужно: (1) жирно перечеркнуть очередной номер замечаний, (2) записать этот номер и обвести его кружком, (3) около обведенного номера записать содержание замечания и (4) при необходимости соединить зигзагом свое замечание с соответствующей частью диаграммы. Присваивая замечаниям номера, вы даете каждому из них уникальный идентификатор. Обводя номера кружком, вы отличаете свои замечания от замечаний автора, которые тоже могут быть на этой странице. Соединяя зигзагом замечания с соответствующей частью диаграммы, вы точно указываете, к чему они относятся. Например, диаграмма выполнить задание (рис. 15-2) получила шесть замечаний читателя. Обратите внимание, что зигзаг замечания б обводит две дуги, указывая, что это замечание относится к обеим дугам. Замечания 4 и 5 относятся к одному вопросу. Одно является поправкой, а другое - объяснением.
SADT различает замечания "с кружком" и "с квадратом". Замечания "с кружком" записываются на диаграмме авторами и читателями во время цикла автор/читатель. Поэтому они могут быть как красными, так и синими. Замечания "с квадратом" вводятся в исходную диаграмму автором обычно для того, чтобы что-то подчеркнуть на ней. Поэтому замечания "с квадратом" являются неотъемлемой частью диаграммы. Они всегда пишутся черным цветом и редко встречаются в модели. Обратитесь к моделям, приведенным в части VI, чтобы посмотреть, как замечания "с квадратом" используются для указания ключевых моментов.

Запись о продолжительности работы


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