Начала учить IDEF0. Столкнулась с проблемой при определении взгляда на модель.
Конкретнее: есть некая система документооборота.
Один и тот же документ рассматривается, корректируется и подписывается на различных уровнях.
Казалось бы, процесс пользователя определяется жизненным циклом документа:
1 Создание документа в отделе А
2 Согласование в отделе В
3 Согласование в отделе С
4 Утверждение в отделе Д
5 Окончательное визирование в отделе, который документ выпустил (отдел А).
я бы порекомендовал рассмотреть следующие варианты:
- с точки зрения владельца процесса (буде такой есть - по идее должен быть), это тот кто самый главный заинтересованный в выпуске и полной обработке документа
- с точки зрения утверждающей стороны, может быть владельцем процесса, но может и не быть.
- с точки зрения инициирующей стороны (тогда может стать понятен смысл визирования - поясните, кстати, зачем обратно в отделе А визировать? уведомить об утверждении?)
Но создавать модель из этих 5 блоков казалось бы странно (декомпозиция 2 уровня).
Дело в том, что в отделах (п.2 - п.4) пользователь выполняет одни и те же действия: добавляет запись, корректирует и удаляет существующие записи, подписывает документ и т.д.
Ваша схема в принципе неплоха. Пара штрихов и будет хорошо.
Вы, неплохо начав, стали путать действия (фактически операции, выполняемые с документами) и функции, выполняемые с определенной целью. Попробуйте ответить на вопрос "зачем?" для каждого своего пункта - "зачем выполняется согласование в отделе В" и т.д. Правильно сформулировав ответ, Вы скорее всего найдете цели, ради которых выполняются эти функции, и сможете их (функции) более корректно переформулировать. И схема станет очень стройной и логичной.
По ходу вопрос: согласования в разных отделах разве выполняются с одинаковой целью. например, договор может согласовываться с юристами по одной группе вопросов, а с бухгалтерией - по другим (пример абстрактный). попробуйте заменить термин "согласование" целью (например, "проверить кредиторскую задолженность" и т.п.)
Насколько логична модель, где используется подход "отдельные функции":
1 создание документа
2 редактирование документа (декомпозиция на удаление, редактирование, добавление)
3 подписание документа.
4 передача документа между отделами ( + выход на вход п.2)
Вроде функции ясны, но ЖЦ сразу исчез! С другой стороны, в первом варианте куда запихать редактирование, удаление и т.д. (не дублировать же)
Описала конечно примерно, чтобы суть была ясна.
абсолютно бесполезна. в качестве эксперимента (хотя это может оказаться чем-то чревато) попробуйте сказать сотрудникам отдела А, что они всего лишь редактируют документ - да они Вас загрызть могут :о))) Дело тут именно в том, что эти операции выполняются для достижения тех самых "функциональных целей". Подменив одно на другое вы устранили смысл работы, потому ЖЦ и исчез.
Кстати, в бизнес-системах обычно документы не удаляются, а, например, закрываются (те же договора), фактически получают некоторый статус (приводятся в определенное состояние). Смысл этого в том, что все данные по документу в системе остаются, а операций с ним проводить нельзя.
Или вообще не стоит в IDEF0 пытаться это описать?
Стоит-стоит, хорошая тренировка, немного сложновато поначалу, но польза в целом превалирует над затратами.
Дополнение. Забудьте о программисте. Нет такой точки зрения в природе. Выдумана она. Программист - исполнитель чужой воли, он должен сделать так, как ему скажут. Конечно, он может дать свои предложения по реализации, но рассматривать их будет кто-то другой - аналитик, проектировщик, архитектор - применительно к существующим требованиям.
Да и пользователя не стоит рассматривать в первую очередь, рассматривать нужно заказчика (по идее заказчик и владелец процесса должны находиться близко-близко друг от друга или даже совпадать) - того, для кого делается система, его цели и интересы нужно учитывать в первую очередь! Хотя бывают разные варианты.