Как составить функциональную модель

Описание графической нотации IDEF0. Определение стандарта. Особенности функционального моделирования бизнес-процессов. Пример нотации IDEF0 и его подробное описание. Перечень важных ошибок при использовании IDEF0.

“Одна картинка стоит тысячи слов.“

Народная мудрость

Зачастую в моей работе возникает необходимость не просто изучить и решить определенную проблему, но выявить ее местонахождение в общей модели работы компании. Мало понимать, что определенное подразделение работает неправильно, важно понимать, каким образом оно взаимодействует с другими. Иначе невозможно выявить все существующие проблемы и выбрать оптимальный метод решения поставленной задачи.

А для этого требуется изучить работу компании и составить ее функциональную модель.Конечно, в теории функциональная модель работы компании должна быть у руководителя, причем, не важно, идет речь об организации работы склада или об IT системе (от лида до заявки).

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

Несколько слов о преимуществах графики

Как известно, функциональные модели IDEF0 — это всегда графические схемы. У них есть свои особенности и правила составления. Об этом мы поговорим чуть-чуть позже. А сейчас я хотел бы привести пару примеров эффективности графики. Почему я делаю на этом акцент? Скорей всего, после моего утверждения о необходимости функциональной модели работы компании, очень многие подумали, что это все необязательно, можно и на словах пояснить как работает та или иная функция в компании. Вот об этом я и хочу поговорить.

И для начала сделаем небольшой экскурс в историю. Вернемся в далекий 1877 год, в период Русско-Турецкой войны. Именно тогда полиграфист Сытин впервые применил графику при описании военных действий. Сейчас для нас все это привычно, при описании любого сражения у каждого перед глазами возникают карты со стрелками, которые наглядно показывают ход сражения. А в те времена военные действия описывались словами. Для каждого боя — много-много слов. И понять в итоге, что же происходит, было очень сложно. А потому идея Сытина была поистине революционной — он начал печатать литографические копии карт с обозначением укреплений и расположений воинских частей. Назывались эти карты “Для читателей газет. Пособие”. Идея оказалась настолько актуальной, что первый же тираж “Пособий” разошелся мгновенно. И потом такие приложения были очень востребованы.

Причина очевидна. Графика помогала понять то, что при помощи одних слов разобрать было практически невозможно. Аналогичный пример беспомощности словесных описаний я могу привести также из своей практики. Один из моих заказчиков очень просил взяться за внедрение ERM-системы для его компании.

На вопрос, есть ли у них какое-то техническое задание, я получил ответ: “Да, есть. Но в нем 400 страниц”. При этом клиент очень жаловался, что мои коллеги, к которым он обращался ранее, либо отказывались от проекта вообще, либо называли явно завышенные цены.

После того, как я увидел, что в техническом задании действительно 400 страниц, и состоит оно исключительно из текстового описания, я понял причины поведения разработчиков. Прочитать такой объем текста, вникнуть в него, разобраться во всех нюансах только для того, чтобы понять задачу и назвать цену — это и правда очень сложно.

Этому клиенту я предложил альтернативный вариант — описать все, что можно, графически в виде нотаций. Показал ему примеры моделирования. В итоге они сейчас переосмысливают свои пожелания и оформление технического задания. Знаю я также много других примеров, когда графическое моделирование бизнес-процессов помогало в работе как моим коллегам, бизнес-консультантам и разработчикам, так и самим бизнесменам.

Почему это важно для моей работы

Моя работа всегда связана с внесением изменений в существующую КИС. А для того, чтобы внести изменения и получить нужный результат, нужно изучить то, что существует уже сейчас. И не важно, что именно мы делаем – настраиваем или устанавливаем с нуля CRM-систему, создаем эффективную ERP-систему, занимаемся интеграцией различных систем для повышения автоматизации работы в целом. В любом случае, для начала, необходимо получить представление о существующей схеме работы, и только после этого можно предлагать какие-то изменения и продумывать варианты решения поставленной задачи.

После изучения существующего положения вещей я, как и любой другой сторонний специалист, создаю коммерческое предложение, в котором максимально подробно раскрываю мое видение текущей ситуации, а также действия, которые необходимо выполнить для решения поставленной задачи, и, конечно, ожидаемый результат. Такие отчеты об обследовании работы получаются объемные, занимают не одну страницу, что с одной стороны, необходимо, а с другой – усложняет восприятие. Вначале я, как и многие, думал, что объемные отчеты — это хорошо, ведь человек платит за работу и нужно ему предоставить максимум подробной информации. Пример одного из моих отчетов в текстовом виде.

На самом деле, важно не предоставить объем, а максимально быстро и полно донести суть. Большие объемы текста требуют времени, которого у руководителей чаще всего очень мало. А графика позволяет сократить объем моего предложения и наглядно, в понятной форме показать решение. В результате мои предложения значительно сократились, в них появилась графика, а решения о начале сотрудничества стали приниматься быстрее. Именно по этой причине я использую наглядные модели.

Как известно, одна картинка стоит тысячи слов. И в случае описания бизнес-процессов и вариантов модернизации работы бизнеса – это действительно так. И здесь очень хорошо подходят нотации IDEF0.

Но для начала, давайте разберемся с основными понятиями, что такое нотации, зачем они нужны, что такое IDEF0, в чем особенности и преимущества этого метода

Что такое нотация описания бизнес-процессов

Нотацией называется формат описания бизнес-процесса, представляющий собой совокупность графических объектов, используемых при моделировании, а также правил моделирования. По сути и смыслу – это особый графический язык, который позволяет описывать работу компании, наглядно демонстрировать взаимодействие между различными подразделениями, т.е. описывать бизнес-процессы.

Нотации могут применяться для процессного или функционального моделирования. В общем, нотации можно назвать языком программирования при бизнес-анализе

Что такое IDEF0?

IDEF0 — методология функционального моделирования (англ. function modeling) и графическая нотация, предназначенная для формализации и описания бизнес-процессов. Отличительной особенностью IDEF0 является ее акцент на соподчиненность объектов. В IDEF0 рассматриваются логические отношения между работами, а не их временна́я последовательность (поток работ). Википедия.

Стандарт IDEF0 был разработан в 1981 году в США департаментом Военно-воздушных сил для автоматизации промышленных предприятий. В процессе разработки программного обеспечения разработчики столкнулись с необходимостью разработки новых методов анализа бизнес-процессов. В результате появилась методология функционального моделирования IDEF0, в которой для анализа применяются специальные нотации IDEF0.

Функциональная модель компании

Функциональная модель IDEF0 представляет собой набор блоков, каждый из которых представляет собой «черный ящик» со входами и выходами, управлением и механизмами, которые детализируются (декомпозируются) до необходимого уровня. Наиболее важная функция расположена в верхнем левом углу. А соединяются функции между собой при помощи стрелок и описаний функциональных блоков. При этом каждый вид стрелки или активности имеет собственное значение. Данная модель позволяет описать все основные виды процессов, как административные, так и организационные. Стрелки могут быть:

  • Входящие – вводящие, которые ставят определенную задачу.
  • Исходящие – выводящие результат деятельности.
  • Контроль (сверху вниз) – механизмы управления (положения, инструкции и пр).
  • Механизмы (снизу вверх) – что используется для того, чтобы произвести необходимую работу.

Входящие и исходящие стрелки точнее было бы называть вводящими и выводящими, так как по-английски они называются Input и Output соответственно. Но особенности перевода и привычные названия выглядят уже так, как сложилось. И все же для правильного понимания терминов важно помнить их значение в данном случае. Это подтверждается еще и тем, что данная нотация создана прежде всего для разработки ПО, и термины переводить правильнее в этой точки зрения.

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

Для работы с ним существует множество инструментов, например, VISIO, BPWIN, ERWIN, Business studio и т.д. Кроме того, использование для создания бизнес-моделей IDEF0 — это не только удобно, это еще и правильно. Этот инструмент был разработан для бизнес-аналитики, он прошел длительную и тщательную отладку и шлифовку.

А потому при помощи IDEF0 создать функциональную модель без ошибок намного проще, чем без применения этого стандарта. Как известно, забивать гвозди лучше всего молотком. Конечно, вы можете для этого применять и другие инструменты, но молоток — наиболее функционален и с его помощью проще всего забить гвоздь аккуратно и точно. Так и с применением IDEF0 — этот инструмент был создан для функционального моделирования, и с его помощью вы намного быстрее и точнее сможете получить нужный результат.

Пример создания функциональной модели IDEF0

Для того чтобы понять, как работать с функциональным моделированием, я приведу пример процесса написания статьи. Основной блок – «Написать статью».

пример описания модели верхнего уровня

Вводящие стрелки – «Опыт», «Информация из сторонних источников». Это те вводные, которые необходимы для начала работы. Управляющие для написания статьи – это «План публикации», «Требования издателя», «Правила русского языка».

А в роли «Механизмов» выступают автор, копирайтер, корректор и программное обеспечение. В данном случае автор создает аудиоматериал, в котором собирает все мысли и идеи, которые должны быть отражены в статье. Копирайтер – это человек, который создает на основе этого материала, руководствуясь требованиями издателя, планом публикации и правилами русского языка, готовый текст статьи.

Корректор проверяет материал на ошибки. А программное обеспечение – это те инструменты, которые используют в работе все участники процесса. Таким образом, я задал основные параметры процесса, его вход, выход, а также все необходимое для успешного проведения процесса.

Но это – только основные рамки функции. Так описывается общая схема работы компании в целом. На самом деле, процесс создания статьи, как и любой бизнес-процесс можно и нужно детализировать. Для этого я декомпозирую общий блок «написать статью» на связанные между собой элементы. В нашем случае работа делится на 4 основных этапа:

  1. Создать аудио запись статьи.
  2. Создать статью
  3. Подготовить текст к публикации.
  4. Разместить статью в издании.

IDEF0 A0

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

При создании функциональной модели ключевыми параметрами являются цель и точка зрения. Исходя из них, моделирование одних и тех же процессов может выглядеть несколько по-разному. Например, в моем случае целью является «рассказать о процессе написания статьи». А точка зрения копирайтера – это «написание и публикация статьи с точки зрения руководителя процесса».

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

Если я поставлю задачу оптимизировать финансирование проекта, то я благодаря схеме сразу увижу, где это и как можно сделать. Так, к копирайтер и корректор пользуются примерно одинаковыми правилами, но копирайтер получает аудио, а выдает результат в виде текста, корректор же и принимает, и отдает текст.

А потому при необходимости я могу, скажем, за половину стоимости обязанности корректора предложить копирайтеру. Так я сэкономлю средства и время на взаимодействие разных специалистов. Конечно, я понимаю все заслуги корректоров и почему лучше работать с отдельным специалистам. Но напоминаю — у меня стоит задача: оптимизация затрат. Без такого наглядного инструмента было бы сложнее определить, какие из блоков можно удалить и, таким образом, оптимизировать работу.

Как создавать нотации IDEF0

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

 IDEF0

Я лично считаю, что на первом этапе нет ничего лучше, чем обычная бумага, простой карандаш и ластик, чтобы вносить корректировки в случае ошибок. Для того чтобы создать нотацию существующих бизнес-процессов, т.е. описать, как сейчас работает компания, необходимо принципы работы изучить. Сторонний специалист (консультант, разработчик) для этого проводит интервью. На первом этапе на вопросы отвечает руководитель компании, далее в процессе детализации нотации проводятся интервью сотрудников, отвечающих за различные этапы работы.

При этом важно понимать, что в результате потребуется 2 нотации . Первая будет отображать бизнес-процессы в виде «как есть». Ее вы создаете на основе интервью и согласовываете каждую детализацию с сотрудниками компании и руководителем. Очень важно, чтобы ваше видение существующих процессов совпало с реальностью, именно для этого и требуется подтверждение на всех уровнях. Вторая нотация – «как должно быть».

Она создается на основе первой и тех изменений, которые вы предлагаете внести в структуру работы для оптимизации и автоматизации работы компании в рамках выполнения поставленной задачи. Требования стандарта IDEF0 Базовые требования стандарта IDEF0, в принципе, я описал выше и показал на примере.

  1. В левом верхнем углу всегда – главный элемент.
  2. Все элементы должны иметь входящие и исходящие стрелки, так как для выполнения необходимо что-то получить на входе (заказ, поставленную задачу), а после обработки на выходе необходимо передать готовый продукт. Входящие стрелки всегда слева, исходящие – справа.
  3. Сверху – управляющие элементы, снизу – механизмы, необходимые для выполнения процесса.
  4. Если на одном листе (экране) располагается несколько блоков, каждый последующий располагается справа и ниже предыдущего.
  5. Необходимо стремиться создавать схемы таким образом, чтобы пересечение стрелок было сведено к необходимому минимуму.

Сам стандарт IDEF0 описан разработчиками в документе перевод которого вы найдете в статье Перевод стандарта IDEF0 с английского на русский язык.

Точка зрения

2 основополагающих требования к модели.

В требованиях к диаграмме и построению модели в нотации IDEF0 есть требование, которое звучит так: любая диаграмма должна быть построена, исходя из точки зрения (Point of view) и цели (Scop). Именно этот вопрос, скажем так, один из основополагающих — точка зрения и цель. Соответственно, если мы хотим построить правильную диаграмму, нам необходимо выбирать правильно точку зрения. 

Если мы заглянем в само описание стандарта, то мы увидим два определения, которые не особо вносят ясность. Первое определение:

точка зрения — это краткое изложение перспектив и модель. 

Второе определение:

Точка зрения определяет, что можно «увидеть „в контексте модели, с какой точки зрения или “под каким углом». В зависимости от поставленной цели могут быть приняты точки зрения, учитывающие различные аспекты объекта. На модель существует только одна точка зрения. 

Возникают соответствующие вопросы. Как выбрать точку зрения? Что это вообще такое? То есть не с точки зрения именно модели, а с точки зрения построения модели и именно выбора. В самой диаграмме практически нет никакой информации. Давайте же восполним этот пробел. 

Выбор точки зрения.

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

Первое правило: выбор места в иерархии.

Для начала давайте взглянем на простой пример — это склад. Представим себе, что у нас на складе работает 4 человека . Это первый  работник склада который отвечает за приемку, второй работник склада который  отвечает за хранение, третий работник склада который  за отгрузку товара  и руководитель склада, тот, кто  соответственно руководит и контролирует.  

Точка зрения: работник склада.

Если я, допустим, выберу точку зрения работника склада, то, что я увижу? Я увижу товар, требования к товару, требования к документации, свое рабочее место. Если я отвечаю только за приемку, то увижу только зону приема. В этом случае сам склад, место хранения, я могу не увидеть и зону отгрузки тоже могу не увидеть. Соответственно, что мы здесь видим? Мы видим, что наша точка зрения обусловлена тем, где мы находимся в иерархии. Проще говоря, мы видим то, что нам разрешено увидеть. Значит, первое правило — мы должны понимать, кто мы в иерархии предприятия, то есть с какой точки зрения мы смотрим. 

Точка зрения: руководитель склада.

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

Второе правило: выбор окружения

Отсюда же следует второй вопрос — что конкретно мы видим? Допустим, я работник склада, и я вижу то, что меня окружает: рабочее место, допустим, какой-то компьютер, доступ в какую-то систему учетную и ещё что-то в этом роде. И если я, описываю с точки зрения работника склада, работника приемки, назовём это так, то для меня эти все вещи будут важны.  

Но все ли они важны для меня, если я решил автоматизировать это рабочее место? Важна ли для меня с точки зрения автоматизации, например, чистота? Или важно для меня, какой у меня стол, наличие стула и тому подобные вещи? Нет, они не важны! Также не важны для меня и различные инструкции, потому что при автоматизации этот момент я опускаю.  

Соответственно, мы приходим ко второму правилу — это выбор окружения. То есть мы должны понимать, что нас окружает и выбирать из этого окружения, то, что мы будем учитывать в нашей модели.  Это второе правило.

Третье правило: приоритет.

Третье правило следует из второго — это приоритет. То есть, даже если я смотрю с точки зрения автоматизации, у меня есть документация, документы входящие и исходящие, у меня есть компьютер какой-то, у меня есть сканер — нужно ли мне это отражать с точки зрения автоматизации или не нужно? То есть это есть в окружении, это есть на моей точке иерархии, но мне, допустим, не нужен сканер при работе, если я автоматизирую используя программное обеспечение. Я опускаю именно техническую сторону с точки зрения оборудования. Исходя именно из своих приоритетов, я убираю упоминание оборудования. 

Соответственно, если подытожить, во-первых, когда мы выбираем точку зрения, мы должны исходить из того, кто мы по иерархии, как смотрящий. Во-вторых, в каком мы окружении находимся, и в-третьих, выбираем приоритетность объектов в  окружении, исходя из цели описания создания модели.  

Цель создания модели.

Второе требование, обязательное при создании модели, — это цель создания модели. И вот здесь есть очень важный нюанс. Цель создания модели влияет на то, как мы будем выбирать точку зрения и тому подобные вещи. 

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

Цель создания модели это другими словами то для чего эта модель будет использована.

Типичные ошибки

Функциональное моделирование выполняют при помощи самых разных инструментов, в том числе, не предназначенных для моделирования. В последнем случае нет проверки на ошибки и ограничения стандарта. Желание повысить наглядность и отсутствие опыта при этом часто оканчиваются ошибками.

Использование различных цветов

Все элементы на диаграмме одинаково важны. При функциональном моделировании нет более или менее важных элементов. Исчезновение любого приведет к нарушению процесса и производственному браку.

Часто при моделировании на бумаге или в различных программах пользователи пытаются повысить наглядность за счет использования разных цветов. Это одна из самых распространенных ошибок. На самом деле, применение разноцветных стрелок и блоков только вносит дополнительную путаницу, а также искажает восприятие схемы.

Ваша модель должна читаться в черно-белом виде, без каких-то дополнительных цветовых решений. Такой подход одновременно помогает избежать недоразумений и дисциплинирует создателя модели, в результате читабельность и грамотность модели повышаются.

Слишком большое количество блоков

При составлении модели часто стараются отобразить на одном листе все нюансы работы компании со всеми подробностями. В результате получается очень большое количество блоков с большим количеством управляющих стрелок.

Читабельность при этом теряется. Оптимальный вариант – это детализация, достаточная для понимания вопроса, и не более того. Подробная детализация работы каждого подразделения или даже сотрудника может раскрываться при выборе подробного просмотра того или иного процесса. И создается такая структура только если это действительно нужно для работы или принятия решения.

Нарушение структуры при внесении корректировок

Внимательно следите за тем, чтобы не возникло путаницы или процессов без входящих, исходящих и других важных элементов. Например, если в приведенном выше примере, я посчитаю нужным сместить точку зрения на копирайтера, я удалю из схемы автора. И тогда управляющие элементы «опыт автора и сторонние источники», а также план публикации становятся ненужными. Ведь ими пользуется автор. Копирайтер работает с аудиофайлом.

И если они останутся в общей схеме, то при детализации будут вести непонятно куда и вносить путаницу. Аналогично, если я решу добавить какой-то блок, важно убедиться, чтобы он также имел все необходимые атрибуты. Здесь очень важна внимательность, так как при моделировании сложных бизнес-процессов изменения в одной части модели могут повлечь за собой изменения в другой. Их обязательно нужно внести.

Правила названия управляющих элементов и блоков

Важно запомнить простое правило: управляющие стрелки называют именами существительными, блоки – глаголами. Так принято в стандарте IDEF0, и такой подход помогает избежать путаницы и ошибок. Чаще всего ошибки допускают при названии блоков. Например, вместо «Создать статью» пишут «Создание статьи». Блоки в данном подходе – это действия, а потому они должны быть всегда глаголами.

Выгоды использования IDEF0

  • Самая первая выгода очевидна – это наглядность. Вы сами начинаете понимать, как работает та или иная система, и можете также наглядно пояснить, где в этой системе «тонкие места» и как ваши решения помогут избавиться от них.
  • Взаимопонимание и отсутствие разночтений. При обсуждении работы компании с использованием функциональной модели у вас имеются наглядные и понятные интуитивно блоки задач с управляющими элементами. Кроме того, функциональное моделирование предполагает создание в случае необходимости глоссария, в котором раскрываются условные обозначения и термины. В результате вы с клиентом, руководителем, другими сотрудниками при обсуждении проблемы говорите на одном языке.
  • Простота и высокая скорость создания модели. Конечно, научиться моделированию не так просто, как кажется. Ведь схема — это, по сути, сверхплотная подача информации, что очень хорошо для понимания, но для реализации такой подачи требуется особый подход. Мозг аналитика выступает в данном случае как очень мощный пресс с одной стороны, и фильтр – с другой. Но с опытом этот процесс становится очень быстрым. В результате вы получаете инструмент, который поможет и самому разобраться, что же происходит в той или иной системе, и при помощи созданного в сжатые сроки наглядного пособия проиллюстрировать важные моменты коллегам или заказчикам.
  • Дисциплина и отсутствие ошибок. Стандарт IDEF0 предполагает строгие рамки и правила. Такой подход дисциплинирует, а привычка действовать в рамках стандарта помогает избежать ошибок по невнимательности. Любые нарушения стандарта становятся сразу заметны.

В чем трудность применения IDEF0

Важно понимать, что только в самых простых случаях два бизнес-аналитика создадут для описания работы компании абсолютно одинаковые функциональные модели. Любая модель – это отражение опыта аналитика, глубины понимания работы бизнеса, который он стремится описать, а также, в некотором роде, его личная точка зрения на этот бизнес. Т.е. человек разрабатывает бизнес-модель с точки зрения руководителя, как будто этим руководителем является именно он.

При этом я считаю, что бизнес-аналитик — это не совсем профессия, бизнес-аналитикой занимается каждый руководитель бизнеса или разработчик каких-то систем, который анализирует бизнес и стремится выстроить наиболее эффективную систему. Именно для этих людей и для этих целей предназначен инструмент IDEF0. А потому очень важно при составлении функциональной бизнес модели «как есть» постоянно советоваться с руководителем компании, чтобы не совершить ошибки, которая повлечет за собой автоматически ошибки на этапах декомпозиции. Также на последующих этапах могут потребоваться дополнительные согласования с руководителями структурных подразделений и сотрудниками.

Только если ваша функциональная модель «как есть» будет действительно отражать реальное положение вещей, можно вносить какие-то изменения и предложения. А для достижения качественных результатов в такой работе требуется, прежде всего, практический опыт и знание особенностей того или иного вида бизнеса.

Как правильно называются стрелки в IDEF0

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

Сразу уточню, что в Рунете часто можно увидеть неправильные названия, которые приводят к путанице. 

Основные стрелки в IDEF0:

  • Input
  • Control
  • Output
  • Mechanism

Вместе этот тип элементов называют ICOM, т.е. это сокращение от названий всех типов стрелок. Именно так постоянно пишут в самом стандарте. Потому, когда вы видите упоминание ICOM, просто помните, что это значит — «Input, Control, Output, Mechanism».

Как это переводится?

  • Input — Ввод
  • Control — Контроль
  • Output — Вывод
  • Mechanism — Механизм

Но в русскоязычных публикациях часто можно увидеть иной, не правильный перевод.

Input и Output

Input переводят ошибочно как Вход. Но при таком прочтении искажается смысл и сдвигается фокус внимания. Ведь вход ассоциируется с какими-то дверями, т.е. акцент идет на то, что мы должны куда-то войти. Найти вход и попасть через него куда-то. На самом деле, это не так. 

Кроме того, вход – это нечто, которое имеет определенные координаты. Потому мы естественным образом думаем, «вот тут вход» или «вход – вон там». И он всегда будет на этом месте. И логично, что, когда мы используем термин «Вход», мы изначально концентрируемся на том, что нам нужен именно вход, и главное, его найти и воспользоваться этой, так сказать, «дверью». А потому расположение элемента входящей стрелки в пространстве кажется очень важным.

Но это неправильно. Input – это не Вход, а Ввод. И точно такая же ситуация со стрелкой Output, которую часто ошибочно переводят как «Выход».

 Дело в том, что мы описываем функциональную модель, и наши стрелки граничат с блоком функции (F). И, соответственно, мы должны сконцентрироваться на том, что после ее выполнения мы должны что-то получить и вывести. А для того, чтобы что-то вывести, нужно для начала что-то ввести. 

В качестве примера такой функции можно рассмотреть автоматизированное химическое производство. У нас есть цех, где стоят станки с ЧПУ и в автоматическом режиме выполняется некий набор действий. Ингредиенты смешиваются, в некоторых случаях подогреваются или охлаждаются, выполняется некая последовательность действий, которая нас здесь и сейчас не интересует. Это наша функция.

Но чтобы функция выдала готовый продукт, нужно для начала ввести необходимые ингредиенты. Они не смогут сами “войти” во вход, их именно нужно подать туда, где будет выполняться производственный процесс (наша функция), т.е. ввести их в цикл производства. Именно ввести.

Далее на выходе мы получим, например, шампунь, моющее средство или любой другой продукт. Но он также не будет сам “выходить”. Более того, нам на самом деле не слишком принципиально, будет ли место выхода находиться в определенной пространственной точке. Где будет удобно реализовать, там и будет выход. С точки зрения функционального анализа это не интересно, это вопрос к монтажникам и инженерам. Нам важно понимать, что наш готовый продукт нужно вывести, а потому их функции должен быть именно вывод, а не выход.

Кроме того, перевод Input – Ввод, а Output – Вывод, наиболее точен. Именно так эти слова переводятся с английского языка.

Control и Mechanism

Далее, ошибки в переводе слова Control также постоянно повторяются, и они столь же некорректны. Часто Control переводят как «Управление». И это неправильно.

Если мы говорим об управлении, то подразумеваем, что есть какая-то воля, что мы напрямую чем-то управляем и принимаем решения. Но если мы занимаемся функциональным анализом предприятия, то управлением здесь занимаются люди. А потому именно об управлении стоит говорить, когда вы применяете стрелки Mechanism, т.к. именно люди в данном случае – те самые инструменты, которые задействованы в вопросах управления. Именно люди занимаются тем, чтобы из ввода получить вывод.

Например, мы описываем работу отдела продаж. В нем имеется руководитель отдела продаж и рядовые сотрудники. Все эти люди с точки зрения функциональной модели – Mechanism (механизмы).

А если речь идет о стрелках Control, то тут мы имеем в виду именно контроль, т.е. нечто, с помощью чего мы контролируем функцию. Для контроля мы все используем какие-то наборы правил и стандартов, потому здесь уместно говорить об инструкциях, должностных инструкциях, приказах, даже о Гражданском кодексе, санитарно-гигиенических и других правилах, требованиях к оснащению рабочего места и так далее. Все это – контроль.

Таким образом, контроль – это то, на что мы ориентируемся, что нами руководит, а не те решения, которые мы принимаем в процессе работы.

Если в качестве «Механизма» выступает компьютерная программа, то контроль уже заложен в ее коде. И при написании этого кода в том числе используются инструкции, правила и другие документы.

Если речь идет о человеке, управлять извне им невозможно. Потому человек будет сам собой управлять и сам себя контролировать, но для этого ему нужны те самые инструкции и правила, на которые он будет ориентироваться при самоконтроле.

Таким образом, Механизм, независимо от того, будет это автоматический механизм, информационная система или человек, контролируется посредством соответствующих документов.

Как видите, все просто. Если вы правильно переводите термины, а именно:

  • Input — Ввод
  • Control — Контроль
  • Output — Вывод
  • Mechanism — Механизм

Вы избегаете ненужной путаницы. И четко понимаете, что вам нужен именно ввод, вывод, контроль в виде задокументированных правил, на которых строится работа, и механизм, т.е. кто или что будет выполнять работу.

Модель работы швейного предприятия

В этом случае компания собиралась внедрять 1С. Управление производственным предприятием, и также нужно было навести порядок, чтобы каким-то образом стандартизировать и автоматизировать работу.

Цель

Поставленная задача: разобраться с тем, как работает производственная компания, предложить решения для автоматизации, стандартизировать работу, повысить ее эффективность.

Я запросил описание работы компании, получил документы, в том числе, описание структуры, но из них также было сложно понять, как на самом деле работает организация.

Описание

По итогам предоставленной информации я понял, что автоматизация невозможна. Нет целостной картины, да и сами сотрудники работают очень по-разному, т.е. кому как удобнее. В результате была создана диаграмма, на основе которой проводилась автоматизация.

Также была задача уменьшить срок рассмотрения заявки на производство от клиента.

Я создал модель, разделил все этапы работы на функции. Далее каждую из них мы с клиентами рассматривали с точки зрения процессов и возможности автоматизации. Например, выбиралась функция «Проектирование производства», и для нее выполнялась автоматизация.

Описание работы швейной фабрики A-0
Описание работы швейной фабрики A0

Критика

Данную диаграмму в группе не критиковали, но я сам напишу что в ней не так с моей точки зрения. В принципе, цель была достигнута, и диаграмма свою роль в этом сыграла. Но здесь я уже стремился сделать функциональную модель IDEF0. И с этой точки зрения диаграмма неправильная:

  1. Мы видим 7 блоков. IDEF0 по стандарту требует максимум 6 блоков.
  2. В диаграмме используются такие фразы, как «исследование рынка», «проектирование». Это также ошибки. Если вы ознакомитесь с моим переводом стандарта IDEF0, то там описывается, что функции должны называться глаголом в совершенной форме, т.е. давать ответ на вопрос «что необходимо сделать». В данном случае вместо «Исследование рынка» правильно написать «Исследовать рынок. Не «Проектирование продукции», а «Спроектировать продукцию». Не «Проектирование производства», а «Спроектировать производство» и т.д. Есть и другие ошибки в названиях. Например, при декомпозиции хорошо видно название «Производство и реализация швейных изделий». Здесь не должны объединяться два разных действия союзом «И». Должно быть либо производство, либо реализация, точнее – «произвести» или «реализовать», так как по правилам нотации не должно быть союза «и», каждый блок описывается фразой с одним глаголом, который выражает функцию.

С другой стороны, несмотря на ошибки, диаграмма – рабочая. Проект длился около 2,5 лет, все этапы были автоматизированы успешно. В результате ответ на запрос о возможности выпуска продукции стал приходить не через 2,5 месяца, а в течение 10 дней, что для этого вида бизнеса – очень короткий срок. Были достигнуты и другие цели, в частности, опираясь на эту диаграмму.

Вывод: формально диаграмма неправильная, с точки зрения достижения цели – правильная.

Ещё пример моделирования в IDEF0

В своей новой статье я привожу пример использования IDEF0 в торговом предприятии:

УФМТП. Универсальная функциональная модель торгового предприятия в нотации IDEF0

3.1. Методология idef0

Для построения функциональных моделей
обычно используется методология IDEF0,
которая хорошо представлена в пакетахDesign/IDEFиBPwin(AllFusionProcessModeler4.1) [3].

Построение IDEF0-моделей в
среде этих двух пакетов практически не
отличается, но вBPwinвозможно построение интегрированных
функциональных моделей, объединяющих
три вида методологий:IDEF0,IDEF3 иDataFlowDiagram(диаграмм
потоков данных,DFD).

В IDEF0 реализованы идеи
системного анализа, под которыми понимают
исследования, начинающиеся с общего
обзора системы, а затем детализируют
ее в виде иерархической структуры с
определенным числом уровней, на каждом
из которых не более 8 элементов. В
результате система разбивается на
функциональные части, дается их описание,
исследуются информационные потоки и
формализуется структура данных. В основе
структурного анализа используются два
базовых принципа: принцип «разделяй и
властвуй» и принцип иерархического
упорядочения.

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

Второй
принцип

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

В нотации IDEF0 система
представляется в виде комбинации блоков
и дуг. Блоки используются для предоставления
функций системы и сопровождаются
текстами на естественном языке. Дуги
представляют собой множества объектов
(как физических, так и информационных)
или действия, которые образуют связи
между функциональными блоками.

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

Методология
IDEF0

используется для создания функциональной
модели, которая является структурированным
изображением функции производственной
системы, а также содержит информацию
об объектах, связывающих эти функции.

Результатом
применения IDEF0-методологии является
функциональная модель, которая состоит
из диаграмм, фрагментов текста и
глоссария, имеющих ссылки друг на друга.

Диаграммы
являются главными компонентами модели.

Основными
элементами диаграмм являются функциональные
блоки и дуги, которые представляются
соответственно прямоугольниками и
стрелками.

Блоки
на диаграмме представляют функции,
которые показывают, что должно выполняться,
и поэтому имена функций содержат
глагольный оборот. Каждый блок имеет
свой номер, который размещается обычно
в нижнем правом углу.

Дуги
представляют собой материальные объекты
или информацию, в которых блоки нуждаются
или их производят. Каждая дуга имеет
метку — имя, которое записывается над
дугой в виде оборота существительного.
Дуги могут разветвляться и соединяться,
образовывать обратные связи, итерации.

В
IDEF0
используется четыре типа дуг: входные
(INPUT),
управления (CONTROL),
выходные (OUTPUT)
и механизма (MECHANIZM),
представ-ляющие собой ICOM-объекты
(аббревиатура из первых букв английских
названий дуг). В качестве иллюстрации
приведем контекстную диаграмму
функциональной модели кардиологического
терапевтического отделения (рис. 3).

Входы
(INPUT) — это материалы или информация,
которые используются или преобразуются
функциональным блоком для получения
результата. Они входят в функциональный
блок слева. Допускается отсутствие
входных дуг.

Управление
(CONTROL) — это правила, стратегии, процедуры
или стандарты, которыми руководствуется
функциональный блок. Дуги управления
входят в функциональный блок сверху.
Должна быть обязательно хотя бы одна
дуга.

Механизмы
(MECHANIZM) — это ресурсы, которые выполняют
работу в функциональном блоке (персонал,
станки, транспорт и т.д.). Эти дуги входят
в функциональный блок снизу. По усмотрению
системного аналитика дуги механизма
могут не отображаться на диаграмме.
Дуги механизмов или управления могут
быть входами других блоков.

Рис. 3. Контекстная диаграмма методологии
IDEF0

.

Выходы
(OUTPUT) — это данные, которые получаются в
результате выполнения функции или могут
быть материалом или информацией, которая
производится функциональным блоком.
Выходные дуги выходят справа от
функционального блока. Обязательно
должна быть хотя бы одна дуга, иначе
функциональный блок не имеет смысла.

Контекстная
диаграмма является верхним уровнем
иерархии функци-ональной модели и
представляет собой наиболее обобщенную
схему функционирования предметной
области.

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

Рис.
4. Окно выбора методологий и количества
блоков декомпозиции.

Рис. 5. IDEF0-диаграмма второго
уровня иерархии

Щелкнув
по клавише ОК, получают диаграмму
декомпозиции первого уровня, которая
содержит: выбранное выше количество
блоков и ICOM-коды,
то есть названия всех дуг контекстной
модели. Необходимо дать названия блокам,
подсоединить к ним по смыслу ICOM-объекты
и построить требуемые соединительные
(внутренние) дуги, присвоив им названия
(рис. 5).

Если
ICOM-объекты
не используются на каком-либо уровне
иерархии, то дуги, соединяющие эти
объекты, можно поместить в туннель.
Причем если в туннель помещен конец
дуги (конец дуги помещается в квадратные
скобки), то дуга и соответствующий ей
ICOM-объект
отсутствует на диаграмме-родителе. Если
в туннель помещено начало дуги, то дуга
и соответствующий ей ICOM-объект
отсутствуют на диаграмме-потомке (дуга
ВРАЧ на рис. 3).

Для
того чтобы извлечь дугу из туннеля,
необходимо курсор поместить между
квадратных скобок, а затем вызвать
щелчком ПКМ контекстное меню и выполнить
команду Arrow
Tunnel.
В появившемся диалоговом окне извлечь
дугу из туннеля.

Для перемещения
объекта необходимо вначале его выделить,
затем, при нажатой на нем ЛКМ, переместить
указатель объекта, который при этом
появится вместо курсора, в нужное место
и отпустить ЛКМ.

При
удалении объекта его необходимо выделить,
а затем нажать на клавишу <Delete>.

Для
редактирования графических параметров
объекта его следует выделить. После
этого установить указатель мыши на
необходимый маленький квадратик и,
удерживая ЛКМ, перемещать курсор до
получения желаемого графического
состояния редактируемого объекта.

Для
пропорционального изменения размеров
функционального блока его следует
потянуть за угловой квадратик.

У
выделенного объекта можно изменять тип
линий, толщину и цвет, а также его фон.
Это делается с помощью верхней
инструментальной панели стандартным
для Windows-приложений
способом.

Для
редактирования имен объектов необходимо
с ним совместить курсор, с помощью ПКМ
вызвать контекстное меню и воспользоваться
командой Name.

Для
удаления какой-либо из диаграмм, ее
необходимо открыть, выполнить команду
Edit/Delete
diagram
и щелкнуть по кнопке Delete.
Другой вариант удаления – выполнить
команду Diagram
/ Diagram
manager.

Для
сохранения модели требуется выполнить
команду File/Save.
Если модель сохраняется впервые, то при
выполнении этой команды откроется окно
диалога Save
Diagram
As
.
В разделе “Имя
файла

надо
набрать на клавиатуре имя файла
(рекомендуется давать имя файла латинскими
буквами) и нажать <OK>.

Рис.
6. Дерево узлов

Для
создания в автоматическом режиме отчета
по IDEF0-модели
необходимо находиться на любой
IDEF0-странице
и выполнить команду Tools/Report.
После этого открывается меню, в котором
следует выбрать один из семи отчетов,
а также тип, стиль и размер шрифта.

Иерархия
IDEF0-модели
может быть представлена в виде дерева
узлов. Для этого необходимо воспользоваться
командой Node
Tree
diagrams
в навигаторе, запускающей Мастер
построения диаграммы (Node
Tree
Wizard),
который позволяет задать необходимые
опции для выбора нужного типа диаграммы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Методические
указания

к
лабораторным работам

ПОСТРОЕНИЕ
СИСТЕМНОГО ПРОЕКТА

ИССЛЕДОВАНИЯ
ПРЕДМЕТНОЙ ОБЛАСТИ

Лабораторная
работа №1

МЕТОДИКА
ПОСТРОЕНИЯ ФУНКЦИОНАЛЬНОЙ МОДЕЛИ

ПРЕДМЕТНОЙ
ОБЛАСТИ ДЛЯ ПРОЕКТИРОВАНИЯ

АВТОМАТИЗИРОВАННОЙ
СИСТЕМЫ УПРАВЛЕНИЯ (АСУ)

1
Цель работы

Изучить
принципы разработки и формализации
предметной области в виде функциональной (
IDEF0)
модели.

2
Задачи работы

Освоить
приемы построения функциональной модели
предметной области.

3
Содержание работы

3.1
Изучить методику составления
функциональной модели.

3.2
Запустив приложение
IDEF
ознакомиться с элементами окна приложения.

3.3
Составить схему функциональной модели по
варианту, предложенному преподавателем (Приложение
А).

3.4
Заполнить глоссарий определениями (Приложение
Б).

3.5
Создать гипертекст к модели (Приложение В).

3.6
Сохранить на дискете файл с моделью и
оформить отчет.

4
Требования к отчету

Отчет
должен содержать:

             
название
работы и постановку задачи исследования;

             
сведения
о последовательности выполнения заданий;

             
спецификацию
для предметной области (см. п. 5.8);

             
ответы
на контрольные вопросы по указанию
преподавателя.

5
Основные теоретические положения

В
последнее время разработка программного
обеспечения осуществляется по СА
SЕ-технологии
с применением
SADT
(
Structure
Analysis
and
Design
Technique-Методология
Структурного Анализа и Проектирования). Это
позволяет создавать единое информационное
пространство на уровне менеджеров,
обеспечить функциональную обозримость
систем управления, осуществлять развитие
самой системы с наименьшими затратами,
производить актуализацию проектной
документации в электронном виде.

 Международный стандарт SADT
поддерживается специальным языком IDEF (ICAM
DEFinition methodology — Методология Определения ICAM
Integrated Computer-Aided Manufacturing — Интегрированная
Программа Компьютеризации Промышленности)
для описания проектов информационно-управляющих
систем. Существует несколько пакетов
программ, поддерживающих данный язык.

Пакет
прикладных программ
Design/IDEF
реализует методологии:

IDEFO
— функциональное моделирование;

IDEF1X
информационное моделирование;

IDEF/CPN
— динамическое моделирование.

5.1 Методология IDEFO
основана на представлении системы в
виде комбинации блоков и дуг. Блоки используются для
представления функций системы и
сопровождаются текстами на естественном
языке. Дуги представляют множества
объектов —  как физических, так и
информационных, или действия, которые
образуют связи между функциональными
блоками. Данные, управляющие выполнением функции,
входят в блок сверху. Подвергающаяся
воздействию функции информация
показана с левой стороны
блока; результаты выполнения
функции — показаны с правой стороны. Механизм,
осуществляющий функцию, представляется
дугой, входящей в блок снизу
(рисунок 1).


Рисунок
1 Компоненты функциональной модели

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

С
дугами связаны надписи 
на естественном языке, описывающие
данные, которые они представляют. Дуги
показывают, как функции между собой
взаимосвязаны, как они обмениваются
данными и осуществляют управление друг
другом. Выходы одной функции могут быть
Входами, Управлением или Исполнителями для
другой. Дуги могут разветвляться и
соединяться.

Функциональный
блок, представляющий систему в качестве
единого модуля, располагается на странице
верхнего уровня (А-0)  и
детализируется на диаграмме (более низкого
уровня) с помощью нескольких блоков,
соединенных между собой интерфейсными
дугами. Эти блоки представляют основные
подфункции (подмодули) единого исходного
модуля. Каждый из этих подмодулей может
быть декомпозирован подобным же образом на
страницах следующего уровня для более
детального представления.

Общая
схема составления функциональной модели
состоит
из следующих этапов:

1)             
Построение
модели (разработка функциональной
диаграммы; заполнение глоссария
дополнительными определениями; дополнение
диаграммы гипертекстом);

2)             
Проверка
синтаксиса модели (проверка на наличие
связей, на идентификаторы функций и связей,
на управление);

5.2
Основы работы в  приложении

Окно
системы, после запуска
программы, содержит стандартные для
Windows
элементы: строку заголовка, главное меню,
панели инструментов и рабочую область. Как
и многие приложения Windows, данная программа
работает в многооконном режиме. В отдельных
окнах отображаются разные функциональные
уровни одной модели. Кроме того, в
зависимости от выбранного режима
представления, в отдельном окне
отображается структура всей модели (всех
уровней). Возможны два таких режима: в виде
ориентированного графа (рисунок 2) и в виде
иерархического списка блоков (рисунок 3).

Главное
меню

программы составляют десять пунктов: FILE (файл),
EDID (редактирование), СREATE (создание), GLOSSARY (глоссарий),
MODIFY (изменение), SELECT (выбор), VIEW (представление),
DICTIONARY (словарь), WINDOW (окно), HELP (помощь).
Каждый пункт раскрывается щелчком мыши и
содержит команды, сгруппированные в блоки
по назначению. Недоступные в данный момент
команды обозначены тусклым цветом шрифта.
Действие команды, заканчивающейся
многоточием, уточняется выбором опций в
специальных диалоговых окнах. Некоторые
команды могут быть выполнены без вызова
главного меню с помощью сочетания клавиш
или кнопками панелей инструментов.

Две
верхние панели
инструментов
позволяют задавать формат и
режимы представления объектов рабочей
области. Левая (функциональная) панель
состоит из кнопок, предназначенных для
создания объектов, и ее содержимое может
изменяться в зависимости от установленного
режима.



Рисунок
2 Пример представления системы в виде
ориентированного графа

Курсор
мыши
в
рабочей области изменяет свой вид при
выборе некоторых команд. Например, при
построении блока он из обычного крестика
превращается в крестик с прямоугольником;
при вводе названия блока — в крестик и букву
Т; при построении дуги — в стрелку и т.д.





Рисунок 3 Пример
иерархического представления системы
проекта

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

5.3
Разработка функциональной диаграммы

начинается с построения страницы верхнего
уровня. При выборе команды New пункта меню FILE
в открывающемся списке Methodology появляется
возможность определения типа нужной формы
документа. Для создания функциональной
модели в списке помечаем пункт IDEF0 и
утверждаем выбор клавишей OK.

 На
экране появляется страница высшего уровня
с единственным блоком внутри. Это главный
объект дальнейшей работы. Начальная
нумерация для блока высшего уровня в
Design/IDEF
– «АО». В каждой модели (документе) можно
иметь только одну страницу высшего уровня.

5.3.1
Добавление текста к функциональному блоку

Каждый блок в диаграмме должен быть
подписан. Правильным является именование
блоков с помощью глаголов неопределенной
формы.
До начала ввода подписи можно
заранее установить нужные параметры шрифта
командой Set
Attributes
пункта меню EDIT. 
Изменение параметров текста после его
ввода в блок может быть выполнено с помощью
кнопок панели инструментов Форматирование.
Для того чтобы в блоке появился курсор,
означающий возможность ввода имени, 
выполняем одно из указанных действий:

 
открываем пункт меню
MODIFY, выбираем
команду
Turn
On
Text
и щелкаем внутри функционального блока;

 
щелкаем в левой панели инструментов на
кнопке


 и
внутри функционального блока.

5.3.2
Создание Ярлыков

Как
было сказано выше (п. 6.1), к функциональному
блоку с четырех сторон должны быть
присоединены различные объекты. Для ввода
названий (ярлыков) объектов выбираем
Labels
из пункта меню
CREATE
или активизируем кнопку 


  на
панели инструментов, а затем указываем
место вставки ярлыка и вводим нужный текст.

5.3.3
Создание дуг

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

                    
выбираем команду Arrow пункта меню CREATE;

                    
нажимаем на кнопку


 на
панели инструментов.

При
появлении курсора в виде горизонтальной
стрелки, размещаем его внутри ярлыка или
функционального блока и протягиваем до
места назначения. Чтобы проконтролировать
правильность соединения можно изменить
место положения ярлыка. Если при этом дуга
тянется за ярлыком — это означает, что
присоединение прошло успешно.

Дуги
на диаграмме могут сливаться в одну или
наоборот разъединяться. Если несколько
блоков должны быть соединены дугами от
одного источника, поступаем следующим
образом:

1)     
Рисуем дугу к одному из блоков;

2)     
Выделяем ее;

3)     
Выбираем команду Branch
пункта меню CREATE 
или кнопку

 ;

4)     
Подводим курсор к нужному блоку (он
начинает мигать);

5)     
Щелкаем кнопкой мыши, указывая на ту
сторону данного блока, к которой должна
подходить дуга.

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

1)     
Рисуем дугу от первого блока;

2)     
Выделяем ее;

3)     
Выбираем команду Join
пункта меню CREATE или
кнопку

;

4)     
Подводим курсор к следующему блоку (он
начинает мигать);

5)     
Щелкаем кнопкой мыши, указывая на ту
сторону данного блока, от 
которой должна отходить дуга.

Для
рисования нескольких дуг пункты 2-5
повторяем нужное количество раз.

Если
к блоку с какой-то стороны присоединяется
несколько дуг, желательно расположить их
равномерно друг относительно друга, что не
всегда удается сделать вручную. Для
автоматической расстановки дуг включите
флажок Autospace Arrows в диалоговом окне,
открывающемся последовательностью команд 
EDIT/ Set Attributes…/ Arrow. Другие установки
этого окна позволяют выбрать плавное
закругление изгибов дуг, способ
представления пересечений дуг и т.п.

5.3.4
Создание последующих уровней
функциональной модели

Для
создания следующего функционального
уровня
модели,
помечаем щелчком мыши функциональный блок
и выполняем команду Decompose
пункта меню
CREATE, либо
выбираем кнопку


 на панели
инструментов. Затем
следует дважды щелкнуть внутри блока для
перехода на новую страницу модели.

На
данной странице модели уже находятся
ярлыки, созданные на предыдущем уровне.
Помимо названий ярлыков здесь присутствуют
специальные обозначения (в виде сочетания
заглавных латинских букв и цифр, например, 
I1, I2, M1, O1, С1, С2, С3),  происходящие
от английских слов
Input
(вход),
Mechanisms
(механизм),
Output
(выход),
Control
(управление).

5.3.5
Создание функциональных блоков

Как
указывалось выше (п. 6.1), каждая вновь
созданная страница (более
низкого уровня)
предназначена для детального
представления
одного блока верхнего
уровня. Для этого на странице
создается
нужное количество новых функциональных
блоков. Эти блоки
представляют, основные подфункции
исходного блока. В дальнейшем каждый из
этих блоков может быть декомпозирован
подобным же образом на страницах
следующего уровня.

Для
создания новых блоков в меню CREATE выбираем
команду Place Boxes или на панели инструментов
нажимаем кнопку

.
Указав нужное количество блоков, нажимаем OK.
Появляется заданное количество блоков
расположенных по диагонали от верхнего
левого угла к правому нижнему.
Автоматически блоки данного уровня
нумеруются как «А1», «А2», «А3» и т.д. При
последующей декомпозиции, например, 
блока А1 новые блоки нумеруются как «А11»,
«А12», «А13» и т.д.

Второй
способ создания  функциональных  
блоков – это рисование их один за
другим с помощью мыши после активизации
команды
IDEF
Box
пункта
меню CREATE
или нажатия кнопки
.
Для рисования блока достаточно щелкнуть
кнопкой мыши в нужном месте рабочей области
диаграммы.

Заранее
определить максимальное количество блоков
(
Maximum
Boxes),
позволенное на страницу, изменить способ
нумерации блоков (
Numbering)
и задать другие установки можно в
диалоговом окне IDEF0 Options, вызываемом
командой
Set
Options…пункта
меню
EDIT. 

Созданные
блоки необходимо соединить дугами и
установить все необходимые подписи, как это
было указано в п.п. 6.3.1, 6.3.3.

5.3.6
Создание подписей дуг, соединяющих блоки

Иногда
на диаграмме требуется подписать дугу
соединяющую функциональные блоки. Эта
процедура выполняется в два этапа:

1)     
Вводим подпись рядом со дугой на
свободном месте диаграммы (команда Label в
пункте меню CREAT) и затем выделяем ее;

2)     
Активизируем
команду Attach Label пункта меню CREATE или кнопку


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

Процесс
создания последующих функциональных
уровней аналогичен процессу создания
второго функционального уровня. 

5.4
Добавление данных в глоссарий
  выполняется через команду Glossary
Entry
пункта меню
GLOSSARY.
Глоссарий
используется для того, чтобы собрать вместе
и определить новые понятия (определения
объектов), которые вводятся диаграммой,
декомпозирующей блок. В Приложении Б
представлена страница глоссария, которая
определяет объекты, приведенные на
диаграмме на рисунке 8. Команда
Glossary
Browser
показывает информацию, записанную в
глоссарий.

5.5
Создание гипертекста

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

5.6
Проверка синтаксиса модели

Команда
Validate
в пункте меню
FILE
просматривает все страницы в текущей
модели
IDEFO
на правильность
IDEFO
и
SADT-синтаксиса.
Ошибки синтаксиса сообщаются согласно
формату, который был выбран в диалоге
Validate
IDEF0
Syntax.
Если окно с результатами проверки
синтаксиса (рисунок 4) содержит 
приведенные ниже сообщения, то это
означает, что системный проект составлен
абсолютно правильно.


Рисунок
4 Результат проверки синтаксиса модели

5.7
Сохранение и печать модели

Для
сохранения модели выбираем команду
Save
As
в меню
FILE.

В
появившемся диалоговом окне 
предлагается выбрать папку и ввести имя
файла. Чтобы записать изменения в модели,
введенные после последней записи на диск, 
используйте команду
Save.
При этом вновь сохраненная версия заменит
старую.

Design/IDEF
печатает модель согласно опциям, которые
были установлены командой
Print
и
Print
Setup
в пункте меню
FILE.

5.8
Спецификация для предметной области

– это формализованное описание требований.
Единой формы (стандарта) для оформления
спецификации нет. Спецификация обычно
содержит:

       
функции
системы, с которыми имеет дело пользователь,
представленные
SADT
– моделью;

       
проектные
ограничения по каждой функции (лимиты
памяти и обработки данных, ресурсы
персонала, предполагаемое  техническое и программное
обеспечение), если они есть;

       
указания
по проектированию функций, а именно:
функция автономна; является
основополагающей для данной системы;
отложена до создания соответствующего
программного обеспечения и т.п.;

       
результаты
анализа предметной области.

6
Контрольные вопросы

6.1
Какое назначение имеет функциональная
модель в процессе разработки ПО?

6.2
Перечислите основные компоненты
функциональной модели.

6.3
Опишите правила  формирования  функциональных 
блоков (иерархия, нумерация,
обозначение).

6.4
Опишите правила создания дуг 
(направление,  тип
интерфейса, обозначение).

6.5
Объясните принцип работы и порядок
создания гипертекста.

Лабораторная
работа №2

МЕТОДИКА
ПОСТРОЕНИЯ ИНФОРМАЦИОННОЙ МОДЕЛИ

ПРЕДМЕТНОЙ
ОБЛАСТИ ДЛЯ ПРОЕКТИРОВАНИЯ 


АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ УПРАВЛЕНИЯ (АСУ)

1.
Цель работы

Изучение
принципов разработки и формализации
предметной области в виде информационной
модели
IDEF1X
для  построения АСУ.

2
Задачи работы

Освоить
приемы построения информационной модели
предметной области.

3
Содержание работы

3.1
Изучить методику построения
информационной модели.

3.2Составить
схему модели базы данных по варианту,
предложенному преподавателем (Приложение Г).

3.3
Сохранить на дискете файл с моделью и
оформить отчет.

4
Требования к отчету

Отчет
должен содержать:

§     
название
работы и постановку задачи исследования;

§     
сведения
о последовательности выполнения заданий;

§     
ответы
на контрольные вопросы по указанию
преподавателя.

5
Основные теоретические положения

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

Появление
понятия концептуальной схемы данных
привело к  методологии
семантического моделирования данных, т.е. к
определению значений данных в контексте их
взаимосвязей с другими данными.

В
1983 году в рамках проекта военного ведомства
США «Интегрированные системы
информационной поддержки» (
ICAM)
была создана методология семантического
моделирования данных
IDEF1X.
Она стала расширением методологии
IDEF1
и позволила логически и физически
объединять в сеть неоднородные
вычислительные системы.

Методология
IDEF1X
— один из подходов к семантическому
моделированию данных, основанный на
концепции Сущность-Отношение. Это
инструмент для анализа информационной
структуры систем различной природы.
Информационная модель, построенная с
помощью
IDEFlX
методологии, представляет логическую
структуру информации об объектах системы.
Эта информация является необходимым
дополнением функциональной
IDEFO
модели поскольку детализирует объекты,
которыми манипулируют функции системы.
Концептуально
IDEF1X
модель можно рассматривать как проект
логической схемы базы данных для
проектируемой системы.


Рисунок 5 Основные компоненты
IDEF1X

5.1
Основными компонентами
IDEF
1X
модели

являются (рисунок 5):

1)     
Сущности, представляющие множество
реальных или абстрактных предметов (людей,
объектов, мест, событий, состояний, идей, пар
предметов и т.д). Они изображаются блоками.
Могут быть:

    
независимые
от идентификатора сущности;

    
зависимые
от идентификатора сущности.

2)     
Отношения между этими предметами,
изображаемые соединяющими блоки линиями.
Могут быть:

    
отношения,
идентифицирующие связи;

    
отношения,
не идентифицирующие связи;

    
отношения
категоризации;

    
неспецифические
отношения.

3)     
Характеристики сущностей, изображаемые
именами атрибутов внутри блоков. Атрибуты
могут быть:

    
неключевыми;

    
первичными
ключами;

    
альтернативными
ключами;

    
внешними
ключами.

5.1.1
Сущность

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

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

5.1.2
Отношение

связи, называемое также отношением родитель-потомок, — это
связь между сущностями, при которой каждый
экземпляр сущности-родитель ассоциирован с
произвольным (в том числе нулевым)
количеством экземпляров сущности-потомком,
а — каждый экземпляр сущности-потомка
ассоциирован в точности с одним
экземпляром сущности-родителя.

Идентифицирующим
отношением

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

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

Мощность
определяет какое количество экземпляров
сущности-потомка может существовать для
каждого экземпляра сущности-родителя.

В
IDEF1X могут быть выражены следующие мощности
отношений (рисунок 6):

       
Каждый экземпляр сущности-родителя
может иметь ноль, один или более связанных с
ним экземпляров сущности-потомка (эта
мощность устанавливается по умолчанию);

       
Каждый экземпляр сущности-родителя
должен иметь не менее одного связанного с
ним экземпляра сущности-потомка (буква Р (positive),
помещенная рядом с точкой);

       
Каждый экземпляр сущности-родителя
может иметь не более одного связанного с
ним экземпляра сущности-потомка (буква Z
(zero), помещенная рядом с точкой);

       
Каждый экземпляр сущности-родителя
связан с некоторым фиксированным числом
экземпляров сущности-потомка. Если
мощность в точности равна некоторому числу N,
это число (целое, положительное) помещается
около точки.


Рисунок
6 Синтаксис мощности отношения

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



Рисунок
7 Синтаксис отношения категоризации

Каждый
экземпляр общей сущности и связанный с ним
экземпляр одной из категорных сущностей
изображают один и тот же предмет реального
мира и поэтому обладают одним и тем же
уникальным идентификатором. Для сущности-категории
мощность не указывается, поскольку она
всегда равна нулю или единице. Например, Служащий
является общей сущностью, а Штатный_служащий
и Служащий_почасовик
являются сущностями-категориями. Значение
некоторого атрибута в экземпляре общей
сущности определяет, с каким из возможных
сущностей-категорий он связан. Этот атрибут
называется дискриминатором отношения
категоризации. В предыдущем примере
дискриминатором может быть Тип_служащего.
Если существует экземпляр общей сущности,
не связанный ни с каким экземпляром из
сущностей-категорий, то такое отношение
называется отношением неполной категоризации.
На неполноту множества категорий на
диаграмме указывает круг, подчеркнутый
один раз.

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

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

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

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


Рисунок
8 Синтаксис первичных и альтернативных
ключей

Атрибуты,
появляющиеся в зависимой сущности и
являющиеся также первичным ключом другой
сущности (сущности-родителя или общей
сущности) называются внешними
ключами.
Сущность
может
обладать любым количеством внешних (наследуемых)
атрибутов. В диаграммах модели внешние
ключи изображаются с помощью помещения
внутрь блока сущности имен наследуемых
атрибутов, после которых в скобках следуют
буквы FK. Если наследуемый атрибут
принадлежит первичному ключу сущности-потомка,
то он помещается выше горизонтальной линии
(а сущность изображается с закругленными
углами), а если нет, то – ниже.

Процесс
перемещения первичного ключа родительской
или общей сущности в сущность-потомок или
сущность-категорию из соответствующего
отношения называется миграцией
ключа
.

Роль
атрибута

это функция, выполняемая атрибутом в
описании сущности, включая функцию
мигрируемости, принадлежности первичного
ключа, альтернативного ключа. Обычно имя
роли атрибута назначается для каждого
случая, когда отдельный атрибут
наследуется более одного раза (т.е. когда
сущность-потомок имеет несколько различных
отношений с одной и той же сущностью-родителем)
(рисунок 9). Например, спецификация
некоторого устройства может изображаться
двумя сущностями: Деталь
и Узел. Сущность
Деталь
в качестве сущности-родителя обладает
двойным отношением с сущностью Узел.
Одна и та же  деталь
может служить как компонентой, из которой
производится узел (т.е. деталь может быть
компонентой одного или многих узлов), так и
иногда быть узлом, в который собираются
компоненты (т.е. деталь может быть узлом для
одной или более деталей-компонент). В
предыдущем примере имена ролей Номер_компоненты
и Номер_узла
могут назначаться для различения двух
наследуемых атрибутов Номер_детали.
Имена ролей могут использоваться и при
единственном появлении наследуемого
атрибута для более точного выражения его
смысла в контексте сущности-потомка, но это
не является обязательным.


Рисунок
9 Синтаксис имени роли

Правила
ключей:

                  
каждая
сущность должна обладать первичным ключом;

                  
каждая
сущность может обладать любым числом
альтернативных ключей;

                  
первичный
и альтернативный ключ может состоять из
одного атрибута или комбинации атрибутов;

                  
отдельный
атрибут может быть частью более чем одного
ключа, первичного или альтернативного;

                  
атрибуты,
входящие в первичные или альтернативные
ключи сущности, могут быть собственными для
сущности или наследоваться через отношение
(внешними);

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

                  
если
первичный ключ состоит более чем из одного
атрибута, то значение любого неключевого
атрибута должно функционально зависеть от
всего первичного ключа, т.е. если первичный
ключ известен, то известно значение каждого
неключевого атрибута, и значение
неключевого атрибута не может быть
определено с помощью только части
первичного ключа (правило полной
функциональной зависимости);

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

5.2
Нормализация данных

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

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

       
первая
нормальная форма (1
NF)
— каждый атрибут в экземпляре сущности
обладает не более чем одним значением;

       
вторая
нормальная форма (2
NF)
— (1
NF)
в сочетании с тем, что значение неключевого
атрибута определяется всем ключом
экземпляра сущности и не определяется
только его частью;

       
третья
нормальная форма (3
NF)
– (2
NF)
в сочетании с тем, что значение неключевого
атрибута не определяется значением другого
неключевого атрибута;

       
четвертая
нормальная форма (4
NF)
– (3
NF)
в сочетании с тем, что атрибут составного
ключа из более чем двух атрибутов связан с
одним из остальных двух или более атрибутов
этого ключа не более тесно, чем с любым
другим атрибутом;

       
пятая
нормальная форма (5
NF)
– (4
NF)
в сочетании с тем, что атрибуты не могут «отщепляться»
в другую сущность без придания им нового
смысла.

5.3
Разработка информационной модели

начинается с открытия новой
IDEF1X
страницы. При выборе команды New пункта меню
FILE в открывшемся списке Methodology появляется
возможность определения типа нужной формы
документа. Для создания информационной
модели в списке помечаем пункт IDEF1Х 
и утверждаем выбор клавишей OK.

5.3.1
Создание сущности
выполняется
командой
Entity
пункта меню
CREATE
или нажатием на кнопке

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

       
Name
— это уникальное имя, с помощью которого
сущность будет распознаваться в 
модели;

       
Aliases
— псевдоним под которым сущность может быть
известна;

       
Definition
— определение сущности, которое обычно
используется на предприятии;

       
Attributes
— список атрибутов данной сущности. Чтобы
ввести список атрибутов нужно нажать на
клавишу Add.

5.3.2 Создание атрибутов выполняется в
окне Define
Attribute, которое содержит:

       
Name – имя атрибута;

       
Aliases
– псевдоним атрибута;

       
Primary Key
– первичный ключ;

       
Alternate Key – альтернативный ключ;

       
Definition
– определение;

       
Discriminator
– дискриминатор.

После
задания атрибуту его свойств необходимо
нажать клавишу OK для сохранения заданных
свойств. В окне Attributes определяемой сущности
появляются надписи, которые указывают на
наличие атрибутов и их свойств.

5.3.3
Создание отношений

осуществляется командой
Relationship
меню
CREATE
или кнопкой

 на панели
инструментов. После соединения курсором
мыши сущностей, между которыми
устанавливается отношение, появляется окно
Define
Relationship.
При создании отношений задаются:

       
Relationship
— имя отношения;

       
Inverse
– имя обратного отношения (указывается в
неспецифических отношениях);

       
Definition
определение;

       
Relationship
Type – тип отношения (идентифицирующее,
неидентифицирующее или неспецифическое);

       
Relationship
Cardinality
– мощность устанавливаемого отношения.

После
создания отношений при наличии атрибутов в
информационных блоках происходит обмен
атрибутами, т. е.  главный
ключ блока из которого выходит отношение
превращается во внешний ключ (Foreign key) в
блоке куда входит отношение. Поменять тип
отношения (с идентифицирующего на
неидентифицирующее) можно с помощью
команды
Toggle
меню
CREATE
или кнопкой

  на панели
инструментов.

6
Библиография

1.     
Куликов Г.Г., Брейкин Т.В., Арьков В.Ю.
Интеллектуальные информационные системы:
Уч. пособие /УГАТУ –Уфа; 1999. –129с.

2.     
Куликов Г.Г.,Набатов А.А., Речкалов А.В.
Автоматизированное проектирование
информационно-управляющих систем.
Системное моделирование предметной
области: уч. пособие / УГАТУ – Уфа, 1998. –104с.

3.     
Методология
IDEFO.
Функциональное моделирование. – М.:
МетаТехнология. 1993. — 117 с.

4. 
Методология
IDEF1X.
Информационное моделирование. -М.:
МетаТехнология. 1993. — 120 с.

5.     
Вендров А.М.
CASE
– технологии. Современные методы и
средства проектирования информационных
систем. –М.: Финансы и статистика. 1998. – 176 с.

6.     
Маклаков С.В.
BPwin
и
ERwin.
CASE
– средства разработки информационных
систем. –М.: ДИАЛОГ- МИФИ. 1999. – 256 с.

7
Контрольные вопросы

7.1
Дайте характеристику модели типа «сущность
— связь».

7.2Какое
назначение имеет информационная модель в
процессе проектирования
автоматизированной системы управления?

7.3
Перечислите основные составляющие
информационной модели.

7.4Опишите
правила формирования сущностей.

7.5
Опишите правила создания отношений.

7.6
Что такое нормализация данных?

Приложение
А

Вариант1

Выполнить
с точки зрения системного анализа выбор
некоторого пакета программного
обеспечения


Рисунок
10 Первый уровень системного проекта




 

Рисунок
11  Декомпозиция
блока А0 для варианта 1

Вариант
2

Выполнить
анализ выполняемых функций библиотекой




 

Рисунок
12 Первый уровень системного проекта для
варианта 2




 

Рисунок
13 Декомпозиция блока А0 для варианта 2




Рисунок 14
Декомпозиция блока А1 для варианта 2




Рисунок 15 Декомпозиция блока А2 для
варианта 2


Рисунок
16 Декомпозиция блока А3 для варианта 2

Вариант
3

Построить
функциональную модель процедуры
выполнения расчетно-графической работы



Рисунок
17 Первый уровень системного проекта для
варианта 3




 

Рисунок
18 Декомпозиция блока А0

Приложение
Б

Глоссарий
к модели «Деятельность библиотеки».

Вариант
2. Декомпозиция
I
уровня

Объекты

Бюджет
и финансы – средства библиотеке для
приобретения новой литературы.

Библиотечный
фонд- книжный фонд библиотеки.

Новые
книги- вновь приобретенные библиотекой
книги.

Информация
от поставщиков- тематические каталоги
издательств.

Информация
от клиентов- запросы читателей (авторы,
названия книг, год издания), запросы на
тематический обзор литературы.

Информация
от руководства- запросы на подготовку
отчетов о читателях, состоянии библиотеки,
библиотечного фонда, тематических выставок
и встреч с читателями.

Выдача
книг- книги, выданные читателю на
определенный срок библиотекой.

Заполнение
членских билетов- внесение записей о выдаче
книг читателям.

Заказ
членских билетов- оформление заказа в
типографию на подготовку новых членских
билетов.

Отчеты-
отчет о читателях, состоянии библиотеки,
библиотечного фонда, тематических выставок
и встреч с читателями.

Приложение
В

Текстовая
страница, описывающая последовательность
действий, поясняющих деятельность
библиотеки.

(Вариант
2. Декомпозиция
I-го
уровня)

А1.
Пополняет библиотечный фонд

Библиотека
по тематическим каталогам издательств
заказывает литературу. Вновь приобретенные
библиотекой книги пополняют библиотечный
фонд.

А2.
Организует работу с клиентами

Выполняет
регистрацию клиентов, выдает читателям на
определенный срок книги, микроафиши,
выполняет ксерокопирование и организует
тематические встречи с читателями.

А3.
Выполняет вспомогательные работы

Подготавливает
отчеты для руководства, готовит
видеофильмы, электронные библиотеки. По
мере надобности оформляются заказы на
новые читательские билеты.

Приложение Г

Вариант
1

Информационная
модель базы данных для компании по продаже
автомобилей


Рисунок 19 Информационная
модель предметной области к варианту 1

Вариант 2

Информационная
модель базы данных для

отдела проектной
организации


Рисунок 20 Информационная
модель предметной области к варианту 2


e-mail: kafiitbgau@narod.ru

Все права защищены. 
Никакая часть данной методической разработки не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельца авторских прав

Оформление
LaryART

В начало методички


Hosted by uCoz

IDEF0 (Integrated Definition) — язык проектирования функциональных моделей, включает как сам язык моделирования, так и методологию для построения и интерпретации моделей. IDEF0 является одной из первых нотаций для моделирования бизнес-процессов, которая возникла в американской аэрокосмической промышленности в 1970-ых годах.

IDEF0 — основные характеристики

IDEF0 задумывался как способ отобразить процессы, процедуры и действия внутри организации. Как и большинство методов моделирования, главным элементом нотации является графический язык, созданный для передачи определенной информации. Нотация помогает понимать и анализировать процессы, определяет логику изменений, позволяет уточнить требования к проекту, а также поддерживает проектирование на уровне систем и задач по интеграции.

Модель процесса в диаграмме IDF0

Модель процесса в диаграмме IDF0

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

Основной принцип моделирования в нотации IDEF0 указывает, что между функциями, которые входят в различные подсистемы, должно быть как можно меньшей связей. На одном уровне должно быть не меньше 5 и не больше 3 функций.

Диаграммы IDEF0 читают сверху вниз и слева направо. Все базовые элементы основаны на простых символах:

  • прямоугольники изображают функции или процессы;
  • стрелки обозначают как функции взаимосвязаны через физические и информационные потоки.

Синтаксическая модель IDF0

Синтаксическая модель IDF0

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

Сторона прямоугольника Стрелка Значение

верхняя

стрелка управления

правила, процедуры, стандарты, методы контроля

левая

стрелка входа

материал или данные

правая 

стрелка выхода

данные и материальные объекты, преобразованные функцией

нижняя

стрелка механизма

ресурсы (персонал, оборудование, производственные мощности и т.д.)

Существует также стрелка вызова, которая указывает на функцию, выполняемую за пределами указанного блока.

Другие правила синтаксиса

  • блок должен полностью вмещать название;

  • можно использовать только блоки прямоугольной формы;

  • блоки должны быть нарисованы сплошными линиями;

  • изгиб стрелок должен составлять 90°;

  • сегменты стрелок должны быть отрисованы сплошными линиями;

  • нельзя рисовать стрелки по диагонали;

  • стрелки не должны пересекать границы блока;

  • стрелки нельзя присоединять к углам блока;

  • стрелки должны быть подписаны, для подписи используются только имена существительные.

Диаграммы должны давать исчерпывающие представление об объекте, его функциях и связях.

Виды диаграмм

  • контекстная диаграмма описывает основное назначение системы, а также ее взаимодействие с внешней средой. Может быть только одна контекстная диаграмма, которая обозначается символами A0;
  • диаграмма декомпозиции детализирует отдельные элементы системы и связи между ними. Процедуру декомпозиции можно повторять до тех пор, пока не будет достигнут желаемый уровень детализации модели;
  • диаграмма дерева узлов показывает иерархические зависимости между отдельными функциями;
  • диаграмма только для композиции показывают систему с определенного ракурса, например, со стороны руководителей организации.

Пример диаграммы верхнего уровня A0 в нотации IDF0

Пример диаграммы верхнего уровня A0 в нотации IDF0

Иерархия типов функций

  • деятельность — совокупность всех процессов организации;
  • бизнес-процесс — совокупность логически связанных операций;
  • операция — совокупность последовательных или параллельных действий внутри определенного потока;
  • действие— преобразование свойств какого-либо объекта.

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

Основные характеристики IDF0

  • высокий уровень детализации любых типов процессов;

  • последовательность и относительная простота языковых средств, которые обеспечивают полноту использования и точность интерпретаций;

  • упор на иерархическое отображение элементов;

  • может быть воссоздана на программном уровне.

Как любой язык моделирования, нотация выступает средством коммуникации между аналитиками, архитекторами, разработчиками, менеджерами и пользователями.

Для чего используется

Нотация универсальна и позволяет детально описывать достаточно сложные системы и процессы на любом уровне.

  • широко применяется в США при автоматизации машинного производства и до сих пор является частью стандарта FIPS (Federal Information Processing Standard);

  • применяется для имплементации методологий непрерывного улучшения, таких как Strategic Justification of Integrated Enterprise Technologies (SJET) и Perform Continuous Enterprise Improvement (PCEI);

  • в литературе можно найти пример описания процесса разработки стратегии на языке IDEF0.

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

Преимущества

  • высокая степень детализации на всех уровнях иерархии;

  • возможность отобразить взаимосвязи между различными уровнями системы;

  • популярность среди аналитиков;

  • большое количество документации на английском языке;

  • подходит для презентаций руководству;

  • аккуратно спроектированные схемы легко читаются.

Недостатки

  • крупные производители софта постепенно отказываются от поддержки данной нотации;

  • диаграммы могут выглядеть перегруженными и визуально непривлекательными;

  • низкий потенциал для автоматизации функциональных моделей;

  • требует определенных навыков для адекватного проектирования диаграмм;

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

BPMN vs IDEF0

Хотя IDEF0 иногда используют для моделирования бизнес-процессов, эта нотация задумывалась как средство моделирования взаимодействия бизнес-функций, не обязательно в процессном контексте. Стрелка в BPMN показывает точную последовательность выполнения шагов процесса, а в IDEF0 стрелки входов-выходов не обязаны отображать эту последовательность. Кроме того, BPMN содержит XML-описание элементов, что значительно упрощает имплементацию на программном уровне. В отличие от IDEF0, BPMN разрабатывалась с прицелом на автоматизацию бизнес-процессов, поэтому многие элементы нотации показывают именно машинные способы передачи и обработки данных. Нотация нашла широкое применение в BPMS, ERP, CRM, SRM и других информационных системах.

Однако у IDEF0 есть одно неоспоримое преимущество перед BPMN — она может отобразить верхнеуровневые связи между процессами. BPMN не позволяет комплексно моделировать связи между процессами на уровне бизнес-способностей организации, а также на уровне цепочки создания ценности.

Верхнеуровневая диаграмма в Comindware Business Application Platform

Верхнеуровневая диаграмма в Comindware Business Application Platform

Comindware Business Application Platform исправляет этот недостаток BPMN за счет конструктора для проектирования исполняемой архитектуры предприятия. Конструктор визуализирует связи между бизнес-процессами, ресурсами и способностями предприятия, не уступая по точности IDEF0. Инструмент можно использовать для создания иерархических моделей с несколькими уровнями вложений.

Ознакомьтесь с возможностями по построению процессной архитектуры в Comindware Business Application Platform

Заказать демо

Елена Гайдукова, маркетолог-аналитик. Работает в сфере BPM и автоматизации процессов с 2014 года. В настоящее время является бренд-менеджером решений на базе Comindware Business Application Platform.

Цель работы:

  • изучение основных принципов методологии IDEF0,
  • создание нового проекта в BPWin,
  • формирование контекстной диаграммы,
  • проведение связей.

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

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

Каждая IDEF0-диаграмм а содержит блоки и дуги. Блоки изображают функции моделируемой системы. Дуги связывают блоки вместе и отобра­жают взаимодействия и взаимосвязи между ними.

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

IDEF0 требует, чтобы в диаграмме было не менее трех и не более шести блоков. Эти ограничения поддерживают сложность диаграмм и модели на уровне, доступном для чтения, понимания и использования.

Каждая сторона блока имеет особое, вполне определенное назначение. Левая сторона блока предназначена для входов, верхняя — для управления, правая — для выходов, нижняя — для механизмов. Такое обозначение отражает определенные системные принципы: входы преобразуются в выходы управление ограничивает или предписывает условия выполнения преобразований, механизмы показывают, что и как выполняет функция.

Блоки в IDEF0 размещаются по степени важности, как ее понимает автор диаграммы. Этот относительный порядок называется доминированием. Доминирование понимается как влияние, которое один блок оказывает на другие блоки диаграммы. Например, самым доминирующим блоком диаграммы может быть либо первый из требуемой последовательности функций, либо планирующая или контролирующая функция, влияющая на все другие.

Наиболее доминирующий блок обычно размещается в верхнем левом углу диаграммы, а наименее доминирующий — в правом углу.

Расположение блоков на странице отражает авторское определение доминирования. Таким образом, топология диаграммы показывает, какие функции оказывают большее влияние на остальные. Чтобы подчеркнуть это, аналитик может перенумеровать блоки в соответствии с порядком их доминирования. Порядок доминирования может обозначаться цифрой, размещенной в правом нижнем углу каждого прямоугольника: 1 будет указывать на наибольшее доминирование, 2 — на следующее и т. д.

Взаимодействие работ с внешним миром и между собой описывается в виде стрелок, изображаемых одинарными линиями со стрелками на концах. Стрелки представляют собой некую информацию и именуются существительными.

Типы стрелок

В IDEF0 различают пять типов стрелок.

Вход — объекты, используемые и преобразуемые работой для получения результата (выхода). Допускается, что работа может не иметь ни одной стрелки входа. Стрелка входа рисуется как входящая в левую грань работы.

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

Выход — объекты, в которые преобразуются входы. Каждая работа должна иметь хотя бы одну стрелку выхода, которая рисуется как исходящая из правой грани работы.

Механизм — ресурсы, выполняющие работу. Стрелка механизма рисуется как входящая в нижнюю грань работы. По усмотрению аналитика стрелки механизма могут не изображаться на модели.

Вызов — специальная стрелка, указывающая на другую модель работы. Стрелка вызова рисуется как исходящая из нижней части работы и используется для указания того, что некоторая работа выполняется за пределами моделируемой системы.

Статья 17 - Картинка 1

Рис. 2.1Типы стрелок

В методологии IDEF0 требуется только пять типов взаимодействий между блоками для описания их отношений: управление, вход, обратная связь по управлению, обратная связь по входу, выход-механизм. Связи по управлению и входу являются простейшими, поскольку они отражают прямые воздействия, которые интуитивно понятны и очень просты.

Статья 17 - Картинка 2

Рис. 2.2. Связь по выходу

Статья 17 - Картинка 3

Рис. 2.3. Связь по управлению

Отношение управления возникает тогда, когда выход одного блока непосредственно влияет на блок с меньшим доминированием.

Обратная связь по управлению и обратная связь по входу являются более сложными, поскольку представляют собой итерацию или рекурсию. А именно выходы из одной работы влияют на будущее выполнение других работ, что впоследствии повлияет на исходную работу.

Обратная связь по управлению возникает тогда; когда выход некоторого блока влияет на блок с большим доминированием.

Связи «выход-механизм» встречаются нечасто. Они отражают ситуацию, при которой выход одной функции становится средством достижения цели для другой.

Статья 17 - Картинка 4

Рис. 2.4. Обратная связь по входу

Статья 17 - Картинка 5

Рис. 2.5. Обратная связь по управлению

Связи «выход-механизм» характерны при распределении источников ресурсов (например, требуемые инструменты, обученный персонал, физическое пространство, оборудование, финансирование, материалы).

В IDEF0 дуга редко изображает один объект. Обычно она символизирует набор объектов. Так как дуги представляют наборы объектов, они могут иметь множество начальных точек (источников) и конечных точек (назначений). Поэтому дуги могут разветвляться и соединяться различными способами. Вся дуга или ее часть может выходить из одного или нескольких блоков и заканчиваться в одном или нескольких блоках.

Разветвление дуг, изображаемое в виде расходящихся линий, означает, что все содержимое дуг или его часть может появиться в каждом ответвлении. Дуга всегда помечается до разветвления, чтобы дать название всему набору. Кроме того, каждая ветвь дуги может быть помечена или не помечена в соответствии со следующими правилами:

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

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

Статья 17 - Картинка 6

Рис. 2.6. Связь выход-механизм

  • непомеченные ветви содержат вес объекты, указанные в общей меткедуги после слияния;
  • помеченные перед слиянием ветви содержат все или некоторые объекты из перечисленных в общей метке после слияния,

Количественный анализ диаграмм

Для проведения количественного анализа диаграмм перечислим показатели модели:

  • количество блоков на диаграмме — N;
  • уровень декомпозиции диаграммы — L;
  • сбалансированность диаграммы — В;
  • число стрелок, соединяющихся с блоком, — А

Данный набор факторов относится к каждой диаграмме модели. Далее будут перечислены рекомендации по желательным значениям факторов диаграммы.

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

Диаграммы должны быть сбалансированы. Это означает, что в рамках одной диаграммы не должно происходить ситуации, изображенной на рис. 2.7: у работы 1 входящих стрелок и стрелок управления значительно больше, чем выходящих. Следует отметить, что данная рекомендация может не выполняться в моделях, описывающих производственные процессы. Например, при описании процедуры сборки в блок может входить множество стрелок, описывающих компоненты изделия, а выходить одна стрелка — готовое изделие.

Статья 17 - Картинка 7

Рис. 2.7. Пример несбалансированной диаграммы

Введем коэффициент сбалансированности диаграммы

Статья 17 - Картинка 8

Необходимо стремиться, чтобы Кь был минимален для диаграммы.

Помимо анализа графических элементов диаграммы необходимо рассматривать наименования блоков. Для оценки имен составляется словарь элементарных (тривиальных) функций моделируемой системы. Фактически в данный словарь должны попасть функции нижнего, уровня декомпозиции диаграмм. Например, для модели БД элементарными могут являться функции «найти запись», «добавить запись в БД», в то время как функция «регистрация пользователя» требует дальнейшего описания.

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

Инструментарий BPWin

При запуске BPWin по умолчанию появляется основная панель инструментов, палитра инструментов и Model Explorer.

При создании новой модели возникает диалог, в котором следует указать, будет ли создана модель заново, или она будет открыта из репозитария ModelMart, внести имя модели и выбрать методологию, в которой будет построена модель (рис. 2.8).

Статья 17 - Картинка 9

Рис.2.8 Диалог создания модели

BPWin поддерживает три методологии — IDEF0, IDEF3 и DFD. В BPWin возможно построение смешанных моделей, т. е. модель может содержать одновременно как диаграммы IDEF0, так и IDEF3 и DFD. Состав палитры инструментов изменяется автоматически, когда происходит переключение с одной нотации на другую.

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

Пример

Построение модели системы должно начинаться с изучения всех документов, описывающих ее функциональные возможности. Одним из таких документов является техническое задание, а именно разделы «Назначение разработки», «Цели и задачи системы» и «Функциональные характеристики системы«.

После изучения исходных документов и опроса заказчиков и пользователей системы необходимо сформулировать цель моделирования и определить точку зрения на модель. Рассмотрим технологию ее построения на примере системы «Служба занятости в рамках вуза», основные возможности которой были описаны в лабораторной работе № 1.

Сформулируем цель моделирования: описать функционирования системы, которое было бы понятно ее пользователю, не вдаваясь в подробности, связанные с реализацией. Модель будем строить с точки зрения пользователей (студент, преподаватель, администратор, деканат, фирма).

Начнем с построения контекстной IDEF0-диаграммы- Согласно описанию системы основной функцией является обслуживание ее клиентов посредством обработки запросов, от них поступающих. Таким образом, определим единственную работу контекстной диаграммы как «Обслужить клиента системы». Далее определим входные и выходные данные, а также механизмы и управление.

Для того чтобы обслужить клиента, необходимо зарегистрировать его в системе, открыть доступ к БД и обработать его запрос. В качестве входных данных будут использоваться «имя клиента», «пароль клиента», «исходная БД», «запрос клиента». Выполнение запроса ведет либо к получению информации от системы, либо к изменению содержимого БД (например, при составлении экспертных оценок), поэтому выходными данными будут являться «отчеты» и «измененная БД». Процесс обработки запросов будет выполняться монитором системы под контролем администратора.

Контекстная диаграмма

Таким образом, определим контекстную диаграмму системы (рис. 2.9).

Статья 17 - Картинка 10

Рис 2.9.Контекстная диаграмма системы

Проведем декомпозицию контекстной диаграммы, описав последовательность обслуживания клиента:

  • Определение уровня доступа в систему.
  • Выбор подсистемы.
  • Обращение к подсистеме.
  • Изменение БД (при необходимости).

Получим диаграмму, изображенную на рис. 2.10.

Закончив декомпозицию контекстной диаграммы, переходят к декомпозиции диаграммы следующего уровня. Обычно при рассмотрении третьего и более нижних уровней модели возвращаются к родительским диаграммам и корректируют их.

Статья 17 - Картинка 11

Рис. 2.10. Декомпозиция работы «Обслуживание, клиента системы»

Декомпозируем последовательно все блоки полученной диаграммы. Первым этапом при определении уровня доступа в систему является определение категории пользователя. По имени клиента осуществляется поиск в базе пользователей, определяя его категорию. Согласно определенной категории выясняются полномочия, предоставляемые пользователю системы. Далее проводится процедура доступа в систему, проверяя имя и пароль доступа. Объединяя информацию о полномочиях и уровне доступа в систему, для пользователя формируется набор разрешенных действий. Таким образом, определение уровня доступа в систему будет выглядеть как показано на рис. 2.11.

Статья 17 - Картинка 12

Рис. 2.11. Декомпозиция работы «Определение уровня доступав систему»

После прохождения процедуры доступа в систему монитор анализирует запрос клиента, выбирая подсистему, которая будет обрабатывать запрос. Декомпозиция работы «Обращение к подсистеме» не отвечает цели и точке зрения модели. Пользователя системы не интересуют внутренние алгоритмы ее работы. В данном случае ему важно, что выбор подсистемы будет произведен автоматически, без его вмешательства, поэтому декомпозиция обращения к подсистеме только усложнит модель.

Декомпозируем работу «Обработка запроса клиента», выполняемую подсистемой обработки запросов, определения категорий и полномочий пользователей. Перед осуществлением поиска ответа на запрос необходимо открыть БД (подключиться к ней). В общем случае БД может находиться на удаленном сервере, поэтому может потребоваться установление соединения с ней. Определим последовательность работ:

  • Открытие БД.
  • Выполнение запроса.
  • Генерация отчетов.

После открытия БД необходимо сообщить системе об установлении соединения с БД, после чего выполнить запрос и сгенерировать отчеты для пользователя (рис. 2.12).

Необходимо отметить, что в «Выполнение запроса» включается работа различных подсистем. Например, если запрос включает в себя тестирование, то его будет исполнять подсистема профессиональных и психологических тестов. На этапе выполнения запроса может потребоваться изменениесодержимого БД, например при составлении экспертных оценок. Поэтому, на диаграмме необходимо предусмотреть такую возможность.

Статья 17 - Картинка 13

Рис. 2.12. Декомпозиция работы «Обработка запроса клиента»

Корректировка диаграммы

При анализе полученной диаграммы возникает вопрос, по каким правилам происходит генерация отчетов? Необходимо наличие заранее сформированных шаблонов, по которым будет производиться выборка из БД, причем эти шаблоны должны соответствовать запросам и должны быть заранее определены. Кроме того, клиенту должна быть предоставлена возможность выбора формы отчета.

Скорректируем диаграмму, добавив в нее стрелки «Шаблоны отчетов» и «Запросы на изменение БД» и туннельную стрелку «Клиент системы». Туннелирование «Клиента системы» применено для того, чтобы не выносить стрелку на диаграмму верхнего, так как функция выбора формы отчета не является достаточно важной для отображения ее на родительской диаграмме.

Изменение диаграммы потянет за собой корректировку всех родительских диаграмм (рис. 2.13 — 2.15).

Декомпозицию работы «Выполнение запроса» целесообразно провести при помощи диаграммы DFD (лабораторная работа № 3), так как методология IDEF0 рассматривает систему как совокупность взаимосвязанных работ, что плохо отражает процессы обработки информации.

Статья 17 - Картинка 14

Рис. 2.13. Декомпозиция работы «Обработка запроса клиента»

Статья 17 - Картинка 15

Рис. 2.14. Декомпозиция работы «Обслуживание клиента системы»(вариант 2)

Статья 17 - Картинка 16

Рис. 2.15. Контекстная диаграмма системы (вариант 2)

Перейдем к декомпозиции последнего блока «Изменение БД». С точки зрения клиента, данные системы располагаются в одной БД. Реально в системе присутствует шесть БД:

  • БД пользователей,
  • БД студентов,(вариант 2)
  • БД вакансий,
  • БД успеваемости,
  • БД тестов,
  • БД экспертных оценок,
  • БД резюме.

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

  • Определяется БД, в которой будет изменяться информация.
  • Оператором формируется временный набор данных и предоставляется администратору.
  • Администратор осуществляет контроль данных и вносит их в БД.

Данную модель реализовать другим способом, предоставив возможность обновления БД непосредственно по запросам, минуя процесс контроля данных. В этом случае необходимо обеспечить контроль целостности БД для избежания ее повреждения. В этом случае диаграмма будет выглядеть следующим образом (рис. 2.17).

Статья 17 - Картинка 17

Рис. 2.16. Декомпозиция работы «Изменение БД»

Статья 17 - Картинка 18

Рис. 2.17. Декомпозиция работы «Изменение БД» (вариант 2) Для первого варианта, изображенного нарис. 2.12

Проведение дальнейшей декомпозиции «Изменения БД» будет усложнять модель, объясняя, как осуществляется физическое изменение БД в системе. При этом пользователь не получит никакой дополнительной информации о работе системы службы занятости. Декомпозицию этой работы целесообразно проводить в процессе проектирования БД системы на этапе создания логической модели БД.

Декомпозиция работы «Выполнение запроса» будет проведена в следующей лабораторной работе, иллюстрируя применение диаграмм DFD для описания процессов обработки информации.

Проведем количественный анализ моделей, изображенных на рис. 2.12 и 2.13, согласно вышеописанной методике. Рассмотрим поведение коэффициента ^ у этих моделей. У родительской диаграммы «Обработка запроса клиента» коэффициент равен 4/2 = 2, а диаграммы декомпозиции 3/3 = 1. Значение коэффициента убывает, что говорит об упрощении описания функций с понижением уровня модели.

Рассмотрим изменение коэффициента Кb у двух вариантов моделей.

Статья 17 - Картинка 19

для второго варианта

Статья 17 - Картинка 20

Коэффициент Кb не меняет своего значения, следовательно, сбалансированность диаграммы не меняется.

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

Подводя итоги рассмотренного примера необходимо отметить важность рассмотрения нескольких вариантов диаграмм при моделировании системы. Такие варианты могут возникать при корректировке диаграмм, как это было сделано с «Обработкой запроса клиента» или при создании альтернативных реализаций функций системы (декомпозиция работы «Изменение БД»). Рассмотрение вариантов позволяет выбрать наилучший и включить его в пакет диаграмм для дальнейшего рассмотрения.

Контрольные вопросы

Список Контрольных вопросов:

  1. Что представляет собой модель в нотации IDEF0?
  2. Что обозначают работы в IDEF0?
  3. Назовите порядок наименования работ?
  4. Какое количество работ должно присутствовать на одной диаграмме?
  5. Что называется порядком доминирования?
  6. Как располагаются работы по принципу доминирования?
  7. Каково назначение сторон прямоугольников работ на диаграммах?
  8. Перечислите типы стрелок.
  9. Назовите виды взаимосвязей.
  10. Что называется граничными стрелками?
  11. Объясните принцип именования разветвляющихся и сливающихся стрелок.
  12. Какие методологии поддерживаются BPWin?
  13. Перечислите основные элементы главного окна BPWin.
  14. Опишите процесс создания новой модели в BPWin.
  15. Как провести связь между работами?
  16. Как задать имя работы.
  17. Опишите процесс декомпозиции работы.
  18. Как добавить работу на диаграмму?
  19. Как разрешить туннелированные стрелки?
  20. Может ли модель BPWin содержать диаграммы нескольких методологий?

Понравилась статья? Поделить с друзьями:
  • Как правильно составить ник
  • Как найти подарок до дня рождения
  • Как найти две третьих от числа шесть
  • Как найти дату выпуска акб варта
  • Как исправить вмятину на натяжном потолке