Documente Academic
Documente Profesional
Documente Cultură
Plan
Workflow patterns
Certains auteurs ont identifi des patrons identifiant la plupart des situations. Ressources:
Van der Aals Stephen A. White
Ce qui est particulirement intressant dans ces articles, cest ltude comparative entre UML et BPMN. Vous constaterez que les lments les plus simples de la notation sont utiliss.
SEQUENCE PARALLEL SPLIT SYNCHRONIZATION EXCLUSIVE CHOICE SIMPLE MERGE MULTIPLE CHOICE MULTIPLE MERGE
MI WITH A PRIORI DESIGN TIME KNOWLEDGE MI WITH A PRIORI RUNTIME KNOWLEDGE MI WITH NO A PRIORI KNOWLEDGE MI REQUIRING SYNCHRONIZATION
DISCRIMINATOR
N OUT OF M JOIN SYNCHRONIZING MERGE ARBITRARY CYCLES
DEFERRED CHOICE
INTERLEAVED PARALLEL ROUTING MILESTONE CANCEL ACTIVITY CANCEL CASE
6
IMPLICIT TERMINATION
SEQUENCE
PARALLEL SPLIT
SYNCHRONIZATION
EXCLUSIVE CHOICE
Seulement 1 des flots est excut. Les conditions doivent couvrir tous les cas possibles pour viter que le processus soit bloqu.
10
EXCLUSIVE CHOICE
11
SIMPLE MERGE
Dans ce cas-ci, il ny a pas de synchronisation, pas dattente. Un seul jeton est pass lors du choix exclusif.
Exemple:
Aprs le paiement ou laccord dun crdit, nous pouvons livrer le produit au client
12
SIMPLE MERGE
13
MULTIPLE CHOICE
On souhaite pouvoir excuter plusieurs alternatives la fois. Techniquement, aucun flot pourrait ne pas tre excut, mais cest plutt embarrassant. Utiliser des conditions qui couvrent tous les aspects du problme ou un chemin par dfaut.
MTI515 Automne 2013 JF Couturier
14
MULTIPLE CHOICE
15
MULTIPLE MERGE
Un peu particulier Les jetons ne sont pas contrls et pour chaque jeton, une instance des activits qui suivent est cre.
MULTIPLE MERGE
Attention figure 18: quivalent davoir gauche un parallel split
17
DISCRIMINATOR
Permet daccepter le premier jeton arriv et de dtruire tous les autres jetons subsquents. Cest une course. La passerelle exclusive fait ce travail.
UML est plus faible ce niveau, il faut ajouter des conditions au contrle de synchronisation
18
DISCRIMINATOR
19
DISCRIMINATOR
Exemple:
Pour amliorer le temps de rponse dune requte trs complexe, on interroge 2 BD sur Internet. La premire qui rpond permet la poursuite du processus. Toute autre rponse est ignore
20
N OUT OF M JOIN
Dans ce cas-ci, on souhaite autoriser N jetons dun total de M est ncessaire pour continuer. Synchronisation partielle. Tous les autres jetons sont dtruits. Dans les deux cas, ce sont des conditions programmes
21
N OUT OF M JOIN
22
N OUT OF M JOIN
Exemple: 3 activits roulent en parallle. 3 CV sont traits la fois. Ds que jai 2 CV intressants, je ferme le poste.
23
SYNCHRONIZING MERGE
Un patron compliqu mettre en place. Souvent la suite dun choix multiple On veut synchroniser les diffrents jetons gnrs, sans savoir priori combien de jetons ont t crs.
24
SYNCHRONIZING MERGE
La diffrence avec le N of M est que nous nattendons pas un nombre spcifique de jetons pour continuer, mais bien tous les jetons gnrs par un multi-choix.
Dune manire ou dune autre, le systme doit tre en mesure de dterminer combien de jetons ont t crs. Il vaut mieux documenter ce patron
25
SYNCHRONIZING MERGE
26
SYNCHRONIZING MERGE
Exemple:
Dans lvaluation dun sinistre, je peux contacter la compagnie dassurance ET/OU le dpartement des incendies Seulement aprs lexcution de lun des deux ou des deux que je peux soumettre mon rapport.
27
ARBITRARY CYCLES
Ce patron permet de rpter une section particulire du processus un certain nombre de fois. Loop, Iteration
28
ARBITRARY CYCLES
29
ARBITRARY CYCLES
Exemple:
Tant quil reste des armes, jattaque le pays adverse ( Risk)
Jeter les ds Comparer les rsultats
Combien de ds le dfenseur a jets?
30
IMPLICIT TERMINATION
Un sous-processus doit sarrter lorsque le travail est fait. On ne veut pas arrter les autres activits en cours dans le cas dun ou plusieurs traitements parallles. Tous les types dvnement de fin de BPMN reproduisent ce fonctionnement sauf le Terminate .
MTI515 Automne 2013 JF Couturier
31
IMPLICIT TERMINATION
32
IMPLICIT TERMINATION
Exemple:
Aprs avoir enregistr une vente, on peut envoyer le paquet au client, rduire linventaire et mettre jour la comptabilit. Il ny a rien faire aprs chacune de ces 3 activits faites en parallle.
33
Les instances multiples reprsentent conceptuellement plusieurs threads. Cela implique que plusieurs instances de la mme activit puissent sexcuter en mme temps.
34
2 exigences au MI
La capacit de lancer plusieurs instances dune activit ou dun sous-processus La capacit de synchroniser/traiter ces instances afin de poursuivre la squence du processus
35
Je connais le nombre dinstances qui vont tres cres. Exemple : Jai besoin de 3 autorisations diffrentes pour grer du matriel dangereux.
36
37
Dans ce cas-ci, on ne sait pas au moment du design combien nous allons crer dinstances On ne sait pas combien de livres ont t achets par le client On ne sait pas combien descales aura une destination avant la dfinition du plan de vol
MTI515 Automne 2013 JF Couturier
38
39
40
41
On ne sait pas combien dinstances vont tres cres La diffrence avec le patron prcdent est que jusqu avant la fin du sousprocessus, dautres instances peuvent tres cres.
42
Exemple:
Un client demande lapplication de son assurance (vol, feu). Plusieurs tmoins peuvent tre entendus
Plusieurs rapports de tmoins peuvent tre produits et traits Dautres rapports peuvent arriver pendant lvaluation des rapports.
43
44
MI REQUIRING SYNCHRONIZATION
Si vous souhaitez quil y ait synchronisation de vos MI, annotez votre diagramme pour spcifier le nombre ditrations ncessaires pour continuer le processus.
Dans des logiciels plus volus, ce seront des attributs quil faudra modifier
Voir le dtail dans la documentation
MTI515 Automne 2013 JF Couturier
45
MI REQUIRING SYNCHRONIZATION
46
Ces patrons permettent dvaluer des choix selon la rception dun signal Permet de traiter un processus la suite dun signal extrieure
47
DEFERRED CHOICE
Trs similaire un choix exclusif Dans ce cas, ce nest pas une donne qui dtermine le chemin prendre, mais un vnement
DEFERRED CHOICE
49
DEFERRED CHOICE
Exemple: Le moyen de livraison est dtermin selon la disponibilit des ressources. Ds quune ressource se libre, on va de lavant. Cest une course entre les diffrentes possibilits
MTI515 Automne 2013 JF Couturier
50
Dans un processus, un groupe dactivits peut tre ralis dans n'importe quel ordre. Lordre est dcid pendant lexcution.
51
52
53
Un employeur demande de passer un test de sant et un test psychologique. Les deux tests peuvent tres raliss dans un ordre ou un autre.
54
MILESTONE
On souhaite dbuter un sousprocessus lorsquune activit particulire est complte. Plusieurs faons de le mettre en application.
55
MILESTONE
56
MILESTONE
57
MILESTONE
Exemple:
Un client peut rcuprer son argent jusqu 2 jours prcdents la livraison. Un client peut exiger ses airs miles jusqu 6 mois aprs un vol. Certaines options ne sont disponibles quaprs lexcution de certaines tches (atteinte dun niveau)
MTI515 Automne 2013 JF Couturier
58
CANCEL ACTIVITY
Une activit active est dsactive, annule. Lorsque plusieurs activits mnent une course, le vainqueur dsactive les autres activits.
59
CANCEL ACTIVITY
60
CANCEL ACTIVITY
61
CANCEL ACTIVITY
Exemples:
On annule une activit normalement planifie (revue du code) pour entrer dans les temps du projet. Si un client annule sa requte de demande dinformation, lactivit est annule
62
CANCEL CASE
Ce patron est une extension du patron prcdent, sauf que cette fois cest le processus en entier qui est annul
63
CANCEL CASE
64
CANCEL CASE
65
CANCEL CASE
66
CANCEL CASE
67
CANCEL CASE
Exemple:
68
La suite
69
BPEL
Business Process Execution Langage Langage driv de XML Permet lexcution des processus de lentreprise
partir dune notation comme BPMN, on peut gnrer le code BPEL correspondant.
MTI515 Automne 2013 JF Couturier
70
Ressources
OMG BPMN.org
Livre sur BPMN Site sur BPEL
71
Prochain cours
DFD
72