- •Введение Сравнительный анализ структурных методологий
- •Глава 1. Системы, модели и моделирование с помощью sadt
- •1.1. Sadt-модели
- •1.2. Модель отвечает на вопросы
- •1.3. Модель имеет единственный субъект
- •1.4. У модели может быть только одна точка зрения
- •1.5. Модели как взаимосвязанные наборы диаграмм
- •1.6. Резюме
- •Глава 2. Синтаксис и применение диаграмм
- •2.1. Диаграммы содержат блоки и дуги
- •2.2. Блоки представляют функции
- •2.3. Блоки имеют доминирование
- •2.4. Дуги изображают объекты
- •2.5. Дуги изображают взаимосвязи между блоками
- •2.6. Дуги представляют наборы объектов
- •2.6.1. Разветвление дуг
- •2.6.2. Слияние дуг
- •2.7. Идентификация версий диаграмм с-номерами
- •2.8. Резюме
- •Глава 3. Синтаксис моделей и работа с ними
- •3.1. Система представляется одним блоком
- •3.2. Идентификация декомпозиции номерами узлов
- •3.3. Связывание декомпозиции с помощью с-номеров
- •3.4. Коды icom гарантируют стыковку диаграмм
- •3.5. Обозначения для менее распространенных интерфейсов по дугам
- •3.6. Резюме
- •Глава 4. Процесс моделирования
- •4.1. Получение знаний в процессе опроса
- •4.2. Документирование полученных знаний
- •4.3. Корректность модели проверяется в процессе итеративного рецензирования
- •4.4. Координация процесса рецензирования
- •4.5. Модели используются после их одобрения
- •4.6. Резюме
- •Глава 5. Более глубокие концепции диаграмм
- •5.1. Дуги имеют различное содержание
- •5.2. Дуги могут быть декомпозированы
- •5.3. Дуги могут быть "помещены в тоннель"
- •5.4. Различие между входными дугами и дугами управления
- •5.5. Дуги механизмов определяют способы реализации функций
- •5.7. Резюме
- •Глава 6. Более глубокие концепции моделей
- •6.1. Модели sadt структурируют естественный язык
- •6.2. Точка зрения модели влияет на расстановку акцентов и терминологию
- •6.3. Декомпозиция в ходе моделирования
- •6.4. Некоторые стратегии декомпозиции
- •6.5. Выбор стратегии декомпозиции
- •6.6. Момент прекращения декомпозиции определяется точностью
- •6.7. Резюме
- •Глава 7. Сбор информации
- •7.1. Источники информации
- •7.2. Типы опроса
- •7.3. Процесс опроса
- •7.3.1. Подготовка
- •7.3.2. Проведение опроса
- •7.3.3. Завершение
- •7.4. Что нужно помнить при опросе
- •7.5. Резюме
- •Глава 8. Начало моделирования
- •8.1. Основные этапы
- •8.2. Выбор цели и точки зрения
- •8.3. Составление списка данных
- •8.4. Составление списка функций
- •8.5. Построение диаграммы ао
- •8.6. Обобщение диаграммы ао
- •8.7. Резюме
- •Глава 9. Продолжение моделирования
- •9.1. Декомпозиция ограниченного объекта
- •9.1.1. Выбор блока
- •9.1.2. Объект, определяемый блоком
- •9.1.3. Создание новой диаграммы
- •9.2. Выявление интерфейсных ошибок
- •9.3. Принципы и приемы расположения дуг
- •9.4. Резюме
- •Глава 10. Проверка диаграммы автором
- •10.1. Процесс авторской проверки
- •10.2. Выявление недостатков новой диаграммы
- •10.2.1. Вопросы о блоках
- •10.2.2. Вопросы о связи с родительской диаграммой
- •10.2.3. Вопросы о внутренних дугах
- •10.3. Создание альтернативных декомпозиций
- •10.3.1. Альтернативная декомпозиция и объединение функций
- •10.3.2. Альтернативное объединение и разъединение дуг
- •10.3.3. Тестирование
- •10.3.4. Схематичное изображение декомпозиции следующего уровня
- •10.4. Корректировка новой диаграммы
- •10.4.1. Переопределение доминирования
- •10.4.2. Содержательные названия блоков
- •10.4.3. Дуги, хорошо передающие информацию о себе
- •10.4.4. Пояснения
- •10.5. Исправление взаимосвязанных диаграмм
- •10.6. Резюме
8.3. Составление списка данных
Списки объектов системы, создаваемые в ходе моделирования, в SADT принято называть "списками данных". Термин "данное" здесь употребляется как синоним слова "объект". Следовательно, при обсуждении различных аспектов моделирования в SADT мы будем применять термин "список данных". Составление списка данных является начальным этапом создания каждой диаграммы функциональной SADT-моде-ли. Правило заключается в том, чтобы вначале составить список данных, а потом список функций. Начните свою диаграмму с выделения всех основных групп и категорий данных, используемых и генерируемых системой. И не будьте слишком дотошны - запишите все разумные возможности. При сомнении записывайте все, что приходит на ум, потому что лучше записать слишком много, чем провести неполный анализ. Обратите внимание, что на рис. 8-2 в список вошло много деталей, хотя аналитик пытался создать диаграмму цеха как единого целого.
В современных аналитических методах слишком часто уделяется повышенное внимание функциям в ущерб данным. Начиная с составления списка данных, вы сможете избежать перехода к немедленной функциональной декомпозиции. Списки данных помогут выполнить более глубокий анализ и при этом не концентрироваться на функциях системы, избегая пробелов, которые часто возникают из предвзятых представлений о функциональных декомпозициях. Кроме того, вы сможете уделить должное внимание данным и идентифицировать ограничения, определяющие функциональную декомпозицию.
SADT-диаграммы представляют границы функций и ограничения, накладываемые на них, причем ограничения должны присутствовать во всех системах. Указывая вначале ограничения, мы выявляем естественную структуру системы. Без ограничений функциональная SADT-диаграмма представляет собой не более чем схему потоков данных. Без ограничительных дуг диаграммы не смогут рассказать читателю, почему аналитик выбрал именно данную декомпозицию. Благодаря тому, что в SADT различаются входные дуги и дуги управления (информация, необходимая для пояснения декомпозиции), SADT-диаграммы ясно объясняют изучаемую систему и причину такой декомпозиции.
8.4. Составление списка функций
Закончив список данных, приступайте с его помощью к составлению списка функций. Для этого представьте себе функции системы, использующие тот или иной класс (тип) или набор данных. Помните, что несколько различных типов данных может использоваться одной функцией. Обозначьте, какие типы или наборы данных необходимы для каждой конкретной функции. Это позволит выделить данные сходных типов, которые затем можно объединить в метатипы.
По мере продвижения по списку, проверяйте, верны ли ваши первоначальные представления, которые часто могут не совпадать с выбранной целью и точкой зрения модели. С другой стороны, не следует автоматически отвергать первоначальные идеи, если они кажутся неверными. Дальнейшие размышления могут прояснить внутренние аспекты работы системы, не очевидные при первом взгляде, и вы, возможно, восстановите исходные идеи после построения нескольких других диаграмм.
Список функций должен находиться на одной странице со списком данных. Мы советуем при составлении исходного списка не пытаться объединять функции между собой. Вместо этого постарайтесь вначале сосредоточиться на каждой конкретной функции и ее отношении к группам данных. Кроме того, старайтесь подбирать такие функции, которые могли бы работать с наиболее общими типами данных из вашего списка. Обратите внимание на то, сколько объединений сделано на рис. 8.2, чтобы собрать несколько детальных функций в одну более общую. Не будьте слишком дотошны, записывая функции, даже если вы сомневаетесь, выполняет ли их система. Что касается пограничных функций (функций, которые могут выполняться либо системой, либо ее окружением), то вначале очень трудно определить, входят они в модель или нет.
Затем объединяйте функции в "агрегаты". Стремитесь к организации 3-6 функциональных группировок. Старайтесь, чтобы эти группировки имели один и тот же уровень сложности, содержали примерно одинаковый "объем" функциональности и функции в каждой из них имели сходные операции и цели. На рис. 8-2 видно, что исходный список функций сгруппирован в три функции более высокого уровня. Объединение не всегда легко осуществить. Вы можете обнаружить, что на каком-то уровне модели трудно выбрать "наилучший" способ объединения функций. Не волнуйтесь, потому что плохая группировка обнаружит свою слабость на этапе декомпозиции. Если это произойдет, вы всегда можете вернуться назад и попробовать другой вариант объединения.