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 service performances are 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 service desk is busy, then customer queues up else start a new service performance |
end of service performance | the served customer departs; if there are still customers waiting in the queue, then start next service performance |
In this 3rd variant of our Service Desk queuing model, we model a service performed by the service desk as an activity in the sense of a business process activity. Activities are special types of events having some duration and using resources. Their duration may be either preset to a fixed value or to a random value (in which case they have a scheduled end), or it may be determined by the occurrence of an activity end event that is caused by another simulation event (in which case they have an open end).
A computational design for the purpose of computing the two statistics maximum queue length and service utilization is obtained by modeling the following types of objects, events and activities:
ServiceDesk
with one (integer-valued) attribute
queueLength
.CustomerArrival
with a reference property serviceDesk
having the class ServiceDesk
as range. As an exogenous event type, CustomerArrival
has a recurrence
function representing a random variable for computing the time in-between
two subsequent event occurrences.PerformService
having a resource association with the object type
ServiceDesk
and a function randomDuration
representing a random variable
for computing the duration of a service (as a PerformService
activity).By modeling the service as a PerformService
activity, we get the service desk utilization
statistics for free, since utilization statistics are computed automatically by a simulator supporting
activity modeling due to its implementation of the general semantics of activities.
The object types, event types and activity types described above, together with their participation associations, are visually described in the following UML class diagram:
Since both the recurrence
of CustomerArrival
events and the serviceDuration
of ServicePerformance
activities are exponentially distributed,
this model corresponds to what is called an M/M/1 queue in Queueing Theory.
It is well-known that for the variable a denoting the customer arrival rate and s denoting the service performance rate,
Notice that these theoretical results can be used for validating the implemented simulation model, e.g., by comparing its computed utilization with the theoretical utilization a / s, which would be 1 since in the model a = s = 0.5.
ON (event type) | DO (event routine) |
CustomerArrival( sd) @ t |
INCREMENT sd.queueLength IF sd.queueLength = 1 THEN SCHEDULE ActivityStart("PerformService", sd) @ (t+1) |
ActivityEnd("PerformService", sd) @ t |
DECREMENT sd.queueLength IF sd.queueLength > 0 THEN SCHEDULE ActivityStart("PerformService", sd) @ (t+1) |