Simulation Parameters
In general, in order to conduct a simulation, you need a business process model in the BPMN 2.0 notation and a simulation scenario information.
In addition to the BPMN model, you need to provide the number of process instances to simulate and how frequently to start them (arrival rate), what resources and how many of them are available, what is the duration of tasks and etc.
If the business process is already implemented, then you can get all the data by mining the existing process logs. You may come up with hypothetical scenarios for stress testing. See sections below to understand what data is required to define the simulation scenario.
Business Process Model
Business Process Model and Notation (BPMN 2.0) is a standard for business process modeling that provides a graphical notation for specifying business processes and serialize them in the XML format.
The business process model must be given in the BPMN 2.0 format to conduct a simulation using the QBP Simulator. You can provide multiple BPMN files to encapsulate sub-processes in separate files and reference them in other BPMN files. In such case you must choose the main BPMN file that serves the entry point to the business process.
In the BPMN model, you must have at least one start event which is used to start a new process instance. If you have more than one start event in the model, then all of them will be started.
Simulation Scenario
Process Instances
The total number of process instances needs to be set to define how many BPMN process instances will be started in the simulation scenario. There is no technical limit here, the QBP Simulator is scalable! In trial and academic versions, limitations are applied.
Arrival Rate
Arrival rate is defined as a distribution of time how frequently new process instances are started. For example, an exponential arrival rate with 30 minutes mean would start a new process instance in every 30 minutes on average. The exponential distribution is very realistic - in some cases, the interval between two new process instances could be 5 minutes and in some cases a few hours.
Start Date and Time
A virtual start date and time can be specified to define when the first process instance should be started - that affects the event timestamps in the simulation logs.
Warm-up and Cool-down Periods
At the beginning of the simulation scenario, all resources are available and activities are handled without any delays. At the end of the simulation scenario, the situation is similar - as new process instances are not created, more resources become available to work on activities immediately. Such periods are called "warm-up" and "cool-down" accordingly. The QBP Simulator can exclude all the statistics from the process instances that fall into "warm-up" or "cool-down" periods if defined by the scenario to eliminate the noise.
Optionally you can provide a fixed number or a percentage of total process instances that will be excluded from calculating performance statistics at the start and at the end of the simulation scenario. This feature allows you to focus on the results from the period when resources are most utilized and cause bottlenecks.
Resource Pool
Resource pool defines all available actors in the business process who can be assigned to tasks to perform the work. You can define as many resources as needed.
The following properties are required to define a resource:
- Name (to be linked with tasks, and used in reporting)
- Number of available resource instances
- Cost per hour (optional)
- Timetable to specify the work schedule/timetable when the resource is available
Timetables / Business Hours
Timetable defines when a resource is available or when the business operates and new process instances are started. By default there are two timetables:
- Default – used for process instantiation. New process instances will be generated only according to the Default timetable
- 24/7 – always available, used for automatic/scripted activities in the scenario
You can define as many timetables as you need and associate them with different resources. Each timetable has rules which include start day, end day, begin time, and end time properties. That allows you to create simple timetables for Monday to Friday, 9 am to 5 pm business hours; or only Monday from 9 am to 12 am and from 4 pm to 6 pm timetable for certain resources.
Parameters for BPMN Elements
Tasks
For any type of task in the BPMN model the following parameters can be provided:
- Resource as the actor for the task
- Duration distribution to specify how much time does the task take on average
- Fixed cost associated with starting the task
- Cost and duration thresholds to see how many tasks are not within the given thresholds
For sub-process and call activity elements that contain other BPMN elements, users can choose to simulate them as basic tasks and provide all task parameters instead of starting the actual sub-process if needed.
Gateways
All exclusive (XOR) and inclusive (OR) gateway elements in the BPMN model require execution probabilities for their outgoing sequence flows. The QBP Simulator uses a random number generator to determine to paths to be executed.
For XOR gateway, the sum of the probabilities for the execution of each outgoing flow must be 100%.
For OR gateway, the probability of execution of each outgoing flow can be from 0% to 100% (default) and the QBP Simulator will start at least one outgoing sequence flow.
Intermediate and Boundary Events
Intermediate catch events and boundary events attached to activities in the BPMN model can be given a duration distribution to specify how much time the event will take or when it will be triggered.
It is common to use intermediate message or timer events to simulate delays in the business process that are caused by external actors and do not utilize any of the resources from the resource pool.
Duration Distributions
All durations and time intervals in the QBP Simulator are defined by a distribution. We support the following distributions:
- normal
- exponential
- uniform
- triangular
- log-normal
- gamma
- histogram for a custom curve
- fixed (constant)
Time unit of the duration is always in seconds, but user interfaces like BIMP can offer other time units like minutes or hours and convert the value to seconds.