Стрелки (Arrow).
Взаимодействие работ с внешним миром и между собой описывается в виде стрелок. Стрелки представляют собой некую информацию и именуются существительными, например, "Заготовка", "Изделие", "Заказ". Каждый тип стрелок подходит к определенной стороне прямоугольника, изображающего работу, или выходит из нее.
В IDEF0 различают пять основных типов стрелок:
· Вход(input) – материал или информация, которые используются или преобразуются работой для получения результата (выхода). Допускается, что работа может не иметь ни одной стрелки входа. Стрелка входа рисуется как входящая в левую грань работы. При описании технологических процессов (для этого и был придуман IDEF0) не возникает проблем определения входов. Действительно, "Сырье" на рис. 28 – это нечто, что перерабатывается в процессе работы «Изготовление изделия» для получения результата. При моделировании информационной системы (ИС), когда стрелками являются не физические объекты, а данные, не все так очевидно. Например, при работе "Прием пациента" карта пациента может быть и на входе и на выходе, между тем качество этих данных меняется. Другими словами, в нашем примере для того, чтобы оправдать свое назначение, стрелки входа и выхода должны быть точно определены с тем, чтобы указать на то, что данные действительно были переработаны, например, на выходе – "Заполненная карта пациента". Очень часто сложно определить, являются ли данные входом или управлением. В этом случае подсказкой может быть следующее, перерабатываются (изменяются) ли данные в работе или нет. Если изменяются, то, скорее всего, это вход, если нет – управление.
· Управление (Control)– правила, стратегии, процедуры или стандарты, которыми руководствуется работа. Каждая работа должна иметь хотя бы одну стрелку управления. Стрелка управления рисуется как входящая в верхнюю грань работы. На рис. 28 стрелки "Задание" и "Чертеж" – управление для работы "Изготовление изделия". Управление влияет на работу, но не преобразуется ею. Если цель работы – изменить процедуру или стратегию, то такая процедура или стратегия будет для работы входом. В случае возникновения неопределенности в статусе стрелки (управление или вход) рекомендуется рисовать стрелку управления.
· Выход (Output) – материал или информация, которые производятся работой. Каждая работа должна иметь хотя бы одну стрелку выхода. Работа без результата не имеет смысла и не должна моделироваться. Стрелка выхода рисуется как исходящая из правой грани работы. На рис. 28 стрелка "Готовое изделие" является выходом для работы "Изготовление изделия".
· Механизм (Mechanism)– ресурсы, которые выполняют работу, например персонал предприятия, станки, устройства и т. д. Стрелка механизма рисуется как входящая в нижнюю грань работы. На рис. 28 стрелка "Персонал предприятия" является механизмом для работы "Изготовление изделия". По усмотрению аналитика стрелки механизма могут не изображаться в модели.
· Вызов (Call) – специальная стрелка, указывающая на другую модель работы. Стрелка вызова рисуется как исходящая из нижней грани работы. Стрелка вызова используется для указания того, что некоторая работа выполняется за пределами моделируемой системы. В AllFusion PM стрелки вызова используются в механизме слияния и разделения моделей (см. Главу 5. Слияние/расщепление моделей для организации одновременной работы).
В AllFusion PM существует и другие классификации стрелок. Существует деление стрелок на:
· граничные и внутренние стрелки,
· связанные и несвязанные граничные стрелки,
· явные и неявные стрелки,
· разветвляющиеся и сливающиеся стрелки.
Рассмотрим эти разновидности стрелок.
Граничные стрелки. Стрелки на контекстной диаграмме служат для описания взаимодействия системы с окружающим миром. Они могут начинаться у границы диаграммы и заканчиваться у работы, или наоборот. Такие стрелки называются граничными. Для внесения граничной стрелки входа надо:
1. Щелкнуть по кнопке с символом стрелки в палитре инструментов и перенести курсор к левой стороне экрана, пока не появится начальная штриховая полоска;
2. Щелкнуть один раз по полоске (откуда выходит стрелка) и еще раз в левой части работы со стороны входа (где заканчивается стрелка);
3. Щелкнуть правой кнопкой мыши на линии стрелки, во всплывающем меню выбрать пункт «Name» и добавить имя стрелки в закладке «Name» диалога «Arrow Properties».
Стрелки управления, вызова, механизма и выхода изображаются аналогично. Для рисования стрелки выхода, например, следует щелкнуть по кнопке с символом стрелки в палитре инструментов, щелкнуть в правой части работы со стороны выхода (где начинается стрелка), перенести курсор к правой стороне экрана, пока не появится начальная штриховая полоска, и щелкнуть один раз по штриховой полоске. Имена вновь внесенных стрелок автоматически заносятся в словарь стрелок AllFusion PM (Arrow Dictionary).
Словарь стрелок редактируется при помощи специального редактора «Arrow Dictionary Editor», в котором определяется стрелка и вносится относящийся к ней комментарий. Словарь стрелок решает очень важную задачу. Диаграммы создаются аналитиком для того, чтобы провести сеанс экспертизы, т. е. обсудить диаграмму со специалистом предметной области. В любой предметной области формируется профессиональный жаргон. Причем очень часто жаргонные выражения имеют нечеткий смысл и воспринимаются разными специалистами по-разному. В то же время аналитик (автор диаграмм) должен употреблять те выражения, которые наиболее понятны экспертам. Поскольку формальные определения часто сложны для восприятия, аналитик вынужден употреблять профессиональный жаргон, а, чтобы не возникло неоднозначных трактовок, в словаре стрелок каждому понятию можно дать расширенное и, если это необходимо, формальное определение.
Содержимое словаря стрелок можно распечатать в виде отчета (меню «Report/Arrow Report...») и получить тем самым толковый словарь терминов предметной области, использующихся в модели.
Несвязные граничные стрелки (unconnected border arrow). При декомпозиции работы входящие и исходящие из нее стрелки (кроме стрелки вызова) автоматически появляются на диаграмме декомпозиции, но при этом не касаются работ. Сам процесс называется миграцией стрелок,а стрелки называются несвязанными и воспринимаются в AllFusion PM как синтаксическая ошибка. Для связывания стрелок входа, управления или механизма необходимо перейти в режим редактирования стрелок , щелкнуть по наконечнику стрелки и щелкнуть по соответствующему сегменту работы. Для связывания стрелки выхода необходимо перейти в режим редактирования стрелок, щелкнуть по сегменту выхода работы и затем по стрелке.
Внутренние стрелки. Для связи работ между собой используются внутренние стрелки, т.е. стрелки, которые не касаются границы диаграммы, начинаются у одной и кончаются у другой работы. Для рисования внутренней стрелки необходимо в режиме рисования стрелок щелкнуть по сегменту (например, выхода) одной работы и затем по сегменту (например, входа) другой.
Явные стрелки. Явная стрелка имеет источником одну-единственную работу и назначением тоже одну-единственную работу.
Разветвляющиеся и сливающиеся стрелки. Одни и те же данные или объекты, порожденные одной работой, могут использоваться сразу в нескольких других работах. С другой стороны, стрелки, порожденные в разных работах, могут представлять собой одинаковые или однородные данные или объекты, которые в дальнейшем используются или перерабатываются в одном месте. Для моделирования таких ситуаций в IDEF0 используются разветвляющиеся и сливающиеся стрелки. Для разветвления стрелки нужно в режиме редактирования стрелки щелкнуть по фрагменту стрелки и по соответствующему сегменту работы. Для слияния двух стрелок выхода нужно в режиме редактирования стрелки сначала щелкнуть по сегменту выхода работы, а затем по соответствующему фрагменту стрелки.
Смысл разветвляющихся и сливающихся стрелок передается именованием каждой ветви стрелок. Существуют определенные правила именования таких стрелок. Рассмотрим их на примере разветвляющихся стрелок. Если стрелка именована до разветвления, а после разветвления ни одна или какая-либо из ветвей не именована, то подразумевается, что каждая из этих ветвей моделирует те же данные или объекты, что и ветвь до разветвления (рис. 32, 33).
Если стрелка именована до разветвления, а после разветвления какая-либо из ветвей именована, то подразумевается, что эта ветвь соответствуют данному именованию (например, на рис. 33 ветви «Чертеж деталей» и «Сборочный чертеж»).
Недопустима ситуация, когда стрелка до разветвления не именована, и после разветвления не именована какая-либо из ветвей. AllFusion PM определяет такую стрелку как синтаксическую ошибку (Рис. 34).
Правила именования сливающихся стрелок полностью аналогичны. Ошибкой будет считаться стрелка, которая после слияния не именована, и до слияния не именована какая-либо из се ветвей.
Для именования отдельной ветви разветвляющихся и сливающихся стрелок следует выделить на диаграмме только одну ветвь, щелкнуть правой кнопкой мышки по выделенному фрагменту стрелки, в контекстном меню выбрать пункт Name и редакторе свойств стрелки присвоить имя стрелке. Это имя будет соответствовать только выделенной ветви.
Тоннелирование стрелок. Вновь внесенные граничные стрелки на диаграмме декомпозиции нижнего уровня изображаются в квадратных скобках и автоматически не появляются на диаграмме верхнего уровня (рис. 35).
Для их "перетаскивания" наверх в родительскую диаграмму нужно щелкнуть правой кнопкой мышки по квадратным скобкам граничной стрелки. В появившемся окне «Border Arrow Editor» (рис. 36) выбрать переключатель «Resolve it to Border Arrow». В результате стрелка мигрирует на диаграмму верхнего уровня. Если щелкнуть по кнопке «Change it to resolved rounded Tunnel», стрелка будет эатоннелирована и не попадет на другую диаграмму.
Тоннельная стрелка изображается с круглыми скобками на конце (рис. 37). Тоннелирование может быть применено для изображения малозначимых стрелок. Если на какой-либо диаграмме нижнего уровня необходимо изобразить малозначимые данные или объекты, которые не обрабатываются или не используются работами на текущем уровне, то их необходимо направить на вышестоящий уровень (на родительскую диаграмму). Если эти данные не используются на родительской диаграмме, их нужно направить еще выше, и т.д. В результате малозначимая стрелка будет изображена на всех уровнях и затруднит чтение всех диаграмм, на которых она присутствует. Выходом является тоннелирование стрелки на самом нижнем уровне. Такое тоннелирование называется "не-в-родительской-диаграмме".