03 - Modelisation - Des - Processus - Metiers - BPMN
03 - Modelisation - Des - Processus - Metiers - BPMN
03 - Modelisation - Des - Processus - Metiers - BPMN
processus Métiers
Deuxième Journée
• Seulement 20% des symboles graphique qui sont utilisés dans 80% des cas de
modélisation.
BONNES PRATIQUES
1. Présenter un processus de manière à mettre en évidence son déroulement
chronologique: orienter les tâches en séquence suivant une ligne fictive de
temps, en général de gauche à droite ou de haut en bas.
2. Commencer un processus par un événement déclencheur, montrer les éventuels
résultats intermédiaires et terminer par un ou plusieurs événements de fin.
3. Assigner des rôles (des acteurs) aux activités
4. Faire apparaître explicitement les critères de choix et de décision ayant un
impact sur les chemins parcourus dans le processus
5. Faire apparaître les données qui sont échangées
BONNES PRATIQUES
1. Utiliser des règles de nommage homogènes pour les éléments du modèle :
Toujours nommer les tâches avec : verbe + (adjectif/descripteur) + nom
Eviter d'utiliser les mots « processus », « tâche » ou « activité »
Choisir des noms courts mais toujours explicites ➡ éviter les acronymes !
Capitaliser les premières lettres des mots dans les noms des éléments pour améliorer la
lisibilité
Porte parallèle
Tous les flux entrants doivent avoir été
reçus (quel que soit l'ordre) pour que
le processus continue.
Tous les flux sortants sont actifs et le
processus continue le traitement en
parallèle.
LE BPMN BASIQUE
Porte exclusive
Un seul flux entrant est nécessaire
pour continuer le processus.
Un seul flux sortant est activé : une
condition doit définir quel flux doit
être suivi.
LE BPMN BASIQUE
Lequel de ces diagrammes est invalide?
LE BPMN BASIQUE
Mise en pratique
• Modélisation de processus
• Contexte BPMN
• Concepts de base
• Concepts avancés
• Conclusions
Modélisation de processus
• Cela nécessite que les organisations spécifient leurs flux de travail pour
l'orchestration des participants, l'information et la technologie pour la
réalisation de produits et services.
• Pour gérer les processus d'entreprise, ils doivent être décrits et documentés en
termes de modèles de processus.
A premier exemple BPMN
Modèles detailles
incluant
librarian
PMS
It takes a process
model as input It assigns tasks
to proper participants
system
Artifact-centric
Business
Workflow Nets [5] [8]
Processes [4]
DECLARE [6]
Agenda
• Modélisation de processus
• Contexte BPMN
• Concepts de base
• Concepts avancés
• Conclusions
Business Process Modeling
Notation(BPMN)
• BPMN est le standard OMG pour représenter les processus d’affaire.
– D'autres normes, telles que les diagrammes d'activité d'UML, n'ont pas été acceptées
pour la modélisation de processus dans la pratique, car leur utilisation est limitée au
domaine de la conception de logiciel orienté objet.
• il y a beaucoup d’outils pour la modélisation BPMN des processus:
– Bizagi Process Modeller (it also provides an execution engine)
– JBPM (Eclipse plugin)
– Signavio
– TIBCO Business Studio (free download, quite large)
– IBM Websphere Business Modeler
– ARIS
– Oracle BPA
– Business Process Visual Architect (Visual Paradigm)
– Progress Savvion Business Modeller
Pourquoi BPMN?
In 2001 BPMI
(Business Process
Management Initiative) In 2004 BPMN 1.0 was In Feb.2008 BPMN 1.1
developed BPML as an released to the public was released to the BPMN 1.2 does not
XML process and in 2006 it was public, making the include any significant
execution language. adopted as OMG meaning of the graphical changes;
standard. notation more modifications were
explicit. merely editorial. 15
BPMN 1.2 vs BPMN 2.0
• Modélisation de processus
• Contexte BPMN
• Concepts de base
• Concepts avancés
• Conclusions
Éléments de base BPMN
Les événements représentent Les arcs imposent des Les éléments qui
des choses qui se produisent contraintes temporelles contrôlent le flux
instantanément. entre les objets de flux. d'exécution du
processus.
Connecter les activites
• Le flux de séquence définit l'ordre des objets de flux dans un processus (activités,
événements et passerelles). Chaque activité peut avoir un ou plusieurs flux de
séquence entrants et un ou plusieurs flux de séquence sortante.
Activites
événement de début Evénement de fin.
BPMN adopte la
Order
sémantique de
rejected terminaison
implicite.
X
Purchase
order
received
+ +
Order
fulfilled
Chaque événement de début Passerelles
/ fin doit être étiqueté, afin de exclusives
communiquer ce qui
déclenche une instance du Une instance de processus
processus ou quel est le se termine uniquement
Passerelles lorsque chaque jeton circulant
résultat lorsqu'une instance parallèles Ces activités peuvent être dans le modèle atteint un
de processus est terminée.
exécutées simultanément. événement de fin.
Un peu plus sur les passerelles
• Lorsque les jetons arrivent à une passerelle, ils peuvent être fusionnés
en entrée ou séparés en fonction du type de passerelle.
• Dès qu'une facture est reçue d'un client, elle doit être vérifiée
pour des discordances.
Dans notre exemple, cela signifie que nous pouvons exécuter l'activité
"F" une ou deux fois, selon que la division XOR précédente achemine
le jeton vers "E" (dans ce cas "F" est exécuté une fois) ou vers "D" ("F"
"Est exécuté deux fois).
Bien que cette solution puisse fonctionner, nous avons le problème que nous
ne savons pas si l'activité "F" sera exécutée une ou deux fois, et nous
pouvons réellement ne pas vouloir l'exécuter deux fois.
De plus, si c'est le cas, nous signalerons que le processus s'est terminé deux
fois, puisque l'événement final suivant "F" recevra deux jetons. Et ceci,
encore une fois, est quelque chose que nous voulons éviter
Quel type devrions-nous assigner à
cette jointure?
Le seul type de joint restant à essayer est la jointure-OR.
Une jointure-OR attendra que toutes les branches actives entrantes soient
complétées. Si le XOR-split achemine le contrôle à "E", la jointure OR
n'attendra pas un jeton provenant de l'activité portant la branche "D", puisque
cela n'arrivera jamais.
Ainsi, il se poursuivra une fois que le jeton de l'activité "C" arrivera. D'un autre
côté, si le XOR-split achemine le contrôle vers "D", la jointure-OR attendra
qu'un jeton arrive également de cette branche, et une fois que les deux jetons
seront arrivés, il les fusionnera en un et enverra ce jeton out, de sorte que "F"
peut être exécuté une fois et le processus peut se terminer normalement.
Quand devrions-nous utiliser une
jointure-OR?
Comme la sémantique de la jointure-OR n'est pas simple, la
présence de cet élément dans un modèle peut perturber le lecteur.
Quoi?
Function Quand?
Process
Lequel
- Ils sont représentés par un rectangle dont le coin supérieur droit est
replié.
- Représentent l'entrée et la sortie d'une activité de processus.
• Data Stores: sont des conteneurs d'objets de données qui doivent être
Data
Store conservés au-delà de la durée d'une instance de processus.
• Les Associations sont utilisées pour lier des objets de données et des
data stores avec des objets de flux (par exemple, des activités et, parfois,
des événements).
• Les associations dirigées (Directed Associations) sont utilisées pour
comprendre quand les activités de processus peuvent lire / écrire des
objets de données depuis / vers des data stores.
Data Objects
• Data objects sont utilisés pour montrer comment les données et les documents sont
utilisés dans un processus comme inputs et outputs des activités.
• Data objects peuvent également avoir des «états» qui décrivent comment l'objet (document)
est mis à jour dans le processus. L'état est généralement affiché sous le nom de l'objet de
données et est placé entre parenthèses.
Books DB
Book Information
Customer Info
Nouveaux objets de données
dans BPMN 2.0
• Une entrée de données Data Input est une entrée externe pour
l'ensemble du processus. Une sorte de paramètre d'entrée.
Connections Swimlanes
Data
Store
Agenda
• Modélisation de processus
• Contexte BPMN
• Concepts de base
• Concepts avancés
• Conclusions
Catégories de processus
Expanded sub-process
Sous-processus incorporés
• Un processus modélisé qui fait partie du processus parent. Les sous-processus intégrés ne
sont pas réutilisables par d'autres processus. Toutes les «données pertinentes du
processus» utilisées dans le processus parent sont directement accessibles par le sous-
processus incorporé (puisqu'il fait partie du parent).
• Une caractéristique importante d'un sous-processus incorporé est qu'il ne peut commencer
qu'avec un événement de début nul, c'est-à-dire sans déclencheur explicite tel qu'un message.
Sous-processus indépendants
• Un processus modélisé séparément qui pourrait être utilisé dans plusieurs contextes (par
exemple, vérifier le crédit d'un client). Les «données pertinentes du processus» du processus
parent (appelant) ne sont pas automatiquement disponibles pour le sous-processus. Toutes
les données doivent être transférées spécifiquement, parfois reformatées, entre le parent
et le sous-processus.
Le sous-processus est
termine
Exercice. Identifier les sous-processus\1
Exercice. Identifier les sous-processus\2
Exercice. Identifier les sous-processus\3
• En utilisant les attributs d'activité, il est possible de définir le nombre maximum de boucles
(loop maximum) pour les boucles while et until. Une fois que l'activité a atteint le maximum
de la boucle, elle s'arrête (même si la condition de boucle est toujours vraie).
Exemple
• Il indique que le processus est démarré (c'est-à-dire déclenché) lorsqu'un signal est
détecté.
• Ce signal était une communication diffusée par un participant professionnel ou un autre
processus. Les signaux n'ont pas de cible ou de destinataire spécifique, c'est-à-dire que
tous les processus et les participants peuvent voir le signal et qu'il appartient à chacun
d'entre eux de décider de réagir ou non.
– Contrairement aux messages, les signaux peuvent fonctionner dans un processus (peut-
être entre un sous-processus et son processus d'appel parente).
Conditional Start Event
Parallel
Multiple
Catch Intermediate Events-
Comportement
• Un jeton arrivant à un catch Intermediate
Event attendrait jusqu'à ce que le trigger
se produise Puis le jeton partirait
immédiatement et descendrait le Flow de
séquence sortant.
• Un événement intermédiaire de
lancement ne peut pas être attaché à la
limite d'une activité.
Intermediate Events -
Comportement
• Lorsqu'un jeton arrive à un événement
intermédiaire de message attrape, le
processus s'interrompt jusqu'à l'arrivée
d'un message.
Discuss
• Lorsqu'un jeton arrive à lancer un Confirmation
événement intermédiaire de message, il Confirmation
déclenche immédiatement l'événement,
qui envoie le message à un participant
spécifique. Discuss
Confirmation
Confirmation
• Par exemple, une affectation sortante peut évaluer les données de processus et
sélectionner ensuite différents ensembles de flux de séquence sortants, en fonction des
résultats de l'évaluation.
– Cependant, l'assignation sortante doit garantir qu'au moins un des flux sortants sortants sera
toujours choisi.
Complex Gateways –
Merging Behaviour
• Il existe de nombreux modèles pouvant être réalisés avec la passerelle complexe, tels que
le comportement de passerelle inclusive typique, le traitement par lot de plusieurs jetons,
l'acceptation de jetons de certains chemins mais l'ignorance des jetons des autres, etc.
• La passerelle est la même pour chacun de ces modèles. Le modeleur doit donc utiliser une
annotation de texte pour informer le lecteur du diagramme de son utilisation.
• La passerelle complexe utilise une affectation entrante lorsque les jetons arrivent. La
condition peut faire référence à des informations de processus ou d'objet de données et à l'état
du flux de séquence entrant.
– Si la condition est fausse, il ne se passe rien d'autre que le jeton y est détenu.
– Si la condition est vraie, alors l'action pourrait être définie pour transmettre le jeton au côté
de sortie de la passerelle, activant ainsi l'affectation sortante, ou l'action pourrait être définie
pour consommer le jeton.
Exercice
Concevoir un exemple de processus de remboursement des dépenses. Ce processus prévoit le
remboursement des dépenses engagées par les employés pour l'entreprise. Par exemple, acheter
un livre technique, des fournitures de bureau ou un logiciel. Dans une journée normale, plusieurs
centaines d'instances de ce processus sont créées. Concentrez-vous sur le flux de base du
processus ...
Après la réception d'un rappel de réunion, un nouveau compte doit être créé si
l'employé n'en a pas déjà un. Le rapport est ensuite examiné pour approbation
automatique. Les montants inférieurs à 200 $ sont automatiquement approuvés,
tandis que les montants égaux ou supérieurs à 200 $ doivent être approuvés par le
superviseur. En cas de refus, l'employé doit recevoir un avis de refus par courriel. Le
remboursement est versé au compte bancaire du dépôt direct de l'employé. Si la
demande n'est pas complétée dans les 7 jours, l'employé doit recevoir un courriel
«d'approbation en cours». Si la demande n'est pas terminée dans les 30 jours, le
processus est arrêté et l'employé notifié
Exercice - Solution
Autres concepts avancés
• L'erreur de l'un des autres participants sera envoyée via le protocole de transaction.
• Lorsque l'événement intermédiaire d'erreur se déclenche, tous les travaux dans le sous-
processus sont terminés immédiatement - il n'y a pas de compensation.
• Le jeton est ensuite envoyé dans le flux de séquence sortant de l'événement d'erreur pour
atteindre les activités qui traiteront la situation.
Annulation dans un sous-
processus de transaction
• un sous-processus de transaction peut être
annulé par un événement interne au sous-
processus ou par une annulation envoyée
via un protocole de transaction.
127
Éléments de chorégraphie
128
Conclusions
Conclusions
130