Business Process Simulation (BPSim) | Enterprise Architect User Guide
Prev Next

Business Process Simulation (BPSim)

The open BPSim specification provides a rich set of material on how to configure and assign resources to activities/tasks, how to raise events, decision making and other real-world capabilities. Once configured according to the BPSim specification, a business process model (constructed in BPMN) can be sent to a suitable BPSim simulation engine and run according to the process defined in the BPMN model, using the configuration data attached in the BPSim information.

The BPSim specification is very detailed and offers the interested modeler and business strategist an unprecedented flexibility in assigning operating information to a model and then assessing the quality of the solution based on information received back from the Simulation engine. This section describes in detail the various screens and options available when configuring a model for BPSim execution.

Sparx Systems provide a BPSim-capable simulator (for separate purchase) - the MDG BPSim Execution Engine. This Add-In integrates with the BPSim and BPMN models defined in Enterprise Architect, providing the capability to run and store the results from multiple simulations and to perform convenient comparisons across each configuration's result set.

Installing the Sparx Systems MDG BPSim Execution Engine and registering the licence for it are pre-requisites for accessing and using the built-in BPSim configuration facilities. Once you have set up a BPSim configuration, you can export the BPMN model along with its BPSim data in a standard form that can be consumed by the Sparx Systems BPSim Execution Engine and by any other standards-compliant BPSim engines.

BPMN Model with BPSim Configuration

Business Process Simulation (BPSim) overview in Sparx Systems Enterprise Architect.

The BPMSim configuration screens have been divided into multiple Perspectives, each of which focuses on one aspect of the setup process at a time. The three Perspectives are:

  • Control Perspective, which examines how activity flows through the process, moderated by the likelihood of a sequence of events and the priorities of certain events
  • Time (Temporal) Perspective, which examines how the duration of one or more phases in the processing of an Activity influences the business process
  • Resource Perspective, which examines the involvement of types and roles of workers and other resources, their required numbers, their costs and their availability

A fourth Perspective (<All>) presents all of the options of the other three Perspectives.

You can also maintain multiple versions of a configuration and easily compare the differences between versions to see how each configuration will vary the flow of the proposed simulation or process execution. You might, for example, establish a baseline configuration and then create multiple 'what-if?' configurations that vary one or more parameters. Once run through a simulation engine you can examine each result and decide on the relative merits of each configuration. One useful facility to apply here is the simple inheritance of common, unchanged data in one configuration by another configuration that contains only the data being varied.

Users can combine the BPSim and Charting facilities to quickly vary, simulate and compare aspects of a Business Process model, and show the differences between the simulations in one of the many Chart formats.

If you are working across multiple projects, you can export and import the BPSim configurations between them. The configuration automatically carries with it the BPMN 2.0 model on which it is based.

The Enterprise Architect Business Process Simulation configuration tool is based on the BPSim Framework developed by the Workflow Management Coalition (WfMC).

Business Process Simulation

This collection of images shows the process of annotating a BPMN model with BPSim information, running it and generating a chart of the results.

Install the BPSim Execution Engine

You can purchase and download the MDG BPSim Execution Engine from the 'Products' page of the Sparx Systems website ( As part of this process, you will receive a registration key by email, to enable you to use the system beyond a 14-day trial period.

The MDG BPSim Execution Engine installer does not include JRE or JDK, therefore you must install JRE version 1.7 or higher to use the simulation and, if your BPSim Configuration contains any property parameters, you must also install JDK version 1.7 or higher.

You do not need to do any further configuration of the engine unless you have multiple versions of JRE/JDK on your system and you want to specify which version the execution engine should use. In this case, apply these environment variables as shown:

  1. Click on the Windows 'Start' icon and select the 'Computer' option.
  2. From the banner menu, select the 'System properties' option.
  3. From the side panel, select the 'Advanced system settings' option.
  4. On the 'Advanced' tab of the 'System Properties' dialog, click on the Environment Variables button.
  5. On the 'Environment Variables' dialog, in the 'System variables' panel, click on the New button.
  6. On the 'New System Variable' dialog, complete the fields with the values shown:

    For JRE:      Variable name:    MDG_BPSIM_JRE_HOME
                       Variable value:    C:\Program Files\Java\jre7

    For JDK:     Variable name:     MDG_BPSIM_JDK_HOME
                       Variable value:     C:\Program Files\Java\jdk1.7.0_51
  7. Click on the OK button.
  8. You must re-start your machine for the new variables to take effect.


  • If you click on a business process element or connector in a diagram or in the Project Browser, it is highlighted and selected in the Configure BPSim window
  • The Business Process that you simulate can contain elements from more than one Package; to include the external elements in the simulation, you must create a Package diagram containing the 'parent' Package and either the 'external' Packages containing the external elements, or the external elements themselves; create a:
         -  Package Import connector from the parent Package to each external Package, or
         -  Dependency connector from the parent Package to each external element

Learn more