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