Построение моделей IDEF0

На рис. 3.12 типовая IDEF0-диаграмма показана вместе с находя­щейся на ее полях служебной информацией, которая состоит из хоро­шо выделенных верхнего и нижнего колонтитулов (заголовка и "под­вала"). Элементы заголовка используются для отслеживания процесса создания модели. Элементы "подвала" отображают наименование мо­дели, к которой относится диаграмма, и показывают ее расположение относительно других диаграмм модели.


Рис. 3.12

Ни одна модель не должна строиться без ясного осознания объек­та и целей моделирования. При выборе цели моделирования необхо­димо ответить на следующие вопросы:

  • Почему моделируется данный процесс?
  • Что выявит данная модель?
  • Как ознакомившиеся с этой моделью смогут ее применить?

Следующее предложение может служить примером формулиро­вания цели моделирования: выявить задачи каждого работника компании и понять, в основном, взаимосвязь между отдельно взятыми за­дачами для разработки руководства по обучению новых сотрудников. Модели строятся для того, чтобы ответить на набор поставленных вопросов. Такие вопросы формулируются на ранних стадиях модели­рования и впоследствии служат основой для четкого и краткого опре­деления цели моделирования. Примерами таких вопросов могут быть:

  • Каковы задачи менеджера?
  • Каковы задачи клерка?
  • Кто контролирует работу?
  • Какая технология нужна для выполнения каждого шага и т.п.

С методической точки зрения при моделировании полезно ис­пользовать мнение экспертов, имеющих разные взгляды на предмет­ную область, однако каждая отдельно взятая модель должна разраба­тываться исходя из единственной заранее определенной точки зрения. Часто другие точки зрения в краткой форме документируются в при­крепленных диаграммах FEO (см. ниже) исключительно для нагляд­ности изложения.

Точку зрения нужно подбирать достаточно аккуратно, основой для выбора должна служить поставленная цель моделирования. На­именованием точки зрения может являться название должности, под­разделения (например, руководитель отдела или менеджер по прода­жам). Как и в случае с определением цели моделирования, четкое определение точки зрения необходимо для обеспечения внутренней целостности модели и предотвращения постоянного изменения ее структуры. Может оказаться необходимым построение моделей с раз­ных точек зрения для детального отражения всех особенностей, выде­ленных в системе функциональных блоков.

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

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

Чтобы облегчить правильное определение границ моделирования при разработке IDEFO-моделей, существенные усилия затрачиваются на разработку и рецензирование контекстной диаграммы IDEFO (диаграммы "самого верхнего" уровня). Иногда даже прибегают к по­строению дополнительной диаграммы для отображения уровня более высокого, чем контекстный для данной модели, что позволяет обозна­чить систему, внутри которой располагается объект для моделирова­ния. Существенные затраты на разработку контекстной диаграммы вполне оправданы, поскольку она является своего рода "точкой отсче­та" для остальных диаграмм модели, и вносимые в нее изменения кас­кадом отражаются на все лежащие ниже уровни.

Когда границы моделирования понятны, также становится яс­ным, какие объекты системы по тем или иным причинам не вошли в модель.

Рекомендуется следующая последовательность действий при по­строении модели "с нуля": формулирование цели моделирования, выбор точки зрения, определение границ моделирования. Наименова­ние контекстного блока — функционального блока самого высокого уровня — обобщает определение границ моделирования.

Правила подбора имени для контекстного блока в целом не отли­чаются от общих правил именования функциональных блоков, поэто­му для них обычно подбирают обобщающие названия типа "Управле­ние отделом по работе с клиентами", "Обработка заказов" и т.п.

Стрелки IDEF0-диаграмм обычно проще проектировать в следую­щем порядке: выход, вход, механизм исполнения, управление. Каж­дый функциональный блок обозначает отдельную функцию, и эта функция часто имеет четко описываемые результаты работы. Наличие неясностей при анализе выходов того или иного функционального блока — возможный сигнал необходимости проведения реинжиниринга рассматриваемого бизнес-процесса.

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

Определение входов. Входы можно рассматривать как особым об­разом преобразуемые функциональными блоками сырье или инфор­мация для получения выхода. В производственных отраслях опреде­лить, как входное сырье преобразуется в готовую продукцию, обычно довольно просто. Однако при моделировании информационных пото­ков входной поток данных может представляться не потребляемым и не обрабатываемым вообще. Случаи, когда входящие и исходящие стрелки называются одинаково, крайне редки и в основном указыва­ют на бесполезность данного блока для системы в целом или на некор­ректный выбор имени для исходящей стрелки. Решением может служить применение более подробного описания для входящих и ис­ходящих потоков данных. Например, вход может иметь название "Предварительный диагноз пациента", а выход — "Уточненный диаг­ноз пациента".

Определение механизмов исполнения. После создания входов и выходов можно приступить к рассмотрению механизмов исполнения или ресурсов, относящихся к функциональному блоку. В понятие ме­ханизма исполнения входят персонал, оборудование, информацион­ные системы и т.п. Например, функциональный блок "Собрать де­таль" может потребовать использования какого-либо оборудования, например, гаечного ключа. При приеме экзаменов на водительские права механизмом исполнения является инспектор ГИБДД. Как пра­вило, определить механизмы исполнения для функциональных бло­ков довольно просто.

Определение управления. Наконец, должно быть определено управление, контролирующее ход работы функционального блока. Все функциональные блоки в IDEF0 должны иметь хотя бы одно управление. В случаях когда неясно, относить ли стрелку ко входу или к управлению, следует ее рисовать как управление. Важно помнить, что управление можно рассматривать как особую форму входа функ­ционального блока.

Когда контекстная диаграмма представляется завершенной, по­пробуйте задать следующие вопросы:

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

Все функциональные блоки IDEF0 нумеруются. В номерах допус­кается использование префиксов произвольной длины, но в подав­ляющем большинстве моделей используется префикс А. Номер блока проставляется за префиксом. Контекстный блок всегда имеет но­мер АО.

Префикс повторяется для каждого блока модели. Номера исполь­зуются для отражения уровня декомпозиции, на котором находится блок. Блок АО декомпозируется в блоки Al, A2, A3 и т.д.; блок А1 — в А11, А12, А13 и т.д.; блок — А11 в А111, А112, А113 и т.д. Для каждо­го уровня декомпозиции в конце номера добавляется одна цифра.

Модели могут проектироваться как с использованием подхода "в ширину", когда каждая диаграмма максимально детализируется перед своей декомпозицией, так и с подходом "в глубину", когда сна­чала определяется иерархия блоков, а затем создаются соединяющие их стрелки. Естественно, возможно применение комбинации этих подходов, причем иерархия блоков может иногда немного меняться после того, как нарисованы стрелки. Это происходит в случае, когда создание стрелок может изменить понимание внутренней архитекту­ры моделируемого объекта.

Сформулированная цель моделирования содержит вопросы, на которые должна отвечать модель. Когда становится возможным по­лучение ответов на них с помощью модели, последняя считается удов­летворяющей поставленным требованиям и рассматривается как за­вершенная. При построении декомпозиции первого уровня нужно следить за тем, чтобы все блоки на диаграмме лежали внутри опреде­ленных ранее границ моделирования. Перед декомпозированием бло­ка нужно удостовериться, не приведет ли это к превышению установ­ленной ранее глубины детализации данной модели. Еще одно правило состоит в том, что IDEF0-моделирование должно продолжаться до тех пор, пока стрелки предшествования (вход и выход) преобладают на диаграммах.

При необходимости дальнейшей детализации отдельных процес­сов может быть использована методология IDEF3.

В дополнение к контекстным диаграммам и диаграммам декомпо­зиции при разработке и представлении моделей могут применяться другие виды IDEF0-диаграмм.

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

 image069

Рис. 4.11

Презентационные диаграммы. Презентационные диаграммы (For Exposition Only diagrams — FEO diagrams) часто включают в мо­дели, чтобы проиллюстрировать другие точки зрения или детали, выходящие за рамки традиционного синтаксиса IDEF0. Диаграммы FEO допускают нарушение любых правил построения диаграмм IDEF0 в целях выделения важных с точки зрения аналитика частей модели. Ес­тественно, если диаграмма FEO включена в модель исключительно для отображения другой точки зрения на систему, она, скорее всего, внешне будет выглядеть как обыкновенная IDEF0-диаграмма, удовле­творяя всем ограничениям IDEF0.

Один из способов использования FEO-диаграмм состоит в отделе­нии функционального блока от его окружения посредством создания диаграммы с единственным блоком и всеми относящимися к нему стрелками наподобие контекстной диаграммы (рис. 4.12). Это может оказаться полезным в ситуациях, когда необходимо быстро получить информацию об интерфейсе (стрелках) функционального блока, а со­ответствующая диаграмма декомпозиции содержит слишком много объектов.

Кроме того, встречаются следующие виды презентационных диа­грамм:

  • копия IDEF0-диаграммы, которая содержит все функциональные  блоки и стрелки, относящиеся только к одному из функциональных блоков, — это позволяет отразить взаимодействие между этим блоком и другими объектами диаграммы;

 

Рис. 4.12

  • копия IDEF0-диаграммы, которая содержит все функциональные блоки и стрелки, непосредственно относящиеся только ко входу и/или выходу родительского блока;
  • различные точки зрения, как правило, на глубину одного уровня декомпозиции.