- •Isbn 5-279-02433-3 © с.В.Черемных, и.О. Семенов, b.C. Ручкин, 2001
- •1.1 Требования к модели компании
- •1.1.1 Клиенты и партнеры
- •1.1.3 Команда по реинжинирингу
- •1.1.4 Владелец процесса '
- •1.1.5 Владелец ресурса
- •1.4 Методология sadt
- •1.5 Применение методов idef для моделирования поведения компаний
- •2.1.1 Модели idef3
- •2.1.2 Диаграммы
- •2.1.3 Единица работы. Действие
- •2.1.4 Связи
- •2 * Синтаксис и семантика моделей idef3
- •2.1.5 Соединения
- •2.1.6 Указатели
- •2.1.7 Декомпозиция действий
- •77Л Определение сценария, границ моделирования, точки зрения
- •2.2.2 Определение действий и объектов
- •2.2.3 Последовательность и параллельность
- •2 1 Синтаксис и семантика моделейIdef0
- •3.1.1 Модели idef0
- •3.1.2 Действия
- •3.1.3 Границы и связи
- •3.1.4 Туннели
- •3.2 Построение моделей idef0
- •3.2.1 Диаграммы
- •3.2.2 Цикл эксперт — аналитик
- •3.2.3 Построение моделей
- •3.2.4 Точка зрения
- •3.2.5 Границы моделирования
- •3 2 _ Определение стрелок ' ' на контекстной диаграмме
- •3.2.8 Нумерация блоков и диаграмм
- •3.2.11 Когда остановиться
- •3.2.12 Другие диаграммы idefo
- •3 3 2 Создание моделей idef3
- •4. Назначение диаграмм потоков данных
- •4 2 Синтаксис и семантика диаграмм потоков данных
- •4.2.1 Функциональные блоки
- •4.2.2 Внешние сущности
- •4.2.3 Стрелки (потоки данных)
- •4.2.4 Хранилища данных
- •4.2.5 Ветвление и объединение
- •4.3.1 Два подхода к построению dfd-моделей
- •4.3.2 Нумерация объектов
- •5.2 Имитационные модели
- •5.2.1 Источники и назначения
- •5.2.2 Очереди
- •5.2.3 Оборудование
- •5.2.4 Пример имитационной модели
- •5.2.5 Обработка результатов моделирования
- •6.1.1 Краткий обзор
- •6.1.4 Деловое моделирование
- •6.1.5 Что такое bPwin
- •6.1.6 Модель bPwin
- •6.2 Idef-моделирование и bPwin
- •6.2.2 Функциональное моделирование (idef0)
- •6.2.3 Диаграммы потоков данных (dfd)
- •6.2.4 Описание бизнес-процессов (idef3)
- •6.2.5 Когда и какие методологии применять
- •6.3.1 Рабочее место bPwin
- •6.3.2 Дерево модели
- •6.3.3 Область для рисования
5.2.2 Очереди
Понятие очереди аналогично другому понятию, используемому при построении диаграмм потоков данных, — хранилищу данных. Очереди — это способ моделирования объектов, которые находятся внутри системы и пребывают в состоянии ожидания обработки одной из ее частей. Временной цикл или продолжительность (duration) выполнения того или иного действия (здесь и далее слово действие понимается в терминах IDEF3) — это время, которое необходимо тому или иному действию для выполнения. Продолжительность выполнения действия может изменяться с течением времени, вызывая тем самым случайные возмущения, отражающиеся на выходе всей системы. Рассмотрим, например, два последовательно выполняющихся действия, занимающих в нормальных условиях одинаковое время. Выполнение первого из них за время, меньшее обычного, приведет к накоплению в очереди незавершенных изделий.
Поведение очередей должно быть описано в имитационной модели. Например, очередь может функционировать как стек — последнее изделие, помещенное в очередь, извлекается из нее первым. Этот принцип широко известен под аббревиатурой LIFO (Last In — First
При имитационном моделировании с использованием моделей IDEF0 и IDEF3 типы обработки очередей для каждого входа и управления являются входными параметрами модели.
5.2.3 Оборудование
Оборудование (Facilities) представляет в имитационных моделях отдельные действия системы. Термин оборудование отражает производственные корни имитационного моделирования, когда предполагается, что каждое действие выполняется на некотором (возможно, существующем только в абстракции) рабочем месте и собираемые изделия передаются с одного рабочего места на другое, как на сборочном конвейере. Время обработки записывается как математическое выражение (обычно статистическое), кроме того, специфицируются правила использования механизмов рабочего места и исходного сырья.
5.2.4 Пример имитационной модели
В этом примере мы будем моделировать работу банковского операционного зала с целью выяснения, как наилучшим образом организовать работу операционистов для оптимального выполнения набора типовых банковских операций или транзакций (каждая из которых требует от операциониста выполнения своего набора действий). Предположим, что в нашем операционном зале возможно выполнение таких транзакций, как:
пополнение счета клиента наличными или с использованием чека;
снятие денег со счета;
перевод средств по счетам клиента;
выписка дорожного чека;
открытие нового счета.
При пополнении счета клиента (рис. 5.1) производятся следующие действия:
• если пополнение счета осуществляется с помощью чека — прове рить чек, затем записать депонируемую сумму;
если счет пополняется наличными — подсчитать сумму налич ных, записать депонируемую сумму, поместить деньги в кассу;
если клиенту что-либо возвращается наличными — извлечь необ ходимую сумму из кассы, подсчитать ее и отдать клиенту;
записать общую сумму возвращенных денег;
возвратить клиенту документы по счету.
При снятии средств со счета (рис. 5.2) выполняются следующие действия:
проверка состояния счета;
извлечение наличных из кассы, подсчет и передача клиенту;
запись общей суммы, переданной клиенту.
Рис. 5.2. Снятие средств со счета
При переводе средств с одного счета на другой (рис. 5.3) производится такая последовательность действий:
проверка состояния счета, с которого осуществляется снятие средств;
запись снимаемой суммы;
запись депонируемой суммы;
возврат документов, касающихся произведенной операции, кли енту.
При выписке дорожного чека (рис. 5.4) выполняются следующие действия:
Рис. 5.3. Перевод средств с одного счета на другой
если производится снятие средств — проверка состояния счета и запись снимаемой суммы;
если транзакция проводилась с использованием наличных — про верка состояния счета клиента и документов по счету, подсчет суммы наличных;
распечатка и передача чека клиенту.
Как
видно из рис. 5.4, имеется два основных
типа транзакций, различающихся
по способу оплаты клиентом выписанного
дорожного чека:
он может снимать деньги со своего счета
или платить наличными.
Это видно из OR-соединений
на диаграмме: клиент может платить
наличными,
снимать деньги со счета или даже
одновременно использовать
оба способа. В случае если для банка
существуют значительные
различия во времени (и, возможно,
стоимости) проведения этих типов
транзакций, важно отразить в имитационной
модели все три упомянутых случая.
Аналогично, если разница во времени
проведения
транзакции для разных типов счетов
существенна, это также должно
найти отражение в модели.
Заметим, что в нашем примере не моделируется открытие новых банковских счетов. Вместо этого при необходимости мы будем использовать некоторое математическое выражение. Важно помнить, что не всегда необходимо моделировать все действия (напомним, что слово "действие" здесь понимается в терминологии IDEF3) одного уровня детализации — мы создаем модели только лишь для существенных с выбранной точки зрения частей бизнес-процесса.
Важные для нас имитационные переменные представлены в табл. 5.2. Фактически в этой таблице перечислены механизмы исполнения, необходимые для выполнения описываемых нами действий.
Таблица 5.2
Наименование ресурса |
Всего в наличии |
Стоимость, $/мин |
свмп* |
Среднее время поломки |
Операционист |
3 |
0,20 |
0 |
0 |
Счетчик банкнот |
1 |
0,05 |
Норм(6000,25) |
Норм(16,3) |
*СВМП - среднее время работы между поломками. |
||||
Функция Норм(мат. ожидание, дисперсия) — функция распределения нормального закона, известная из математической статистики.
В таблице СВМП используется для отражения ситуации, когда ресурс периодически недоступен в связи с техническими проблемами. Среднее время поломки отражает средний интервал времени, в течение которого производится ремонт вышедшего из строя ресурса. При необходимости можно аккуратнее отразить и работу операционистов, что может потребоваться при моделировании работы банка в течение нескольких дней. Обычно для этого используют всевозможные табель-календари, известные из законодательства о труде.
В статистике существуют специальные формулы, описывающие вероятность наступления того или иного события. Например, сколько в среднем клиентов придет в операционный зал банка между 10-00 и 10-30 в пятницу? Среднее значение, называемое в статистике математическим ожиданием, изображено пиком каждой из трех кривых на рис. 5.5. Разброс получившейся при реальном наблюдении ошибки, показывающий, насколько близки друг к другу были реально наблюдавшиеся значения, называется дисперсией и выглядит на графике, как "ширина" каждой из трех кривых. Существует множество других функций распределения вероятностей, отличных от показанного на рис. 5.5 нормального распределения, которые могут быть применены для описания огромного набора реально возникающих ситуаций. Естественно, что графики этих функций могут существенно отличаться от приведенных на рисунке.
Рис. 5.5. Нормальная функция распределения
Использование статистических формул — это основа имитационного моделирования. В дополнение к отображению времени выполнения тех или иных действий статистические формулы также используются для отражения времени прибытия сырьевых ресурсов, а также времени доступности механизмов исполнения. Программное обеспечение, выполняющее имитационное моделирование, непрерывно производит вычисления по этим формулам для количественного определения этих параметров.
В табл. 5.3 время выполнения каждого действия представлено в виде статистической формулы. Например, время выполнения проверки документов и записи суммы депозита имеет нормальное распределение и занимает в среднем 0,5 мин. Это первый параметр функции. Естественно, что выполнение этих действий не всегда занимает ровно 0,5 мин, это всего лишь среднее время. Вполне можно также наблюдать, что в редких случаях эти действия могут быть завершены, скажем, за 0,4 или 0,6 мин. Мы подсчитали это с использованием второго параметра функции — дисперсии.
Таблица 5.3
Действие |
Механизм исполнения |
Количество |
Время |
Пополнение счета: |
|
|
|
Проверить документы и записать депонируемую сумму |
Операционист |
1 |
Норм(0,5;0.1) |
Подсчитать небольшую сумму наличных |
Тоже |
1 |
Норм(0,5;0.5) |
Подсчитать большую сумму наличных |
Операционист Счетчик банкнот |
1 1 |
Норм(0,1;0.5) |
Поместить сумму в кассу и сделать запись в кассовой книге |
Операционист |
1 |
Норм(0,1;0.5) |
Извлечь наличные из кассы |
Тоже |
1 |
Норм(0,3;0.1) |
Подсчитать небольшую сумму возвращаемых наличных |
|
1 |
Норм(0,5;0.5) |
Подсчитать большую сумму возвращаемых наличных |
Операционист Счетчик банкнот |
1 1 |
Норм(0,1;0.5) |
Передать сумму клиенту |
Операционист |
1 |
Норм(0,3;0.1) |
Записать общую сумму, переданную клиенту |
Тоже |
1 |
Норм(0,3;0.1) |
Вернуть клиенту документы по счету |
|
1 |
Норм(0,3;0.1) |
Продолжение
Действие |
Механизм исполнения |
Количество |
Время |
Снятие средств со счета: |
|
|
|
Проверить состояние счета |
Операционист |
1 |
Норм(0,5;0.3) |
Извлечь наличные из кассы |
Тоже |
1 |
Норм(0,3;0.1) |
Подсчитать небольшую сумму возвращаемых наличных |
|
1 |
Норм(0,5;0.5) |
Подсчитать большую сумму возвращаемых наличных |
Операционист Счетчик банкнот |
1 1 |
Норм(0,1;0.5) |
Передать сумму клиенту |
Операционист |
1 |
Норм(0,3;0.1) |
Записать общую сумму, переданную клиенту |
Тоже |
1 |
Норм(0,3;0.1) |
Перевод средств по счетам: |
|
|
|
Проверить состояние счета, с которого снимаются средства |
|
1 |
Норм(0,5;0.3) |
Записать снятую сумму |
|
1 |
Норм(0,3;0.1) |
Записать депонируемую сумму |
|
1 |
Норм(0,3;0.1) |
Вернуть клиенту документы по счету |
|
1 |
Норм(0,3;0.1) |
Выписать дорожный чек: |
|
|
|
Проверить состояние счета |
|
1 |
Норм(0,5;0.3) |
Записать снятую сумму |
» |
1 |
Норм(0,3;0.1) |
Проверить состояние счета клиента |
- |
1 |
Норм(0,3;0.1) |
Проверить данные чека |
|
1 |
Норм(1,0;5) |
|
|||
Действие |
Механизм исполнения |
Количество |
Время |
Подсчитать сумму наличных |
Операционист |
1 |
Норм(0,5;0.5) |
Распечатать и передать клиенту чек |
То же |
1 |
Норм(1,0;5) |
Открыть новый счет |
" |
1 |
Норм(15,6) |
Входные ("сырьевые") ресурсы могут моделироваться двумя способами: как отдельный набор ресурсов для каждого типа клиентов или как один ресурс с разными типами действий, представленных в виде вероятностей. Оба представления имеют свои достоинства и недостатки, различаются по сложности и точности представления моделируемых данных. Мы будем моделировать входы как один входящий поток со своими вероятностями для каждого типа транзакции.
Во-первых, определим норму прибытия клиентов как Норм(1,2; 0,3). Это означает, что приблизительно каждые 1,2 мин в операционный зал заходит новый клиент. Если норма прибытия клиентов изменяется в зависимости от времени дня, мы могли бы составить таблицу норм прибытия, в которой перечислили нормы прибытия клиентов в зависимости от времени.
В соответствии с табл. 5.4 50% всех транзакций — операции депонирования. Половина из них — всего лишь проверки состояния счета, 30% — депонирование мелких сумм и только 20% операций депонирования приносят банку значительные суммы. Аналогичные значения показывают вероятности других действий.
Таблица 5.4
Группа действий |
Вероятность |
Депонирование средств на счет |
0,5 |
Проверка состояния |
0,5 |
Депонирование мелкой суммы |
0,3 |
Депонирование крупной суммы |
0,2 |
Снятие средств со счета |
0,25 |
Снятие мелкой суммы |
0,75 |
Снятие крупной суммы |
0,25 |
Перевод со счета на счет |
0,15 |
Продолжение
Группа действий |
Вероятность |
Выписка дорожного чека: |
0,15 |
Оплата со счета |
0,80 |
Оплата наличными |
0,20 |
Открытие нового счета |
0,05 |
Для определения поведения очередей аналитик должен сделать несколько предположений о физической реализации моделируемой системы. Например, для каждой из пяти перечисленных в таблице основных транзакций может иметься собственная очередь или все клиенты могут обслуживаться в общей очереди вне зависимости от типа транзакции, наконец, может быть что-то среднее из двух вариантов. Предположим, что все клиенты обслуживают в одной очереди.
В табл. 5.5 мы предположили, что длина очереди клиентов не ограничена. Однако может оказаться полезным применить для очереди некоторые ограничения, для того чтобы посмотреть, как теряются клиенты в случае, если очередь чрезмерно длинна (некоторые клиенты не будут томиться в операционном зале, если видят, что ждать им придется долго).
Таблица 5.5
Очередь |
Поведение |
Вместимость |
Приходящие клиенты |
FIFO |
0 |
Наконец, мы должны определить, какую информацию нужно получить о каждом из компонентов модели. Выбор результирующих переменных зависит от цели построения модели. Для нашей модели наиболее очевидными параметрами являются время ожидания клиента в очереди и ее длина. Однако просто получить среднее время, проведенное клиентом в очереди, и его стандартное отклонение будет недостаточно. Мы хотим увидеть, как будут меняться длина очереди и время ожидания в зависимости от времени.
Рассмотрим рис. 5.6. Процесс, применяющийся в очереди №1, явно не справляется с возложенной на него задачей: длина очереди все время растет. Длина очереди № 2 изменяется во времени, но не превышает некоторого предела. Если он неприемлем, это означает, что очередь в некоторые моменты времени становится слишком длинной. Для понимания, почему это происходит, нужен дальнейший анализ.
Возможно,
в пиковые периоды нагрузки требуется
оптимизация распределения
имеющихся ресурсов. Очередь № 3 (и
обрабатывающие ее действия)
— кандидат на исключение из бизнес-процесса,
если банк и клиенты
достигнут более удачной договоренности
о расписании работы
операционного зала.
Рис. 5.6. Результат моделирования очередей
В рассматриваемом примере стоимость работы механизмов исполнения также важна, поскольку мы пытаемся определить наименьшее возможное число операционистов и счетчиков банкнот для операционного зала, которое могло бы приемлемым образом справляться с предполагаемым потоком клиентов. Нам нужно понять, сколько времени каждый из механизмов простаивает, для того чтобы подсчитать, во сколько обходятся такие простои. Нужно определить период времени, в течение которого операционист занят обслуживанием клиента. Наконец, можно вычислить, сколько времени проведет операционист в ожидании, пока освободится счетчик банкнот. Вся эта информация получается посредством разработки формул вычисления параметров имитационного моделирования.
