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 will describe in detail the various screens and options available when configuring a model for BPSim execution.

Once configured, you can export the BPMN model along with its BPSim data in a standard form that can be consumed by standards compliant BPSim engines. Sparx Systems provide a new BPSim-capable simulator (for separate purchase) - the MDG BPSim Execution Engine. This new 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.

BPMN Model with BPSim Configuration

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.


  • 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' dialog
  • 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