Шаг
5.
Сбор
статистики
по
времени
обслуживания
Мы
хотим
знать,
сколько
времени
клиент
проводит
в
банковском
отделении
и
сколько
времени
он
теряет,
ожидая
своей
очереди.
Мы
соберем
эту
статистику
с
помощью
специальных
объектов
сбора
данных
и
отобразим
собранную
статистику
распределения
времен
обслуживания
клиентов
с
помощью гистограмм.
Теперь
мы
создадим
Java класс Customer.
Экземпляры
этого
класса
будут
испольоваться
в нашей
модели
в
качестве
заявок
и будут
представлять
клиентов
банковского
отделения.
Мы
создадим
в этом
классе
специальные
поля
для
запоминания
необходимой
нам
информации
о
проведенном
клиентом
времени.
Создайте
Java
класс Customer
- В
панели Проекты,
щелкните
правой
кнопкой
мыши по
элементу
модели
и
выберите Создать|Java
класс
из
контекстного
меню.
- Появится
диалоговое
окно Новый
Java класс.
В поле Имя
введите
имя
нового
класса: Customer.
- Сделайте
так, что
этот
класс
будет
наследоваться
от
базового
класса
заявки Entity.
Для
этого
выберите
из
выпадающего
списка Базовый
класс имя
этого
класса: Entity.
- Щелкните мышью
по
кнопке Далее,
чтобы
перейти
к
следующей
странице
Мастера
создания
Java
класса.
На
второй
странице
Мастера
Вы
можете
задать
параметры
создаваемого
Java
класса. Создайте
два
параметра:
- enteredSystem
типа double
для
сохранения
момента
времени,
когда
клиент пришел
в
банковское
отделение,
- startWaiting
типа double
для
сохранения
момента
времени,
когда
клиент встал
в
очередь
к
банкомату.
-
Щелкните мышью
по
кнопке Готово.
Вы
увидите
редактор
кода
созданного
класса.
Можете
закрыть
его,
щелкнув
мышью
по крестику
в
закладке
с его
названием.
Добавьте
элементы
сбора
статистики
по
времени
ожидания
клиентов
и
времени
пребывания
клиентов
в
системе.
Эти
элементы
будут
запоминать
соответствующие
значения
времен
для
каждого
клиента
и
предоставят пользователю стандартную
статистическую
информацию:
среднее,
минимальное,
максимальное
из
измеренных
значений,
среднеквадратичное
отклонение,
доверительный
интервал
для
среднего
и т.д.).
Добавьте
элементы
сбора
данных
- Чтобы
добавить
объект
сбора
данных
гистограммы
на
диаграмму,
перетащите
элемент Данные
гистограммы
с
палитры Статистика
на
диаграмму
активного
класса.
- Задайте
свойства
элемента.
- Измените Имя
на waitTimeDistr.
- Измените Заголовок
на Waiting
time distribution.
- Сделайте Кол-во
интервалов
равным 50.
- Задайте Начальный
размер
интервала:
0.01.
- Создайте
еще
один
элемент
сбора
данных
гистограммы. Ctrl+перетащите
только
что
созданный
объект
данных
гистограммы,
чтобы
создать
его
копию.
- Измените Имя
этого
элемента
на timeInSystemDistr,
а Заголовок
на Time
in system distribution.
Теперь
нам
нужно
изменить
свойства
блоков
нашей
диаграммы
процесса.
Измените
свойства
блоков
диаграммы
процесса
-
Измените
свойства
объекта
source:
-
Введите
new
Customer()
в поле Новая
заявка.
Теперь
этот
объект
будет
создавать
заявки
нашего
типа Customer.
-
Введите
Customer
в поле Класс
заявки.
Это
позволит
напрямую
обращаться
к полям
класса
заявки Customer в
коде
динамических
параметров
этого
объекта.
-
Введите
entity.enteredSystem
=
time();
в поле Действие
при
выходе.
Этот
код
будет
сохранять
время
создания
заявки-клиента
в переменной enteredSystem
нашего
класса
заявки Customer.
Функция time()
возвращает
текущее
значение
модельного
времени.

- Измените
свойства
объекта queue:
- Введите
Customer
в поле Класс
заявки.
- Введите
entity.startWaiting
= time();
в поле Действие
при
входе.
Этот
код
запоминает
время
начала
ожидания
клиентом
его
очереди
на
обслуживание
в
переменной
startWaiting
нашего
класса
заявки Customer.
- Введите waitTimeDistr.add(time() -
entity.startWaiting);
в поле Действие
при
выходе.
Этот
код
добавляет
время, в
течение
которого
клиент
ожидал
обслуживания,
в
объект
сбора
данных waitTimeDistr.

- Измените
свойства
объекта sink:
- Введите
Customer
в поле Класс
заявки.
- Введите
timeInSystemDistr.add(time()-entity.enteredSystem);
в поле
Действие
при
входе.
Этот
код
добавляет
полное
время
пребывания
клиента
в
банковском
отделении
в
объект
сбора
данных
гистограммы timeInSystemDistr.

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

Теперь
давайте
добавим
на
диаграмму
нашего
класса
гистограммы,
которые
будут
отображать
собранную
нами
временную
статистику.
Добавьте
две
гистограммы
для
отображения
распределений
времен
ожидания
клиента
и
пребывания
клиента
в
системе
- Чтобы
добавить
гистограмму
на
диаграмму
класса
активного
объекта,
перетащите
элемент Гистограмма
из
палитры Статистика
в то
место
графического
редактора,
куда Вы
хотите
ее
поместить.
- Укажите,
какой элемент
сбора
данных
хранит
данные,
которые
Вы
хотите отображать
на
гистограмме:
щелкните
мышью
по
кнопке Добавить
данные
и
введите
в поле Данные
имя
соответствующего
элемента: waitTimeDistr.
- Добавьте
еще
одну
гистограмму
и
расположите
ее под
ранее
добавленной.
- В
поле Данные введите
имя
элемента,
хранящего
данные,
которые
будут
отображаться
на
гистограмме:
timeInSystemDistr.
- Измените Заголовок
отображаемых
данных
на Распр.
времени
пребывания
в системе.
Запустите
модель.
Включите
режим
виртуального
времени
и
понаблюдайте
за
тем,
какой
вид
примет
распределение
времен
ожидания
и
пребывания
клиента
в
системе.

Шаг
4.
Добавление
клерков