Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 / Дэвид А. Марка МЕТОДОЛОГИЯ СТРУКТУРНОГО АНАЛИЗА И ПРОЕКТИРОВАНИЯ.pdf
Скачиваний:
30
Добавлен:
24.03.2015
Размер:
4.91 Mб
Скачать

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

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

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

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

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

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

 

Уровень в

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

 

Модели

 

 

 

 

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

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

 

 

 

 

 

Тор

1

1

 

0

5

7

 

1

21

43

 

2

85

259

 

3

341

1555

 

4

1365

9331

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

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

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

139

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

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

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

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

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

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

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

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

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

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

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

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

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

140

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

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

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

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

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

141

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

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

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

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

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

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

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

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

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

142