BPMN: les flux et les artefacts
Les connecteurs BPMN relient les symboles d'un diagramme: le flux de séquence ordonne le travail à l'intérieur d'un processus, le flux de message porte les échanges entre deux participants, l'association rattache un artefact à un objet. Les trois artefacts, association, annotation textuelle et groupe, ajoutent au diagramme une information qui laisse le déroulement du processus inchangé.
Le chapitre sur les passerelles a employé la condition attachée à une porte, le nom que Silver donne à un flux de séquence sortant d’une passerelle, et le flux par défaut, en laissant leur syntaxe de côté. Ce chapitre la donne.
Le flux de séquence (sequence flow)
Le flux de séquence montre l’ordre des éléments de flux dans un processus. Il se trace d’une ligne pleine terminée par une pointe pleine1.
Chaque flux de séquence a exactement une source et une cible, prises parmi les événements, les
activités et les passerelles1. Le standard rassemble ces familles sous le FlowNode;
l’activité de chorégraphie en est la quatrième sous-classe, réservée aux diagrammes de
chorégraphie1. Le sous-processus
événementiel fait exception: il ne peut être ni
source ni cible1.
isImmediate dit si des activités absentes du modèle peuvent survenir entre les deux éléments que
le flux relie. Sans valeur, il se lit comme faux dans un processus non exécutable et comme vrai dans
un processus exécutable, où il ne doit jamais valoir faux1.
Les bordures infranchissables
Deux bordures arrêtent un flux de séquence: celle d’un pool et celle d’un sous-processus développé, dont les objets ne se relient à aucun objet extérieur2. Le chapitre sur les sous-processus porte cette seconde règle.
Le tableau des connexions autorisées ne mentionne ni le pool, ni le couloir, ni l’objet de données, ni le groupe, ni l’annotation textuelle2. Ces cinq éléments se rattachent autrement: le groupe et l’annotation par une association, l’objet de données par une association de données, le pool et le couloir en contenant les objets.
Le flux non contrôlé (uncontrolled flow)
Le standard appelle flux non contrôlé un flux qu’aucune condition n’affecte et qui ne traverse aucune passerelle3. Le cas le plus simple est la ligne unique entre deux activités. Plusieurs flux non contrôlés peuvent aussi diverger d’une activité ou converger vers elle, et chacun porte son jeton de la source vers la cible3.
Plusieurs flux sortants d’une même activité valent donc une division parallèle, écriture que le standard tient pour la méthode à préférer dans la plupart des situations3.
La fusion, elle, garde son symbole: le chapitre sur les passerelles donne la règle et les anomalies qu’elle évite.
L’expression de condition (condition expression)
Un flux de séquence peut porter une expression de condition. Le jeton n’est placé sur le flux que si elle s’évalue à vrai1. En pratique, la source du flux est une passerelle ou une activité1.
Les deux formes de l’expression
L’expression (Expression) consigne la logique en langue naturelle, dans l’attribut
documentation hérité; elle est tenue pour sous-spécifiée et ne s’exécute pas. L’expression
formelle (FormalExpression) exprime la même logique sous une forme exécutable, dans un langage
déclaré: language porte l’URI de ce langage et body le corps de l’expression. Le langage par
défaut vaut pour tout un modèle et se déclare sur l’élément definitions, par l’attribut
expressionLanguage, que chaque expression formelle peut redéfinir4.
Une expression de condition s’évalue à un booléen4. Elle se place là où elle sert, ou se définit au niveau du processus, les flux qui en ont besoin la référençant4.
Le marqueur en losange
Un flux conditionnel sortant d’une activité porte un petit losange au début du connecteur. Sortant d’une passerelle, il ne le porte pas: le standard l’interdit1.
Une activité dont un flux sortant est conditionnel doit en porter au moins un autre1. La passerelle source ne peut être ni parallèle ni événementielle1.
Silver relève l’erreur d’outil correspondante: certains dessinent le losange au départ d’un flux sortant de passerelle5. Il ajoute une règle de style. Le flux conditionnel convient au parallélisme conditionnel, celui de la figure ci-dessus; un choix exclusif s’écrit avec une passerelle exclusive, faute de quoi le lecteur hésite sur ce que le modélisateur a voulu dire5.
Le flux par défaut (default flow)
Un flux de séquence peut être déclaré par défaut. Il est alors emprunté quand aucun des autres flux sortants n’est valide, c’est-à-dire quand toutes leurs expressions de condition sont fausses1.
Quatre sources l’admettent: la passerelle exclusive, l’inclusive, la complexe et
l’activité1. L’attribut default de la source désigne celui de ses flux sortants qui joue
ce rôle6. Silver en fait une règle de validation: une activité ou une passerelle a au
plus un flux par défaut5.
Son marqueur est une barre oblique tracée au début du connecteur13. Le flux par défaut ne porte aucune expression de condition, et une expression qui s’y trouverait serait ignorée6.
Pour Silver, par défaut se lit sinon et ne dit rien de la fréquence: le flux est emprunté si et seulement si aucun autre ne l’est5.
Les deux branches conditionnelles peuvent être empruntées ensemble, ce que la fusion inclusive confirme, et la branche par défaut ne l’est que si aucune des deux ne l’est. Silver observe qu’un modélisateur qui écrit deux flux conditionnels suivis d’un flux par défaut vise le plus souvent un choix exclusif, alors que cette configuration n’en est pas un5.
Le flux de message (message flow)
Un flux de message montre la circulation des messages entre deux participants prêts à les envoyer et à les recevoir7. Il se trace d’une ligne discontinue, ouverte par un cercle vide à la source et fermée par une pointe de flèche vide7.
Les connexions autorisées
Un flux de message doit relier deux pools distincts7. Il se raccorde à la bordure du pool ou à un objet de flux intérieur, et il ne relie jamais deux objets d’un même pool7.
Trois éléments seulement peuvent en être la source ou la cible: le pool avec le participant qu’il
représente, l’activité et l’événement7. Le couloir, la passerelle, l’objet de données, le
groupe et l’annotation textuelle sont absents de son tableau de connexions2. L’attribut
messageRef désigne le message transporté, que le diagramme peut afficher sur la ligne7.
Le pool et le participant appartiennent au chapitre suivant, sur les pools, les couloirs et la collaboration. La figure les emploie au minimum nécessaire pour qu’un flux de message existe.
Ce que la ligne promet
Dumas en donne l’étendue: un flux de message couvre toute forme de communication entre deux organisations, un courriel, un fax, un appel téléphonique ou une lettre remise en main propre. Il sert aussi à représenter un échange de matières, une livraison de marchandises par exemple, et son étiquette porte le contenu échangé8.
Silver ramène la ligne à ce qu’elle promet: un flux de message sortant d’une tâche utilisateur signale que la tâche peut envoyer le message. Pour affirmer que l’envoi ou la réception a lieu, la notation offre l’événement de message ainsi que les tâches d’envoi et de réception9. Il pose une seconde limite: un flux de message se raccorde à une activité ou à un événement à l’intérieur d’un pool qui contient un processus, la bordure restant réservée au pool réduit à une boîte noire9.
Le standard n’oblige à dessiner aucun flux de message. Silver les recommande, parce qu’ils montrent comment le processus s’articule avec le client, les fournisseurs de service et les autres processus internes. Il en reconnaît le coût, un encombrement visuel qui rebute une partie des lecteurs9.
Les artefacts (artifacts)
Un artefact ajoute au diagramme une information qui ne relève ni du flux de séquence ni du flux de message10. Le standard en définit trois: l’association, le groupe et l’annotation textuelle10. La liste reste ouverte, un modélisateur ou un outil pouvant ajouter ses propres types10.
Un artefact, y compris celui qu’un outil ajoute, n’est jamais la source ni la cible d’un flux de séquence, ni celles d’un flux de message10.
L’association (association)
Une association rattache une information ou un artefact à un objet de flux10. Elle se trace d’une ligne pointillée10.
Les styles du flux de séquence, du flux de message et de l’association de texte ne se modifient ni ne se reprennent pour un autre usage. Un modélisateur ou un outil reste libre d’introduire d’autres styles de ligne, à la condition qu’aucun n’entre en conflit avec un style que BPMN définit11.
L’attribut associationDirection vaut None, One ou Both: par défaut l’association ne porte
aucune pointe, One en place une à la cible, Both en place une à chaque
extrémité10.
L’association de données (data association)
BPMN 1.2 employait l’association dirigée pour montrer qu’un objet de données entrait dans une activité ou en sortait. La version 2.0.2 confie ce rôle à un connecteur distinct, l’association de données, qui en reprend le tracé10.
La différence est sémantique. Une association de données déplace des données entre les objets de données, les propriétés et les entrées et sorties des activités, des processus et des tâches globales; aucun jeton n’y circule et elle reste donc sans effet direct sur le déroulement du processus12. L’association, elle, rattache une information au diagramme sans rien déplacer.
Dumas lit l’association de données comme une affirmation métier: une association entrante fait de l’objet une entrée de l’activité, une association sortante en fait une sortie13.
L’association de compensation
L’association sert aussi à désigner l’activité employée pour la compensation10. Sa cible doit être marquée comme activité de compensation3. Le chapitre sur les événements de bord porte ce mécanisme.
L’annotation textuelle (text annotation)
Une annotation textuelle donne au lecteur une information supplémentaire. Elle se dessine comme un rectangle ouvert tracé d’un trait plein unique, le texte se plaçant à l’intérieur10. Elle se rattache à un objet précis du diagramme par une association et reste sans effet sur le déroulement du processus10.
Deux attributs la décrivent: text porte le texte et textFormat en donne le format, sous forme de
type mime, text/plain par défaut10.
Silver la distingue de la documentation. Le modèle entier et la plupart de ses éléments portent un
élément documentation dans le XML, où l’on range autant d’information que l’on veut, directement
ou par des liens vers des documents externes. Cet élément appartient à la sous-classe descriptive,
si bien qu’un outil conforme sait l’importer et l’afficher, mais il ne se dessine
pas14. L’annotation textuelle fait apparaître le commentaire dans le dessin, et Silver
la veut attachée à un élément par une association non dirigée plutôt que posée en
flottant14.
Sa règle de style prescrit l’annotation quand les seuls éléments BPMN ne suffisent pas à exprimer sans ambiguïté un aspect de la logique du processus14. La passerelle complexe en est l’exemple type: son symbole laisse ouverte la synchronisation qu’elle opère.
Dumas décrit le même usage et rappelle la contrepartie: une annotation ne porte aucune sémantique13.
Le groupe (group)
Un groupe réunit visuellement des éléments d’un diagramme, de manière informelle. Il se dessine comme un rectangle à coins arrondis tracé d’un trait discontinu10.
Le groupe s’attache à une valeur de catégorie (CategoryValue) dont il est la représentation
visuelle, et les éléments graphiques à l’intérieur reçoivent cette valeur10.
L’étiquette du groupe porte cette valeur, que le nom de la catégorie peut précéder10.
Le sens d’une catégorie est défini par l’utilisateur et sert à documenter ou à analyser: on peut
ranger les éléments de flux en « orientés client » et « orientés support », puis calculer le coût et
la durée des activités par catégorie10. Une même catégorie sert à plusieurs groupes
d’un diagramme10.
Le groupe n’est pas un objet de flux, il ne se connecte donc à aucun flux de séquence ni à aucun flux de message, et il laisse le déroulement du processus inchangé10. Les contraintes des pools et des couloirs lui échappent également: un groupe peut s’étendre au-delà de la bordure d’un pool pour entourer des éléments répartis entre plusieurs participants, ce qui sert à désigner les activités d’une même transaction interentreprises10.
C’est là son emploi courant. Il met en évidence une partie du diagramme en lui épargnant les contraintes qu’un sous-processus ajouterait, et la partie ainsi désignée peut être isolée pour un rapport ou une analyse10.
Silver observe que le mécanisme de valeur de catégorie ne s’emploie pas dans la pratique et conseille de tenir le groupe pour un surligneur du diagramme14.
Les classes de conformité
Les éléments de ce chapitre se rangent presque tous dans la sous-classe descriptive, la plus restreinte des trois15. Son tableau porte le flux de séquence inconditionnel, le flux de message, l’annotation textuelle, le groupe ainsi que l’association et l’association de données15.
Deux écritures relèvent de la sous-classe analytique: le flux de séquence conditionnel, avec son
expression, et le flux de séquence par défaut, avec l’attribut default15.
Un modèle destiné à des interlocuteurs métier dispose ainsi de tous les connecteurs et de tous les artefacts. La condition portée par une ligne et le flux par défaut qui la complète sont le seul apport du niveau suivant.
Au-delà des connecteurs
Le pool et le couloir appartiennent au chapitre suivant. L’objet de données, le magasin de données et les associations de données qui les relient au flux ouvrent celui d’après.
Le chapitre suivant
BPMN: les pools, les couloirs et la collaboration. Le pool, le couloir et le pool boîte noire, les règles qui rendent une collaboration BPMN légale et la façon de modéliser un système comme participant.
Notes et références
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §8.4.13 « Sequence Flow ». Cette clause porte la source et la cible uniques prises parmi les événements, les activités et les passerelles, le tracé en ligne pleine à pointe pleine, l’expression de condition et le jeton qui n’est placé que si elle vaut vrai, la source typiquement passerelle ou activité, le petit losange exigé au départ d’un flux conditionnel sortant d’une activité et interdit au départ d’une passerelle, l’obligation faite à cette activité de porter au moins un autre flux sortant, l’exclusion des passerelles parallèle et événementielle comme source d’un flux conditionnel, les quatre sources autorisées du flux par défaut et sa barre oblique au début du connecteur. Le tableau 8.51 donne
conditionExpressionetisImmediateavec ses sémantiques par défaut, et exclut le sous-processus événementiel des sources et des cibles. La sous-clause « Flow Node » de la même page pose que la passerelle, l’activité, l’activité de chorégraphie et l’événement sont les seules sous-classes duFlowNode. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §7.6.1 « Sequence Flow Connections Rules »: le tableau 7.3 des connexions autorisées, l’interdiction faite au flux de séquence de franchir la bordure d’un pool, l’impossibilité de relier un objet intérieur à un sous-processus développé à un objet extérieur, ainsi que l’absence du pool, du couloir, de l’objet de données, du groupe et de l’annotation textuelle. §7.6.2 « Message Flow Connection Rules » pose l’interdiction de relier deux objets d’un même pool et écarte du tableau 7.4 le couloir, la passerelle, l’objet de données, le groupe et l’annotation textuelle. ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §7.3.2 « Extended BPMN Modeling Elements », tableau 7.2. Les lignes citées ici sont Uncontrolled flow (le flux qu’aucune condition n’affecte et qui ne traverse aucune passerelle, avec les flux convergeant vers une activité ou en divergeant), Fork (plusieurs flux sortants comme méthode à préférer dans la plupart des situations), Default flow (la barre en diagonale au début du connecteur) et Compensation Association (la cible qui doit être marquée comme activité de compensation). La ligne Expanded Sub-Process du même tableau reprend l’interdiction de franchir la bordure d’un sous-processus. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §8.4.6 « Expressions »: l’expression en langue naturelle captée par l’attribut
documentationet tenue pour sous-spécifiée, l’expression formelle avec son langage déclaré, l’attributexpressionLanguagede l’élémentdefinitionsque chaque expression formelle peut redéfinir, la définition d’une expression sur place ou au niveau du processus, ainsi que le tableau 8.43 pourlanguage,bodyet le type booléen auquel s’évalue une expression conditionnelle. ↩︎ ↩︎ ↩︎Bruce Silver, BPMN Method and Style, 2e édition, Cody-Cassidy Press, 2011: le petit losange réservé aux flux sortants d’une activité, avec les outils qui le dessinent à tort au départ d’une passerelle; le flux conditionnel réservé au parallélisme conditionnel et la passerelle exclusive employée pour un choix exclusif; la configuration de deux flux conditionnels et d’un flux par défaut, que le modélisateur écrit le plus souvent en visant un choix exclusif alors qu’elle n’en est pas un; le flux par défaut qui se lit sinon, emprunté si et seulement si aucun autre ne l’est; et la règle de validation qui n’accorde à une activité ou à une passerelle qu’un flux par défaut au plus. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.3 « Activities », tableau 10.3: l’attribut
defaultd’une activité désigne le flux de séquence qui reçoit un jeton lorsque aucune des expressions de condition des autres flux sortants ne vaut vrai, ce flux ne devrait porter aucune expression de condition et une telle expression sera ignorée. Les trois passerelles concernées portent le même attribut et la même règle: §10.6.2 « Exclusive Gateway », tableau 10.123; §10.6.3 « Inclusive Gateway », tableau 10.124; §10.6.5 « Complex Gateway », tableau 10.125. ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.4 « Message Flow »: la circulation des messages entre deux participants prêts à les envoyer et à les recevoir, l’obligation de relier deux pools distincts avec le raccordement à la bordure du pool ou à un objet de flux intérieur, l’interdiction de relier deux objets d’un même pool, la ligne discontinue ouverte par un cercle vide et fermée par une pointe de flèche vide, le message affiché sur la ligne, ainsi que le tableau 9.8 pour
messageRefet pour les pools, participants, activités et événements admis en source et en cible. §9.4.1 « Interaction Node » confirme que seuls ces éléments se raccordent à un flux de message. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎Marlon Dumas, Marcello La Rosa, Jan Mendling et Hajo A. Reijers, Fundamentals of Business Process Management, 2e édition, Springer, 2018, §3.4 « Resources »: le flux de séquence qui ne franchit pas la bordure d’un pool, le flux de message comme seul connecteur entre deux pools, son tracé et son étiquette portant le contenu, la communication électronique ou manuelle qu’il recouvre, ainsi que l’échange de matières qu’il peut représenter. ↩︎
Bruce Silver, BPMN Method and Style, 2e édition: le flux de message qui indique la possibilité d’une communication plutôt que sa certitude, l’événement de message et les tâches d’envoi et de réception employés pour l’affirmer; le raccordement à une activité ou à un événement intérieur au pool d’un processus, la bordure étant réservée au pool en boîte noire; et le flux de message facultatif dans le standard, que la méthode recommande de dessiner pour le contexte métier qu’il apporte, au prix d’un encombrement visuel. ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §8.4.1 « Artifacts ». La clause pose les trois artefacts standard et l’extensibilité de la liste, puis l’interdiction pour un artefact d’être source ou cible d’un flux de séquence ou d’un flux de message. Sa sous-clause « Association » donne le tracé en ligne pointillée, le rattachement d’une information ou d’un artefact à un objet de flux, l’emploi pour la compensation, le tableau 8.20 avec
associationDirectionet ses valeursNone,OneetBoth, ainsi que le passage de l’association dirigée de BPMN 1.2 à l’association de données de BPMN 2.0.2, qui en reprend le tracé. Sa sous-clause « Group » donne le rectangle à coins arrondis à trait discontinu, la valeur de catégorie dont le groupe est la représentation visuelle et qu’il attribue aux éléments qu’il contient, le tableau 8.21 pourcategoryValueRef, l’absence de connexion aux flux, l’indifférence aux pools et aux couloirs avec le groupe qui s’étend au-delà d’une bordure de pool pour une transaction interentreprises, ainsi que la mise en évidence sans contrainte d’exécution et l’isolement pour un rapport ou une analyse. Sa sous-clause « Category » donne le sens défini par l’utilisateur, l’exemple des éléments orientés client ou support avec le calcul du coût et de la durée par catégorie, l’étiquette portant la valeur que le nom de la catégorie peut précéder, et la catégorie partagée par plusieurs groupes. Le texte du standard n’y est pas univoque: le tableau 8.21 sépare le nom et la valeur par un point, la sous-clause « Category » par un deux-points. Sa sous-clause « Text Annotation » donne le rectangle ouvert à trait plein unique, le rattachement par une association sans effet sur le déroulement du processus, et le tableau 8.24 pourtextettextFormat. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §7.5 « Use of Text, Color, Size, and Lines in a Diagram »: la notation peut être étendue à d’autres styles de ligne à la condition qu’ils n’entrent pas en conflit avec un style défini par BPMN, ceux du flux de séquence, du flux de message et de l’association de texte ne pouvant être ni modifiés ni dupliqués. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.4.1 « Data Modeling », sous-clause « Data Association »: le déplacement de données entre les objets de données, les propriétés et les entrées et sorties des activités, des processus et des tâches globales, l’absence de jeton sur ce connecteur et donc d’effet direct sur le déroulement du processus, ainsi que la représentation optionnelle du connecteur au style de l’association. ↩︎
Marlon Dumas, Marcello La Rosa, Jan Mendling et Hajo A. Reijers, Fundamentals of Business Process Management, 2e édition, Springer, 2018, §3.3 « Business Objects »: la direction de l’association de données qui fait de l’objet une entrée ou une sortie de l’activité, et l’annotation textuelle en rectangle ouvert reliée par une ligne pointillée, dépourvue de sémantique et sans effet sur la circulation des jetons. ↩︎ ↩︎
Bruce Silver, BPMN Method and Style, 2e édition: l’élément
documentationdu XML, appartenant à la sous-classe descriptive et dépourvu de représentation graphique; l’annotation textuelle attachée à un élément par une association non dirigée plutôt que laissée flottante; la règle de style qui appelle l’annotation quand les seuls éléments BPMN ne suffisent pas à exprimer sans ambiguïté un aspect de la logique du processus; et le mécanisme de valeur de catégorie du groupe, jamais rencontré dans la pratique, d’où le conseil de tenir le groupe pour un surligneur visuel. ↩︎ ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §2.2.2 « BPMN Process Elements ». Le tableau 2.1 « Descriptive Conformance Sub-Class Elements and Attributes » porte
sequenceFlow (unconditional),messageFlow,TextAnnotation,Groupainsi queassociation/dataAssociation. Le tableau 2.2, qui ajoute les éléments de la sous-classe analytique, portesequenceFlow (conditional)avecconditionExpressionetsequenceFlow (default)avecdefault. ↩︎ ↩︎ ↩︎

