Classification tags: business operations management, DES, next-event time progression, activity-based process modeling
The potentially relevant object types are:
Potentially relevant types of events are:
Notice that receptions and case handlings are service activities, which consist of a start and an end event.
Both object types and event types, with their participation associations, can be visually described in a UML class diagram, as shown below.
ON (event type) | DO (event routine) |
customer arrival | If the reception desk is busy, then the newly arrived customer queues up, else a new reception service for this customer starts. |
end of reception | If the case handling desk is busy, then the served customer queues up, else a new case handling service for this customer starts. If there are still customers waiting in the reception desk queue, the next reception service starts. |
end of case handling | The served customer departs. If there are still customers waiting in the queue of the case handling desk, the next case handling service starts. |
In this model of the Department of Motor Vehicles, the two consecutive activities (reception and case handling) are modeled as service activities performed by two different service providers. The model allows to have service chains of any length.
A computational design for the purpose of computing the statistics average time in system and service utilizations is obtained by modeling the following types of objects, events and activities:
ServiceProvider
and Customer
, such that
service desks (1) have a waiting line represented as a multi-valued reference property waitingCustomers
defined by a corresponding association end, and (2) may have a successor service desk represented as a multi-valued
reference property nextServiceProvider
defined by a corresponding association end.CustomerArrival
with a reference property serviceProvider
for expressing that a customer arrives at a certain service desk. As an exogenous event type, CustomerArrival
has a recurrence
function representing a random variable for computing the time in-between
two subsequent customer arrival events.Service
, having a resource association with the object type
ServiceProvider
(for expressing that a service is performed at a certain service desk) and
having a function randomDuration
representing a random variable that models the random
variation of the duration of reception and case handling activities.In the scenario, the reception desk and the case handling desk are defined as service providers. The simulator automatically computes the utilization of both service desks (as a resource).
The object types, event types and activity types described above, together with their participation associations, are visually described in the following UML class diagram:
ON (event type) | DO (event routine) |
CustomerArrival( sP) @ t |
CREATE customer{ arrivalTime: t} PUSH customer TO sP.waitingCustomers IF sP.waitingCustomers.length = 1 THEN SCHEDULE ActivityStart("Service", sP) @ t' |
ActivityEnd("Service", a) @ t |
SET sP = a.serviceProvider POP customer FROM sP.waitingCustomers IF HAS-VALUE( sP.nextServiceProvider) THEN SET nextSP = sP.nextServiceProvider PUSH customer TO nextSP.waitingCustomers IF nextSP.waitingCustomers.length = 1 THEN SCHEDULE ActivityStart("Service", nextSP) @ t' ELSE REMOVE customer FROM SIMULATION IF sP.waitingCustomers.length > 0 THEN SCHEDULE ActivityStart("Service", sP) @ t' |
Notice that t' denotes the next moment in simulation time after t. If the simulation is using discrete time, then t' = t+1, else (if the simulation is using continuous time), then t' = t + Δt where Δt denotes the smallest time increment defined by the simulation model's time granularity.