Un processus Cúram doit représenter un graphe qui possède les propriétés suivantes : orienté, connecté et acyclique. Cela peut sembler complexe, mais il ne s'agit que des termes techniques décrivant certaines propriétés de graphe très simples.
- Un graphe "orienté" est un graphe dans lequel chaque arête prend une seule direction. En termes de flux de travaux, cela signifie qu'une transition de l'activité A vers l'activité B ne peut pas être utilisée pour revenir de B à A. Il s'agit d'une évidence dans les flux de travaux Cúram. Cette propriété est mentionnée ici car la propriété 'acyclique' (voir ci-dessous) est définie de manière différente pour les graphes et les graphes orientés.
- Un graphe "connecté" est un graphe dans lequel chaque vertex peut être atteint. En termes de flux de travaux, cela signifie que chaque activité du processus doit pouvoir être atteinte en prenant au moins un chemin partant de l'activité de départ et arrivant à l'arrivée de fin.
Cette propriété évite aux flux de travaux d'avoir une structure dans laquelle une ou plusieurs activités ne pourraient jamais être exécutées.
- Pour finir, un graphe orienté "acyclique" est un graphe dans lequel il n'existe aucun cycle orienté. En termes de flux de travaux, cela signifie qu'il ne peut y avoir aucune boucle ad hoc (c'est-à-dire, des boucles construites à l'aide de transitions plutôt que des activités de début et de fin de boucle).
Les boucles ad hoc peuvent sembler appropriées, mais (comme les instructions GOTO dans les langages de programmation) elles peuvent rendre la lecture et la compréhension d'un processus très difficiles. L'utilisation de constructions de boucle explicite rend les définitions de processus plus transparentes et plus compréhensibles.
De plus, elle permet au moteur de savoir où la boucle peut intervenir, et peut ainsi suivre l'évolution du nombre d'itérations d'une boucle au cours de l'exécution.