SIMPROCESS Modeling Constructs

SIMPROCESS modeling constructs can be categorized into three major categories. The basic modeling constructs are the minimum functions needed to have a working model. The activity modeling constructs are used for defining the behavior of processes. The advanced modeling functions are the features needed for customization and more complex modeling.

Basic Modeling Constructs

Activity Modeling Constructs

Advanced Modeling Functions


Basic Modeling Constructs

The diagram below illustrates the basic modeling constructs and how they are used in a SIMPROCESS model.



Processes and Activities

A key distinguishing feature of SIMPROCESS is its hierarchical process modeling capability. This allows decomposition of a process into as many levels of detail as required. The Process construct creates the hierarchy. A process may have several sub-processes and activities. For example, an inspection process that consists of a BRANCH activity and two DELAY activities can be defined as a hierarchical process template.


Resources are the second most important modeling construct of SIMPROCESS. In the real world, the performance of a business process is usually constrained by the limited availability of resources or by resource interdependencies. SIMPROCESS defines the costs, capacity, usage, and interdependencies associated with resources. It automatically keeps track of the resource’s utilization and costs. Schedules and Downtimes can be modeled to mimic the dynamic behavior of resources.


The third building block of a SIMPROCESS model is the Entities (or flow objects) that flow through the process model. Entities can be used to represent physical things (orders, paperwork), or logical things (signals, flags). Entities may be assigned attributes to define such characteristics as order size and customer type. Entities are created using the GENERATE activity and disposed using the DISPOSE activity.


Connectors are the links between processes or activities. They are used for defining the flow of entities. Connectors are objects in their own right with characteristics, and they can have duration to represent travel time.


Pads are the objects used for linking connectors between processes or activities. A process may have multiple pads for input or output. Pads have three sizes: small (default), medium, and large. The default pad size can be set in the Preferences.


Activity Modeling Constructs

Activity modeling constructs are the objects at the lowest level of the SIMPROCESS hierarchy and they are used for modeling the behavior of a process. Activities are non-decomposable. The SIMPROCESS Model Toolbar contains 19 built-in activity blocks; however, re-usable activity templates can be created and added to the Library Toolbar. Below is a basic overview of the SIMPROCESS activity modeling constructs.


A GENERATE activity generates the arrival of entities into the model. Arrivals may be random, deterministic or conditional. An example of a GENERATE activity is the arrival of patients in a clinic. A GENERATE activity may have values for arrival time, quantity, frequency and occurrences.


A DISPOSE activity disposes of the entities when they are finished with processing. A DISPOSE activity can be used for collecting customized statistics for throughput or throughput time.


A DELAY activity defines value added or non value added activity times. It is one of the most commonly used activities in SIMPROCESS. A DELAY activity with resource constraints provides queue statistics that can be used for analyzing wait times.


An ASSEMBLE activity assembles multiple entities coming from multiple sources to create a single entity. For example, the development of a business proposal may contain three documents that are merged using an assembly activity.



A BRANCH activity allows for defining alternative routings for flow objects. Branching may be based on a probability or a condition. For example, the outcome of an inspection process may be modeled using probabilistic branching.


A MERGE activity provides a mechanism for merging a number of connectors into a single connector.


A BATCH activity combines a given quantity of entities into a single batch. An example of a batching activity is the accumulation of mail for delivery.


An UNBATCH activity splits a previously batched entity into individual entities. For example, unloading of a truck that results in multiple loads may be modeled with an unbatch activity.


A SPLIT activity takes an incoming entity and creates clones of that entity as well as providing an output of the original entity. For example, clones of a purchase order may be created with a SPLIT activity and sent to accounts payable and shipping.


A JOIN activity takes the clones and original entity that were split up, and matches them to produce the original one. For example, a JOIN activity may be used for matching the paperwork with the shipment.


A TRANSFORM activity converts an incoming entity into another entity. For example, a prospective buyer is transformed into a customer when an order is placed. This activity can be modeled using the transform construct.


A TRANSFER activity routes entities from one portion of a model to another without using a connector or routes entities to another model.


A CLONE activity makes multiple copies of the original entity. Note that this activity is not on the Model Toolbar. It is only on the Create menu in order to support pre-SIMPROCESS version 4 models.


A GATE activity holds entities in a queue, until a signal is received. For example, a GATE activity would be used to model orders held in inventory until a signal is received from the distributor to fulfill the demand.


An ASSIGN activity provides a mechanism for defining or changing attributes values.


A SYNCHRONIZE activity takes inputs that arrive at different times and outputs them in a synchronized fashion. For example, passengers and their baggage must be synchronized at a terminal.

Replenish Resource

This activity allows for replenishment of consumable resources.

Get Resource

This activity provides a mechanism for capturing resources that may be used for a number of downstream activities.

Free Resource

This activity provides a mechanism for releasing resources that were captured by a GET RESOURCE activity.


Advanced Modeling Functions

Advanced modeling functions are very important for realistically modeling the complex behavior of business processes. These functions of SIMPROCESS differentiate it from other BPR tools that are based only on simplistic modeling functions. The advanced modeling functions combined with programming capabilities provide the power and flexibility to accurately analyze the dynamic behavior of real-world business problems.

User Defined Attributes

Entity Types, Entity Instances, Resources, Activities and Processes, and the Model itself can have user defined attributes. User defined attributes can be used as tags attached to entities that travel through the model. Attributes can be used for conditional branching, sequencing, or decision making in expressions or logic. For example, order quantity may depend on which customer the order came from. Furthermore, order processing time may depend on the size of each order. By defining an attribute named “OrderQuantity” and writing an expression that multiplies “OrderQuantity” by “ProcessTimePerOrder,” the order processing delay can be accurately modeled.

System Attributes

These attributes keep track of the states of model elements so that expressions can be written to deal with complex business situations. For example, the number of customers waiting for a service representative is a system attribute that changes over time. In a typical service process, the number of servers would be increased if the customers in line reach a certain number.

User-defined Expressions

When modeling real-world business processes, there will inevitably be situations which will require modeling functionality that is not built-into a BPR tool. SIMPROCESS provides the capability to write user-defined expressions and use them for modeling or customizing the performance measures. For example, service level may be an important performance measure for a business that is trying to fulfill orders within a 12 hour window from the time orders are placed. Using system attributes, user-defined attributes and user-defined expressions, the cycle time for each order can be compared with the 12 hour target and the service level of the process calculated.

Built-in Programming Environment

Although the built-in functionality and the ability to customize models with attributes, expressions, and distributions offer plenty of power for modeling most business processes, there may be situations where added flexibility is needed that can only be achieved by a programming environment. For these complex business process applications, SIMPROCESS has a built-in programming environment.

Built-in & User-defined Distributions

SIMPROCESS comes with 26 standard probability distributions and allows the creation of empirical distributions based on raw data. Eleven of the distributions also have Apache Commons Math implementations. One of the powerful features of SIMPROCESS is its data analysis (curve fitting) functionality using ModelFit. ModelFit accepts a number of data points and then provides the distribution that best represents the data set. This can be done on-demand or automatically at the beginning of a simulation.

Reusable Modeling Templates

One of the most powerful features of SIMPROCESS is modeling templates can be created that can be stored in a library and used over and over. For example, an inspection process template using three SIMPROCESS activity blocks such as DELAY (inspection activity), BRANCH (probabilistic outcome of inspection), and DELAY (rework activity) can be created. A favorite inspection graphic can then be attached to the template and the inspection template saved in a library. When needing to model an inspection process, simply click on the inspection graphic, drop it in the model diagram, and double-click on it to customize its parameters.

Event Logs

Event Logs are built-in features for tracking custom cycle time measures. There are two types, Time Stamps and Recorders. Time Stamps are used to measure time between any two events. A Time Stamp can be thought of as a label or key that contains the current simulation time. This key is added to an Entity by an Event Log when it either enters or leaves a Process or Activity. Pairs of keys (start key and stop key) are specified and Entity cycle times are computed between them. Recorder event logs can be used for monitoring statistics such as arrival and departure rates. They write the arrival or departure time of an Entity at a Process/Activity into a file in the model’s directory.

Custom Reports

Custom reports are user-defined reports. They are defined for specific purposes and can contain statistical and non-statistical information. Custom reports are typically defined and viewed once all modeling, simulation, and analysis is complete. Multiple custom reports can be defined for a single model. Each report displays in a report viewer. From that viewer reports can be printed or saved in various file formats (for example pdf, rtf, and docx). (Link to custom report pdf)

Simulation Results Analysis and Export

Simulations can produce much data. SIMPROCESS allows you to view simulation results in reports, .xls or .csv files, or graphically. You can also export specific results to databases and spreadsheets.


Real-Time Plots

Real-time plots of key metrics can be displayed during or after a simulation. SIMPROCESS offers real-time plots of standard metrics plus custom real-time plots can be defined. A real-time plot can trace a value over time or display a histogram of a value. Custom real-time plots can handle multiple values.


Scenarios are used to save simulation results for comparison purposes and are specific to a model. Thus, Scenario results from different models cannot be compared directly in SIMPROCESS. A Scenario is defined, and then the model is run with the Scenario selected. When the simulation completes the results from the Scenario are saved into an external file (Scenarios.xml) for later use. Scenario Reports can be created to compare results from different Scenarios or within the same Scenario.


Experiment Manager

The experiment manager runs models automatically. SIMPROCESS loads the model, runs the replications, and (optionally) places the results in the database. Multiple models can be setup for simulation, and initial conditions can be varied for each model run. In addition, a text file of the results from each run can be automatically created.


OptQuest® for SIMPROCESS is an optimization tool created by OptTek. Since OptQuest is an optimization tool, it attempts to minimize or maximize the value of a performance measure based on limits (constraints, upper bounds, and lower bounds). OptQuest automatically runs SIMPROCESS models varying the values for the model parameters searching for optimum results within the specified limits.


SIMPROCESS Dashboards are collections of dynamic graphs that can be displayed locally or remotely by a Dashboard Server. The graphs contained by Dashboards can be of the same type or of differing types. Dashboards are defined independent of SIMPROCESS models. Thus, a Dashboard can be used with multiple models, or multiple models may use a single Dashboard. To use a Dashboard with a model, the Dashboard must be assigned to a model. The Assign process links the Dashboard to the model, indicates the location of the Dashboard Server for display (host or IP address and port), and sets the values that will be displayed on the graphs defined for that Dashboard.


SIMPROCESS models have the ability to let an outside agent manage the advancement of simulation time. That agent is the SIMPROCESS TimeServer. The TimeServer is a separate application that manages simulation time for multiple participants.


The Dispatcher is a program that controls the operation of one or more instances of SIMPROCESS or OptQuest® for SIMPROCESS when requests arrive from the DispatcherService. The DispatcherService is a Web service that can be deployed in a Web Container (an application supporting the Java Servlet Specification) or Application Server. It is the gateway through which a client application obtains SIMPROCESS or OptQuest® for SIMPROCESS services.


User-written or third party Java code can be executed during simulations to extend the capability of SIMPROCESS.