Résumé

Un LinkThrowEvent doit toujours être relié à un LinkCatchEvent.

Détails

Les événements BPMN Link facilitent la création de diagrammes BPMN en permettant de remplacer un flux de séquence «qui serait difficile à router dans le diagramme» par une construction de type «goto / étiquette».

Dans cette construction, le LinkThrowEvent est similaire à un appel "goto" et le LinkCatchEvent associé est "l’étiquette" à laquelle le flux est est transféré.

Pour que cette construction fonctionne et ait un sens, il est indispensable qu’un LinkThrowEvent soit systématiquement associé à un LinkCatchEvent. La règle R3120 vérifie précisément ce point, en signalant comme en défaut les événements de type Link event non appairés.

De manière symétrique, la règle signale également les événements LinkCatchEvent qui ne sont pas associés à au moins un LinkThrowEvent.

Conseils

La correction à apporter est assez simple:

  • soit associer le Link event solitaire à un autre Link event, le cas échéant en créant cet autre événement.

  • soit supprimer l’événement solitaire qui viole la règle dés lors que cet événement n’est plus utile et ne joue plus aucun role dans le processus.

A propos des événements de lien:

Les événements Link event sont utiles lorsque:

  • un processus ne s’affiche que sur plusieurs «pages» d’un diagramme compte-tenu de sa taille (processus non entièrement visible à l’écran). Dans ce cas, l’utilisation de paires LinkThrowEvent/LinkCatchEvent peut aider à indiquer à l’utilisateur où se poursuit le déroulement du processus.

  • un SequenceFlow est difficile à acheminer de sa source vers sa cible sans encombrer le diagramme par un chemin long et tortueux. Dans de telles situations, une paire LinkThrowEvent/LinkCatchEvent est généralement une solution élégante.

Le concepteur de BPMN doit cependant garder à l’esprit que, bien que utile et même parfois inévitable, l’utilisation d’une paire LinkThrowEvent/LinkCatchEvent crée defacto une rupture dans le flux du processus. Il faut donc limiter l’utilisation de cette technique aux cas où les bénéfices l’emportent sur cet inconvénient.

Goodies:

  • les événements de type Link event ont un nom dans Modelio qui peut être affiché dans le diagramme. Afficher le nom facilite grandement l’identification de la paire LinkThrowEvent/LinkCatchEvent à condition que le même nom soit utilisé pour les deux nœuds de la paire. Ceci est la pratique recommandée par Modelio.

  • la règle R3200 renforce la pratique de nommage recommandée ci-dessus en surveillant les noms dans les paires LinkThrowEvent/LinkCatchEvent

  • la sélection d’un nœud de type Link event dans un diagramme met en évidence (highlighting) les nœuds appairés correspondants.

A propos de la règle:

  • notre recommandation est de garder la règle R3120 activée et de ne jamais la désactiver complètement. La raison est qu’un LinkThrowEvent/LinkCatchEvent solitaire (ie non appairé) brise en pratique le flux du processus, ce qui n’est jamais souhaitable.

  • la gravité de la règle peut être réduite à «warning» ou «tip» pendant les phases initiales de conception, lorsque la définition en cours du processus le rend très instable. Dans de telles phases de conception, les erreurs signalées ne sont pas toujours pertinentes. Cependant, lors des phases de maintenance, notre recommandation est d’augmenter la gravité de la règle en «Erreur» car alors, toute rupture dans déroulement du processus due à des Link event dé-appairés doit être immédiatement détectée et signalée comme une erreur nécessitant une correction.