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