# Dynamic Controllability of Processes without Surprises
## 3 Process Model  
### Process Model with Temporal Constraints  
As we have shown in [11], a minimal process model is sufficient to capture the patterns for which sudden start and sudden termination may occur without loss of general applicability. The process model we consider supports the most common control flow patterns found in the practice, as shown in [16]: sequence, parallel splits and joins, and exclusive splits and joins.  
The temporal aspect of the process model includes activity durations, process deadline, and upper- and lower-bound constraints between events (i.e., start and end of activities). We measure time in _chronous_, representing, e.g., hours, days,..., which have domain the set of natural numbers, and are on an increasing time axis starting at _zero_. On such a time axis, we measure a duration as the distance between two points. A point on the time axis is defined by its distance from _zero_.  
In order to be able to talk about the sudden start and sudden termination, durations (and the corresponding activities) can be contingent, semi-contingent and non-contingent. Contingent durations cannot be controlled, thus it cannot be known when the corresponding activities will actually terminate. Non-contingent durations, on the other hand, can be controlled by the process controller at any time. This means, in particular, that the corresponding activities are allowed to start without knowing the time when they have to end, i.e., they can be suddenly terminated. Semi-contingent durations require to know, at the start time of the corresponding activities, when they must terminate. So the process controller can set the duration (hence their end time) of a semi-contingent activity until the activity starts.  
**Definition 1** (Process Model).: _A process \(P\) is a tuple \((N,E,\mathcal{C},k,\Omega)\), where:_  
* \(N\) _is a set of nodes_ \(n\) _with_ \(n.type\in\{start,activity,xor-split,xor-join,par-split,par-join,end\}\)_. Each_ \(n\in N\) _is associated with_ \(n.s\) _and_ \(n.e\)_, the start and end event of_ \(n\)_. From_ \(N\) _we derive the set of all node events_ \(N^{e}=\bigcup\{n.s,n.e|n\in N\}\)_._
* \(E\) _is a set of edges_ \(e=(n1,n2)\) _defining precedence constraints, which mean that node_ \(n2\) _is executed after the execution of_ \(n1\) _is completed._
* \(\mathcal{C}\) _is a set of temporal constraints:_
* _duration constraints_ \(d(n,n_{min},n_{max},durationtype)\)__\(\forall n\in N\)_, where_ \(n_{min}\)_,_ \(n_{max}\in\mathbb{N}\)_,_ \(durationtype\in\{c,sc,nc\}\)_, stating that_ \(n\) _takes some time in_ \([n_{min},n_{max}]\)_,_ \(n\) _can be contingent (_\(durationtype=c\)_), semi-contingent (_\(durationtype=sc\)_), non-contingent (_\(durationtype=nc\)_);_
* _upper-bound constraints_ \(ubc(a,b,\delta)\)_, where_ \(a,b\in N^{e}\)_,_ \(\delta\in\mathbb{N}\)_, requiring that_ \(b\leq a+\delta\)_;_
* _lower-bound constraints_ \(lbc(a,b,\delta)\)_, where_ \(a,b\in N^{e}\)_,_ \(\delta\in\mathbb{N}\)_, requiring that_ \(b\geq a+\delta\)_._
* \(k:N\rightarrow\mathbb{N}\) _is a function that associates each node_ \(n\in N\) _with a required advance notice_ \(k(n)\) _for its start, meaning that if_ \(n\) _has to start at time_ \(t\)_, this has to be known at a time_ \(k(n)\) _before_ \(t\)_. We call such a point in time the_ dispatcher _event_ \(n.d\) _of_ \(n\)_._
* \(\Omega\in\mathbb{N}\) _is the process deadline (the longest admissible duration between start.s and end.e)._  
Figure 3 shows the representation of the process in Figure 2 according to the process model of Definition 1.  
We now define the temporal semantics of the process model.  
Figure 2: Example process with a potential sudden start of an activity.