Найти в Дзене
Пишем диплом по ИТ

IDEF0. Что в ней плохого?

О хорошем поговорили, теперь о плохом. Язык из пяти слов с одной стороны легко выучить, с другой стороны пяти слов может быть недостаточно. Какие недостатки имеются у IDEF0: 1. Отсутствие ветвлений. Это, пожалуй, самый большой недостаток. Здесь нельзя показать, что в зависимости от условия развитие событий может пойти по одному из сценариев. Но ветвления требуются далеко не во всех задачах. 2. Инструменты и исполнители никак не отличаются. И то и другое - это механизмы. А хотелось бы отличать. Потому что исполнители - это будущие роли пользователей в системе. А инструменты - это какие-то совершенно другие объекты, которые тоже нужно учесть в системе. Для IDEF0 и то, и другое - это просто стрелка снизу. 3. Все, что мы передаем между процессами (входы и выходы) тоже никак не типизируется. А это могут быть объекты, документы, просто сообщения. Вещи, которые иногда хочется разграничивать. Отсюда плавно напрашивается вывод, что IDEF0 является хорошей нотацией, когда мы имеем дело с НЕ оч

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

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

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

3. Все, что мы передаем между процессами (входы и выходы) тоже никак не типизируется. А это могут быть объекты, документы, просто сообщения. Вещи, которые иногда хочется разграничивать.

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

Например, мы решили автоматизировать приемную комиссию в вузе. Для начала очень полезно посмотреть на вот такую диаграмму IDEF0 (рис.1).

Рис.1 Приемная компания
Рис.1 Приемная компания

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

А вот сам процесс "Принять заявления" настолько сложный, что там черт ногу сломит, поэтому его лучше расписать в BPMN 2.0 (рис.2)

Рис.2. Уточнение процесса в BPMN 2.0
Рис.2. Уточнение процесса в BPMN 2.0

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

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

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

Вот, например, как здесь

Рис.3 IDEF0  не всегда нуждается в декомпозиции
Рис.3 IDEF0 не всегда нуждается в декомпозиции

P.S. А что еще можно использовать вместо BPMN2.0? Можно EPC, но, как по мне, она очень громоздкая. Можно IDEF3. В ней есть ветвления, но на этом ее плюсы заканчиваются. Поэтому мне нравится BPMN 2.0