BPSim, la théorie et la pratique de la simulation de processus BPMN
La simulation de modèle donne vie à vos modèles dynamiques grâce à une exécution instantanée et en temps réel.
Couplé avec des outils pour gérer les déclencheurs, les événements, les contraintes, les règles, les points d'arrêt et les variables de simulation, ainsi que la possibilité de suivre visuellement l'exécution, le simulateur est un moyen puissant de regarder les roues tourner et de vérifier l'exactitude de vos modèles.
(“Theory of Modeling and Simulation” Bernard P. Zeigler)
Objectifs de la simulation de modèle
Le principe fondamental de la simulation de modèle est la séparation du modèle et du simulateur.
Le simulateur est défini comme un moteur de règles qui, en fonction d’un référentiel de règles, exécute un modèle qui sert à l’analyse du comportement.
La relation de simulation permet de vérifier qu’en obéissant aux règles définies dans le modèle de simulation, le simulateur reproduit le comportement spécifié.
Le cadre expérimental spécifie les conditions d’observations du système et les objectifs de la simulation.
Le système source (le système à modéliser) est une spécification et il peut être réel ou virtuel : il constitue la source de données observables.
Ces données observables forment la base de données de comportement.
La relation de modélisation permet ainsi d’établir la validité de l’expérience.
La simulation a comme objectifs de :
- tester une hypothèse du modèle du système de référence, de le vérifier ou d’accréditer la théorie qui a servi à le construire,
- montrer l'aspect dynamique du système de référence,
- comprendre le fonctionnement du système de référence, en considérant le modèle comme une réplique miniature, qui pourra être étudiée plus facilement,
- prévoir les évolutions possibles du système de référence en fonction d’évolutions ou de perturbations spécifiques,
- reproduire artificiellement le fonctionnement d’un système,
- valider ou d’invalider des hypothèses,
- obtenir des informations quantitatives,
- valider certaines approximations,
- évaluer la sensibilité d’un modèle à certaines hypothèses ou à certains paramètres,
- explorer le comportement d’un système lorsque celui-ci est mal connu ou incompris.
BPSim
Le WfMC (Workflow Management Coalition) a réalisé la norme BPSim.
Il définit une spécification pour le paramétrage et l'échange de données d'analyse de processus permettant l'analyse structurelle d'un modèle de processus, permettant l'optimisation de la pré-exécution et de la post-exécution.
BPSim se compose d'un métamodèle et d'un format d'échange pour faciliter la sauvegarde et le transfert de ces données entre différents outils.
Le métamodèle BPSim est réalisé en UML et le format d’échange en XSD.
Exemple pratique de simulation d’un processus BPMN avec l’outil Enterprise Architect
Environnement prérequis
JRE/JDK Java 8 (version supérieure non testée).
Enterprise Architect (EA) 15.2 (version d’évaluation Ultimate) Sparx Systems
Modèle BPMN utilisé dans notre illustration de simulation
Conception du modèle BPMN dans EA
Le but est d’illustrer concrètement une simulation BPSim, le modèle BPMN inclut les éléments les plus utilisés sous forme générique.
Comme nous l’avons vu en théorie, on doit relier le simulateur externe au modèle.
Avec EA, il suffit que le modèle BPMN et l'artefact "Business Process Simulation" de la toolbox se trouve dans un même package. Ainsi à l'exécution de cet artefact correspondant au simulateur, EA trouvera automatiquement le modèle BPMN.
1) Créer un nouveau projet, par exemple “bpsim-simulation-bpmn.eapx”.
2) Puis, dans le “root node Model ”, créer un package (clic droit Add View, Package Only), par exemple “BPSim-Simulation-BPMN”.
3) Dans ce package, clic droit, Add Diagram, Type : BPMN, BPMN 2.0, Diagram Types : Collaboration.
Au message, sélectionner “Create this Diagram within a new Collaboration Model”, conserver le nom par défaut.
Pour cette démonstration, nous prendrons un modèle BPMN générique, comportant 2 pools (P1 et P2), envoi et réception de messages entre les 2, et à l’intérieur de chacun, des séquences d’activités avec des gateways, ce qui peut déjà correspondre à bons nombres de cas réels :
Illustration pratique de la simulation
Objectifs
Pour cette illustration BPSim, nous prendrons un entier n, initialisé à 10 au début et qui sera modifié par les activités en ajoutant des valeurs constantes.
Les branches des gateways exclusives seront des conditions selon que n soit supérieur ou égal ou bien strictement inférieur à une valeur donnée.
Pour visualiser le chemin parcouru et les activités traversées, nous initialisons le simulateur avec un contrôle de type TriggerCount.
Le TriggerCount définit le nombre de fois que l'objet ou le connecteur doit être traité pendant une exécution de la simulation, de sorte que le cycle de traitement correspond à la demande type pour une chaîne d'actions particulière.
Il est généralement défini pour les éléments Start Event.
Ce TriggerCount définit le nombre de fois que l'élément ou le connecteur doit être traité dans une simulation normale ou personnalisée.
La matérialisation des artefacts activés par la simulation se fait par l’affichage en rouge de la valeur du TriggerCount sur chaque élément traversé.
Création du simulateur BPSim
On a vu précédemment qu'il faut ajouter l'artefact "Business Process Simulation".
Sélectionner le package “BPSim-Simulation-BPMN” > Toolbox > Artifacts > Drag & Drop de "Business Process Simulation" dans le package, laisser le nom par défaut > double cliquer dessus pour ouvrir la fenêtre “Configure BPSim”
L’onglet “Configure” est sélectionné, laisser les valeurs par défaut.
Ces valeurs représentent :
- la date de démarrage,
- la durée qui doit être supérieure à la durée estimée, ici 999 Days,
- l’unité de temps (ici minute),
- le nombre de réplications (1),
- la valeur d’initialisation du générateur aléatoire (n’est pas utilisé ici),
- le langage d’expression (XPath) pour analyser le XML représentant textuellement le modèle BPMN grâce à la norme XMI,
- les répertoires d’installation de Java 8 (JRE/JDK),
- le port de communication du simulateur (1799), attention à que ce port ne soit pas déjà occupé.
- un timestamp.
Paramétrage des éléments de modélisation
Dans le pool P1
1) Sélectionner Debut1 > Configure BPSim > onglet Configure > Category > sélectionner Control > dans la colonne à coté Parameter, sélectionner TriggerCount > et enfin dans la colonne Values, saisir 1
2) Ajouter une propriété n de type entier (int)
Cliquer sur l'icône "Properties" > New Property, saisir n, puis dans Type, sélectionner int
3) Sélectionner Debut1 > Configure BPSim > onglet Configure >
Category > en dessous de Control, New Parameter, sélectionner Property > n > pour la valeur, cliquer sur le bouton … à droite, saisir 10 dans Expression
4) De la même manière, sélectionner Activite1 et compléter les 3 colonnes :
Property > n > Values > …. > Expression {n} + 100
5) Sélectionner le sequence flow de Passerelle1 à Fin1
Control > Condition > Values > …. > Expression {n} >= 50
6) Sélectionner le sequence flow de Passerelle1 à Fin2
Control > Condition > Values > …. > Expression {n} < 50
Dans le pool P2
7) Sélectionner Activite2 :
Property > n > Values > …. > Expression {n} + 10
8) Sélectionner le séquence flow de Passerelle2 à Activite3
Control > Condition > Values > …. > Expression {n} >= 15
9) Sélectionner le séquence flow de Passerelle2 à Activite4
Control > Condition > Values > …. > Expression {n} < 15
10) Sélectionner Activite3 :
Property > n > Values > …. > Expression {n} + 10
11) Sélectionner Activite4 :
Property > n > Values > …. > Expression {n} + 1
Sauvegarde de la configuration
Cliquer sur l’icône disquette.
Pour vérification, cliquer sur l’icône Property (point bleu), vous devez obtenir toutes les propriétés et les conditions appliquées sur les différents éléments du modèle BPMN :
Exécution de la simulation BPSim
Dans la partie “Configure BPSim”, sélectionner l’onglet Execute, puis la première icône en dessous à gauche (Run Simulation)
Une fois la simulation terminée, vous pouvez arrêter l'affichage, en cliquant sur l'icône représentant un carré (Stop). L'affichage des "TriggerCount" disparaît.
Explication :
EA indique les éléments activés, accompagnés d’un "1" rouge (TriggerCount 1) et en sombre les autres.
Si l'on vérifie manuellement :
- P1
- n = 10 on envoie n dans P2
- Activite1 n = 10 + 100 = 110
- P2 reçoit n = 10
- Activite2 n = 10 + 10 = 20
- Comme n >= 15, on arrive dans Activite3 : n = 20 + 10 = 30
- On envoie n dans P1
- P1 reçoit n = 30
- Comme n < 50, on termine dans Fin2.
Exécution pas à pas de la simulation
Pour suivre pas à pas l'exécution de la simulation à des fins par exemple de mise au point, il suffit de sélectionner l'onglet Step, pour trouver les boutons de démarrage, d'avancement, de pause et d'arrêt.
On peut aussi (3 ème icône en partant de la droite), générer un diagramme de timing et juste à coté, celle pour générer un fichier CSV.
A noter que l'onglet Review permet de générer des rapports.
Validation du modèle BPMN
A côté de la disquette, on peut cliquer sur l’icône de validation, ce qui ouvre un nouvel onglet “System Output”
Conclusion
Le simulateur BPSim d’Enterprise Architect nous a permis de voir concrètement une exécution d’un modèle auquel on a associé aux éléments des propriétés, instructions et conditions.
Bien sûr, le simulateur d’EA possède de nombreuses distributions de probabilités (Binomial, Erlang, Gamma, Normal, Poisson, TruncatedNormal, Uniform…) permettant d’avoir des scénarios proches de la réalité.Les ressources, rôles (acteurs), peuvent être associées à des minis-écrans interactifs.
Enfin, des calendriers permettent de planifier et gérer les durées et le déclenchement des activités pour plus de réalisme.
Le simulateur supporte aussi la norme DMN (Decision Model and Notation) pour la modélisation des règles métier.
Et pour être complet, on pourrait simuler un processus BPMN avec des tâches de type “Business Rule” qui seraient par exemple un modèle DMN avec des tables de décision et des règles de calculs.
N’hésitez pas à partager votre expérience sur le sujet de la simulation BPMN et à nous dire quels outils vous utilisez en postant un commentaire à la fin de cet article.
Rhona Maxwel
@rhona_helena
“
Il dit non avec la tête
mais il dit oui avec le cœur
…
et malgré les menaces du maître
sous les huées des enfants prodiges
avec les craies de toutes les couleurs
sur le tableau noir du malheur
il dessine le visage du bonheur.
”
"Le cancre", Jacques Prévert
Pour en savoir plus sur
BPMN
BPMN 2 : les concepts de base des processus métiers
BPMN pour les nuls : les collaborations
BPMN : l'antisèche pour rester incollable en modélisation de processus
BPMN l’exemple type pour tout comprendre sans prendre d’aspirine
DMN
A découvrir aussi
- BPMN pour les nuls : les collaborations
- BPMN : norme OMG - synthèse des éléments graphiques
- BPMN l’exemple type pour tout comprendre sans prendre d’aspirine
Inscrivez-vous au site
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 757 autres membres