# Dynamic Controllability of Processes without Surprises
## 2 Background and Motivation
### Dynamic Execution Strategies
Any assignment strategy for the \"send-notification\" task could lead to a violation of the constraint, due to the uncertainty in the time required for the money transfer. Dynamic controllability is the most refined notion for temporal correctness of process models [6], as it is the most relaxed notion that still has the property that execution withouttime failures is possible for all observable uncertainties. In other words, if a process is not dynamically controllable, the controller cannot avoid that time failures might occur. The question, whether it is possible to check at design time whether a process model is dynamically controllable, attracted a lot of attention in research (see, e.g., [6; 9; 12; 13; 14]. Formal checks are necessary, as testing typically suffers from the combinatorial explosion of considering all possible combinations of durations of contingent activities. Recently rather efficient checking procedures were proposed and proven to be sound and complete [15]. The quest for efficient procedures for checking process models with additional control structures, constraint types, etc., however, still continues. Nevertheless, also execution strategies for dynamically controllable process models can have problems or inconveniences as we showed in [11]. The controller might set the end-time of a non-contingent task at any time before that end-time. In particular, in the time frame between minimum and maximum duration after the start-time, the controller might even order to stop the task immediately. All viable dynamic execution strategies might make it necessary that the execution of a task with a non-contingent duration has to start without knowing its deadline yet. The controller has to suddenly force such a task to stop: the problem of _sudden termination_. We elaborate this phenomenon below in detail and complement it with the problem of _sudden start_: the execution of a task has to start immediately, without advance notice. Of course, it depends on the type of activity and the context whether sudden start or sudden termination is acceptable. For some activities a sudden termination poses no problem, e.g., for waiting tasks: it may be fine to start a waiting task without knowing when it must end. However, for other activities (see examples below), a sudden termination is highly undesirable, unacceptable or even impossible. This is the case, e.g., for process tasks involving human actors, or invoking external services: a human actor may not accept being abruptly forced to stop performing a calculation but would prefer to know in advance when the calculation results are due in order to properly perform the task. Similarly, for an external service invocation it may be necessary to receive a result before being able to proceed with the process. Similar examples can be found for sudden start: for instance, it would be impossible for a lab technician to immediately start executing a task of analysis of hazardous material without a prior notice that would allow her to wear protective equipment before. In such a case, a prior notice of 30 min may be required for the technician to get ready to perform the analysis. Therefore, we argue that we have to represent in the process model, whether sudden start and sudden termination are acceptable for a task. The rest of the paper describes procedures for checking, at design time, whether these _surprises_ could happen and whether it is in the power of the controller to prevent such surprises.