discrete event
Discrete Event Simulation Modeling
The great majority of processes we observe in the world consist of continuous changes. However, when we try to analyze these processes it often makes sense to divide a continuous process into discrete parts to simplify the analysis. Discrete Event Modeling techniques approximate continuous real-world processes with non-continuous events that you define.
Here are some examples of events:
-
a customer arrives at a shop,
-
a truck finishes unloading,
-
a conveyor stops,
-
a new product is launched,
-
inventory levels reaches a certain threshold, etc.
In discrete event modeling the movement of a train from point A to point B would be modeled with two events, namely a departure event and an arrival event. The actual movement of the train would be modeled as a time delay (interval) between the departure and arrival events. This doesn't mean however that you can't model the train as moving. In fact, you can produce visually continuous animations for logically discrete events.
The term Discrete Event is however mainly used in the narrower sense to denote "Process-Centric" modeling that suggests representing the system being analyzed as a sequence of operations being performed on entities (transactions) of certain types such as customers, documents, parts, data packets, vehicles, or phone calls. The entities are passive, but can have attributes that affect the way they are handled or may change as the entity flows through the process. Process-centric modeling is a medium-low abstraction level modeling approach. Although each object is modeled individually as an entity, typically the modeler ignores many “physical level” details, such as exact geometry, accelerations, and decelerations. Process-centric modeling is used widely in the manufacturing, logistics, and healthcare fields.
Discrete event modeling techniques should be used only when the system under analysis can naturally be described as a sequence of operations. It is not always clear for any given modeling project which of the three modeling paradigms is best. For example, if it is easier to describe the behavior of each individual entity than trying to put together a global workflow, agent based modeling may be the way to go. Similarly, if you are interested in aggregates and not in individual unit interaction, system dynamics may be applied. Our logic tool solution supports all three modeling approaches, so you can experiment with the abstraction levels and modeling approach without needing multiple tools.
The process modeling library
The primary toolkit for discrete event modeling is called the Process Modeling Library. The Process Modeling is a collection of objects for defining process workflows and their associated resources. All objects are highly customizable. Their parameters can be changed dynamically and their actions may depend on the entity's attributes. Objects have “onEnter/onExit” extension points that let you define the actions that need to be performed on the entities going through the process. The Process Modeling Library-based model components can naturally inter-operate with system dynamics and agent based components or with primitives such as events or state charts.
If the system you are modeling is complex, it makes sense to break it down into components and model them separately in different objects. You can define sub-process start and end points, expose them as the interface of the model component and hide the sub-process implementation. At the top level of the model you will be instantiating and connecting those high-level components together. As any object can be instantiated and parameterized many times this also provides a good basis for component reuse within one model or across models.
The Process Modeling Library works closely with the presentation/animation framework and enables you to develop very sophisticated process animations. The animations can be made hierarchical with multiple 2D or 3D views. For example, the high-level view on the process may show only key aggregate indicators, but you can switch to the components view with a detailed sub-process animation.