Ein Cúram-Prozess muss einen gerichteten, zusammenhängenden und azyklischen Graph bilden. Dies klingt möglicherweise kompliziert, jedoch sind diese Begriffe nur technische Begriffe für einige sehr einfache Grapheigenschaften.
- Ein "gerichteter" Graph ist ein Graph, in dem jede Kante nur in eine Richtung verläuft. Ein gerichteter Graph wird normalerweise als Digraph bezeichnet. In Bezug auf einen Workflow bedeutet das, dass ein Übergang von Aktivität A nach Aktivität B nicht verwendet werden kann, um wieder von B zurück nach A zu gelangen. Dies wird in Cúram Workflow als gegeben vorausgesetzt. Es wird an dieser Stelle erwähnt, da die 'azyklische' Eigenschaft (siehe unten) für Graphen und Diagraphen auf unterschiedliche Art und Weise definiert wird.
- Ein 'zusammenhängender' Graph ist ein Graph, in dem jede Ecke erreicht werden kann. In Bezug auf einen Workflow bedeutet das, dass jede Aktivität im Prozess auf mindestens einem Weg von der Startaktivität zur Endaktivität erreichbar sein muss.
Dadurch wird verhindert, dass ein Workflow eine Struktur aufweist, bei der mindestens eine Aktivität niemals ausgeführt werden kann.
- Ein 'azyklischer' Digraph ist ein Graph, in dem es keine gerichteten Zyklen gibt. Für einen Workflow bedeutet das, dass es keine Ad-hoc-Schleifen geben kann (d. h. Schleifen, die anstelle von Schleifenbeginn- und Schleifenendaktivitäten Übergänge verwenden).
Ad-hoc-Schleifen mögen zwar auf den ersten Blick praktisch in ihrer Anwendung erscheinen, sie können jedoch (wie Anweisungen des Typs GOTO in Programmiersprachen) dazu führen, dass ein Prozess schwer lesbar und somit schwer zu verstehen ist. Die Verwendung von expliziten Schleifenkonstrukten führt zu klareren und verständlicheren Prozessdefinitionen.
Darüber hinaus weiß die Engine, an welchen Stellen Schleifen auftauchen können. Dadurch kann sie überwachen, wie häufig eine Schleife zur Laufzeit iteriert wurde.