Time Pattern TP9: Cyclic Elements

Regarding iteratively performed activities or process fragments it may become necessary to restrict time lags between two activity instances belonging to different iterations of a loop structure.
This may be either instances of the same activity or instances of two different activities belonging to the same loop structure.

Time Pattern TP9: Cyclic Elements
Also known as
-
Problem
In the context of iteratively performed activities or process fragments, there is a given time lag between activities, where respective instances of these activities may belong to different iterations of the loop structure. This may either be instances of a single activity or of two different activities belonging to the same cycle.
Design Choices
CCyclic Elements only constrain the execution of activities
 aSingle activity (including multi-instance activities)
DThere are three kinds of restrictions
 aMinimum value
 bMaximum value
 cTime interval [min … max]
ECyclic Elements define the distance between the
 astart of two activities (i.e., Start-Start relation)
 bstart of the first and the completion of the second activity (i.e., Start-End)
 ccompletion of the first and the start of the second activity (i.e., End-Start)
 dcompletion of two activities (i.e., End-End)
KCyclic element may restrict the time lag between
 atwo directly succeeding iterations
 btwo subsequent activity instances belonging to arbitrary iterations
LTime lag between cycles
 ais fixed
 bmay vary between iterations
Solution
Cyclic Elements

A special time constraint is introduced between the start / end events of the activities where the respective event of the second activity is considered to be in a succeeding iteration of the event referring to the first activity.

This pattern can be realized at run-time similar to pattern TP1 with additional attention being paid to the iterations of the respective activities.
Context
The mechanism evaluating the constraint (i.e., starting the timer) needs to be able to access the value of the time lag when it starts the timer. Additionally, time lags may vary between iterations (cf. Design Choice L). Therefore, these requirements need to be fulfilled for each iteration of the respective loop.
Examples
  • Administer 50 to 75 mg in equally divided doses every 12 hrs for 5 subsequent days (Design Choices D[c] E[c] K[a] L[a]).
  • Maintenance aircraft “C Checks” are performed every 12-18 months (Design Choices D[c] E[c] K[b] L[a])
  • Cycle Time for maintenance aircraft “C Checks” is at least 2 weeks (Design Choices D[a] E[a] K[a] L[a])
Related Patterns
TP10 – Periodicity
TP1 – Time Lags between Activities; TP9 is an extension of TP1 considering loops and iterations

Product Evaluation

We differentiate between supported, partially supported, not supported, and not specified.
If an evaluation object provides support for the particular pattern the supported design choices are listed. If the pattern is only partially supported (e.g., by a work-around) this is indicated by the additional label "*" and if support is not specified this is indicated by the label "?". Missing support is labeled with "-".

Product/Language Version Score Motivation
Microsoft Outlook 2010 D[a], E[a, c], K[a], L[a] partially supported
Sunbird 1.0 D[a], E[a], K[a], L[a] partially supported
Google Calendar 12.2011 D[a], E[a], K[a], L[a] partially supported
Microsoft Project 2010 D[a*], E[a*,c*], K[a], L[a] partially supported
BPMN 2.0 D[a*], E[c*], K[a], L[a,b] partially supported (with limits)
IBM Websphere Integration Developer 6.1 D[a*], E[a*,c], K[a], L[a,b] partially supported through a work-around
WebSphere Lombardi Edition 7.1 D[a*], E[c*], K[a], L[a,b] partially supported (with limits)
AristaFlow 1.0.1 D[b], E[c*,d*], K[a], L[a,b] partially supported
Intalio 6.0.3 D[a*], E[c], K[a], L[a,b] partially supported through a work-around
TIBCO Business Studio 3.4.2 D[a*], E[c*], K[a], L[a] partially supported (with limits)
Bettini et al.   loops are explicitly excluded from considerations
Combi et al.   D[a,b,c], E[a?,b?,c?,d?], K[a], L[b] partially supported (but not really clear)
Eder et al.   loops are explicitly excluded from considerations
Marjanovic et al.   loops are explicitly excluded
Zhuge et al.   not discussed