На рисунке 4 представлена иерархия разработанных классов имитационной модели системы материального снабжения буровых установок, разработанная в соответствии с изложенными выше результатами объектно-ориентированного анализа:
Рисунок 4. Схема иерархии классов имитационной модели.
Главным классом для имитационной модели выступает класс Model, реализующий функции контейнера для остальных классов. Весь процесс моделирования осуществляется с помощью функций класса Model.
Класс Node является базовым классом иерархии объектов, составляющих модель сети СМО. Поскольку модель разрабатывается пользователем в специальном графическом редакторе и может функционировать в режиме анимации, то каждый из ее объектов должен иметь графическое отображение.
Класс DrillTower наследует класс Node и предназначен для моделирования основных производственных объектов предметной области — буровых установок.
Класс Sklad наследует класс Node и предназначен для моделирования склада комплектующих, реализующего функции группового ЗИП.
Класс Depo наследует класс Node и предназначен для моделирования склада верхнего уровня, откуда снабжаются комплектующими склады групповых ЗИП.
Класс Transport наследует класс Node и предназначен для моделирования транспортного обслуживания буровых при доставке на них комплектующих со складов группового ЗИП, а также для снабжения этих складов со склада верхнего уровня.
Класс Part предназначен для моделирования комплектующих, необходимых для работы буровых и входящих в состав ЗИП.
Функция ProcessDrillFault (DrillTower drill) выполняет обработку сообщения о выходе из строя той или иной комплектующей заданной буровой установки. Алгоритм функции представлен на рисунке 5.
Функция TimerTick () является центральной в обеспечении процесса моделирования и выполняет обработку сигналов таймера, что вызывает движение модельного времени, генерацию и обработку всех заявок в модели. Алгоритм данной функции представлен на рисунке 6.