Методология функционального моделирования IDEF0—это технология описания системы в целом как множества взаимозависимых действий или функций. Важно отметать функциональную направленность: IDEF0-функции системы исследуются независимо от объектов, которые обеспечивают их выполнение. "Функциональная" точка зрения позволяет четко отделить аспекты назначения системы от аспектов ее физической реализации. На рис.1 приведен пример типовой диаграммы IDEF0.
Рис.1. Пример диаграммы IDEF0
Наиболее часто IDEF0 применяется как технология исследования и проектирования систем на логическом уровне. По этой причине IDEF0, как правило, используется на ранних этапах разработки проекта, до IDEF3-моделировання, для сбора данных и моделирования процесса "как есть". Результаты IDEF0-аналнза могут применяться при проведении проектирования с использованием моделей IDEF3 и диаграмм потоков данных.
IDEF0 сочетает в себе небольшую по объему графическую нотацию (она содержит только два обозначения: блоки и стрелки) со строгими и четко определенными рекомендациями, предназначенными для построения качественной и понятной модели системы.
Методология IDEF0 в некоторой степени напоминает рекомендации, существующие в книгоиздательском деле: часто набор напечатанных IDEF0-моделей организуется в брошюру (называемую, в терминах IDEF0, комплект), имеющую содержание, глоссарий и другие элементы, характерные для законченной книги.
Первый шаг при построении модели IDEF0 заключается в определении назначения модели — набора вопросов, на которые должна отвечать модель, Набор вопросов можно сравнить с предисловием, в котором раскрывается назначение книги.
Границы моделирования предназначены для обозначения ширины охвата предметной области и глубины детализации и являются логическим продолжением уже определенного назначения модели. Как читающий модель, так и непосредственно ее автор должны понимать степень детальности ответов на поставленные в назначении модели
Следующим шагом предполагаемая целевая аудитория, нужд которой создается модель. Зачастую от этого зависит уровень детализации, с которым должна создаваться модель. Перед построением модели необходимо иметь представление о том, какие Сведения о предмете моделирования уже известны, какие дополнительные материалы и/или техническая документация для понимания модели могут быть необходимы для целевой аудитории, какие язык и стиль изложения являются наиболее подходящими.
Под точкой зрения понимается перспектива, с которой наблюдалась система при построении модели. Точка зрения выбирается таким образом, чтобы учесть уже обозначенные границы моделирования и назначение модели. Однажды выбранная точка зрения остается неизменной для всех элементов модели. При необходимости могут быть созданы другие модели, отображающие систему с других точек зрения. Приведем несколько точек зрения при построении моделей: клиент, поставщик, владелец, редактор.
Действие, обычно в IDEF0 называемое функцией, обрабатывает или переводит входные параметры (сырье, информацию и т.п.) в выходные. Поскольку модели IDEFO моделируют систему как множество иерархических (вложенных) функций, в первую очередь должна быть определена функция, описывающая систему в целом — контекстная функция. Функции изображаются на диаграммах как поименованные прямоугольники или функциональные блоки. Имена функций в IDEFO подбираются по сходным правилам наименования действий в IDEF3 — с использованием глаголов или отглагольных существительных. Важно подбирать имена так, чтобы они отражали систему с точки зрения, выбранной для моделирования.
Пример функционального блока приведен на рис.2.
Рис.2 Функциональный блок IDEF0
Выше мы определяли IDEF0-модели как иерархическое множество вложенных блоков. Любой блок может быть декомпозирован на составляющие его блоки. Декомпозицию часто ассоциируют с моделированием "сверху вниз", однако это не совсем верно. Функциональную декомпозицию корректнее определять как моделирование "снаружи внутрь", при котором мы рассматриваем систему наподобие луковицы, с которой последовательно снимаются слои.