Systèmes d information dans les entreprises (MTI515) Chargé: JF Couturier Cours # 9 MTI515 Automne 2013 JF Couturier 1
Retour sur le dernier cours L intra Les artéfacts Diagramme d activité Modèle du domaine Diagramme des CU, CU Les stéréotypes de Jacobson Les archétypes Vision et SRS MTI515 Automne 2013 JF Couturier 2
Plan Patrons de flux de travail MTI515 Automne 2013 JF Couturier 3
Workflow patterns Certains auteurs ont identifié des patrons identifiant la plupart des situations. Ressources: Van der Aals Stephen A. White MTI515 Automne 2013 JF Couturier 4
Patron de flux de travail Ce qui est particulièrement intéressant dans ces articles, c est l étude comparative entre UML et BPMN. Vous constaterez que les éléments les plus simples de la notation sont utilisés. MTI515 Automne 2013 JF Couturier 5
Patrons pour représenter un processus d affaires SEQUENCE PARALLEL SPLIT SYNCHRONIZATION EXCLUSIVE CHOICE SIMPLE MERGE MI WITH A PRIORI DESIGN TIME KNOWLEDGE MI WITH A PRIORI RUNTIME KNOWLEDGE MI WITH NO A PRIORI KNOWLEDGE MULTIPLE CHOICE MULTIPLE MERGE DISCRIMINATOR N OUT OF M JOIN SYNCHRONIZING MERGE ARBITRARY CYCLES IMPLICIT TERMINATION MI REQUIRING SYNCHRONIZATION DEFERRED CHOICE INTERLEAVED PARALLEL ROUTING MILESTONE CANCEL ACTIVITY CANCEL CASE MTI515 Automne 2013 JF Couturier 6
SEQUENCE MTI515 Automne 2013 JF Couturier 7
PARALLEL SPLIT MTI515 Automne 2013 JF Couturier 8
SYNCHRONIZATION MTI515 Automne 2013 JF Couturier 9
EXCLUSIVE CHOICE Seulement 1 des flots est exécuté. Les conditions doivent couvrir tous les cas possibles pour éviter que le processus soit bloqué. MTI515 Automne 2013 JF Couturier 10
EXCLUSIVE CHOICE MTI515 Automne 2013 JF Couturier 11
SIMPLE MERGE Dans ce cas-ci, il n y a pas de synchronisation, pas d attente. Un seul jeton est passé lors du choix exclusif. Exemple: Après le paiement ou l accord d un crédit, nous pouvons livrer le produit au client MTI515 Automne 2013 JF Couturier 12
SIMPLE MERGE MTI515 Automne 2013 JF Couturier 13
MULTIPLE CHOICE On souhaite pouvoir exécuter plusieurs alternatives à la fois. Techniquement, aucun flot pourrait ne pas être exécuté, mais c est plutôt embarrassant. Utiliser des conditions qui couvrent tous les aspects du problème ou un chemin par défaut. MTI515 Automne 2013 JF Couturier 14
MULTIPLE CHOICE MTI515 Automne 2013 JF Couturier 15
MULTIPLE MERGE Un peu particulier Les jetons ne sont pas contrôlés et pour chaque jeton, une instance des activités qui suivent est créée. Peut être perturbant pour un analyste Exemple: pour 2 activités distinctes, je veux réaliser une activité spécifique 2 fois. MTI515 Automne 2013 JF Couturier 16
MULTIPLE MERGE Attention figure 18: Équivalent d avoir à gauche un «parallel split» MTI515 Automne 2013 JF Couturier 17
DISCRIMINATOR Permet d accepter le premier jeton arrivé et de détruire tous les autres jetons subséquents. C est une course. La passerelle exclusive fait ce travail. UML est plus faible à ce niveau, il faut ajouter des conditions au contrôle de synchronisation MTI515 Automne 2013 JF Couturier 18
DISCRIMINATOR MTI515 Automne 2013 JF Couturier 19
DISCRIMINATOR Exemple: Pour améliorer le temps de réponse d une requête très complexe, on interroge 2 BD sur Internet. La première qui répond permet la poursuite du processus. Toute autre réponse est ignorée MTI515 Automne 2013 JF Couturier 20
N OUT OF M JOIN Dans ce cas-ci, on souhaite autoriser N jetons d un total de M est nécessaire pour continuer. Synchronisation partielle. Tous les autres jetons sont détruits. Dans les deux cas, ce sont des conditions programmées MTI515 Automne 2013 JF Couturier 21
N OUT OF M JOIN MTI515 Automne 2013 JF Couturier 22
N OUT OF M JOIN Exemple: 3 activités roulent en parallèle. 3 CV sont traités à la fois. Dès que j ai 2 CV intéressants, je ferme le poste. MTI515 Automne 2013 JF Couturier 23
SYNCHRONIZING MERGE Un patron compliqué à mettre en place. Souvent à la suite d un choix multiple On veut synchroniser les différents jetons générés, sans savoir à priori combien de jetons ont été créés. MTI515 Automne 2013 JF Couturier 24
SYNCHRONIZING MERGE La différence avec le N of M est que nous n attendons pas un nombre spécifique de jetons pour continuer, mais bien tous les jetons générés par un multi-choix. D une manière ou d une autre, le système doit être en mesure de déterminer combien de jetons ont été créés. Il vaut mieux documenter ce patron MTI515 Automne 2013 JF Couturier 25
SYNCHRONIZING MERGE MTI515 Automne 2013 JF Couturier 26
SYNCHRONIZING MERGE Exemple: Dans l évaluation d un sinistre, je peux contacter la compagnie d assurance ET/OU le département des incendies Seulement après l exécution de l un des deux ou des deux que je peux soumettre mon rapport. MTI515 Automne 2013 JF Couturier 27
ARBITRARY CYCLES Ce patron permet de répéter une section particulière du processus un certain nombre de fois. Loop, Iteration Intéressant, car on visualise mieux comparativement à d autres notations MTI515 Automne 2013 JF Couturier 28
ARBITRARY CYCLES MTI515 Automne 2013 JF Couturier 29
ARBITRARY CYCLES Exemple: Tant qu il reste des armées, j attaque le pays adverse (à Risk) Jeter les dés Comparer les résultats Combien de dés le défenseur a jetés? Enlever les armées MTI515 Automne 2013 JF Couturier 30
IMPLICIT TERMINATION Un sous-processus doit s arrêter lorsque le travail est fait. On ne veut pas arrêter les autres activités en cours dans le cas d un ou plusieurs traitements parallèles. Tous les types d évènement de fin de BPMN reproduisent ce fonctionnement sauf le «Terminate». MTI515 Automne 2013 JF Couturier 31
IMPLICIT TERMINATION MTI515 Automne 2013 JF Couturier 32
IMPLICIT TERMINATION Exemple: Après avoir enregistré une vente, on peut envoyer le paquet au client, réduire l inventaire et mettre à jour la comptabilité. Il n y a rien à faire après chacune de ces 3 activités faites en parallèle. Nous pouvons généralement contourner ce patron avec une seule terminaison. MTI515 Automne 2013 JF Couturier 33
Les instances multiples Les instances multiples représentent conceptuellement plusieurs threads. Cela implique que plusieurs instances de la même activité puissent s exécuter en même temps. MTI515 Automne 2013 JF Couturier 34
Les instances multiples 2 exigences au MI La capacité de lancer plusieurs instances d une activité ou d un sous-processus La capacité de synchroniser/traiter ces instances afin de poursuivre la séquence du processus MTI515 Automne 2013 JF Couturier 35
MI WITH A PRIORI DESIGN TIME KNOWLEDGE Je connais le nombre d instances qui vont êtres créées. Exemple : J ai besoin de 3 autorisations différentes pour gérer du matériel dangereux. MTI515 Automne 2013 JF Couturier 36
MI WITH A PRIORI DESIGN TIME KNOWLEDGE MTI515 Automne 2013 JF Couturier 37
MI WITH A PRIORI RUNTIME KNOWLEDGE Dans ce cas-ci, on ne sait pas au moment du design combien nous allons créer d instances On ne sait pas combien de livres ont été achetés par le client On ne sait pas combien d escales aura une destination avant la définition du plan de vol MTI515 Automne 2013 JF Couturier 38
MI WITH A PRIORI RUNTIME KNOWLEDGE MTI515 Automne 2013 JF Couturier 39
MI WITH A PRIORI RUNTIME KNOWLEDGE Une alternative plus «visuelle» MTI515 Automne 2013 JF Couturier 40
MI WITH NO A PRIORI KNOWLEDGE MTI515 Automne 2013 JF Couturier 41
MI WITH NO A PRIORI KNOWLEDGE On ne sait pas combien d instances vont êtres créées La différence avec le patron précédent est que jusqu à avant la fin du sousprocessus, d autres instances peuvent êtres créées. MTI515 Automne 2013 JF Couturier 42
MI WITH NO A PRIORI KNOWLEDGE Exemple: Un client demande l application de son assurance (vol, feu). Plusieurs témoins peuvent être entendus Plusieurs rapports de témoins peuvent être produits et traités D autres rapports peuvent arriver pendant l évaluation des rapports. MTI515 Automne 2013 JF Couturier 43
MI WITH NO A PRIORI KNOWLEDGE MTI515 Automne 2013 JF Couturier 44
MI REQUIRING SYNCHRONIZATION Si vous souhaitez qu il y ait synchronisation de vos MI, annotez votre diagramme pour spécifier le nombre d itérations nécessaires pour continuer le processus. Dans des logiciels plus évolués, ce seront des attributs qu il faudra modifier Voir le détail dans la documentation MTI515 Automne 2013 JF Couturier 45
MI REQUIRING SYNCHRONIZATION MTI515 Automne 2013 JF Couturier 46
Les patrons d états Ces patrons permettent d évaluer des choix selon la réception d un signal Permet de traiter un processus à la suite d un signal extérieure MTI515 Automne 2013 JF Couturier 47
DEFERRED CHOICE Très similaire à un choix exclusif Dans ce cas, ce n est pas une donnée qui détermine le chemin à prendre, mais un évènement Lorsque l évènement se produit, les autres choix de chemin sont désactivés Utilisation d une passerelle de type évènement. MTI515 Automne 2013 JF Couturier 48
DEFERRED CHOICE MTI515 Automne 2013 JF Couturier 49
DEFERRED CHOICE Exemple: Le moyen de livraison est déterminé selon la disponibilité des ressources. Dès qu une ressource se libère, on va de l avant. C est une course entre les différentes possibilités MTI515 Automne 2013 JF Couturier 50
INTERLEAVED PARALLEL ROUTING Dans un processus, un groupe d activités peut être réalisé dans n'importe quel ordre. L ordre est décidé pendant l exécution. Les activités sont réalisées séquentiellement (malgré le nom) Voilà pourquoi on ne peut régler ce cas avec un traitement parallèle. MTI515 Automne 2013 JF Couturier 51
INTERLEAVED PARALLEL ROUTING MTI515 Automne 2013 JF Couturier 52
INTERLEAVED PARALLEL ROUTING MTI515 Automne 2013 JF Couturier 53
INTERLEAVED PARALLEL ROUTING Un employeur demande de passer un test de santé et un test psychologique. Les deux tests peuvent êtres réalisés dans un ordre ou un autre. MTI515 Automne 2013 JF Couturier 54
MILESTONE On souhaite débuter un sousprocessus lorsqu une activité particulière est complétée. Plusieurs façons de le mettre en application. MTI515 Automne 2013 JF Couturier 55
MILESTONE MTI515 Automne 2013 JF Couturier 56
MILESTONE MTI515 Automne 2013 JF Couturier 57
MILESTONE Exemple: Un client peut récupérer son argent jusqu à 2 jours précédents la livraison. Un client peut exiger ses airs miles jusqu à 6 mois après un vol. Certaines options ne sont disponibles qu après l exécution de certaines tâches (atteinte d un niveau) MTI515 Automne 2013 JF Couturier 58
CANCEL ACTIVITY Une activité active est désactivée, annulée. Lorsque plusieurs activités mènent une course, le vainqueur désactive les autres activités. MTI515 Automne 2013 JF Couturier 59
CANCEL ACTIVITY MTI515 Automne 2013 JF Couturier 60
CANCEL ACTIVITY MTI515 Automne 2013 JF Couturier 61
CANCEL ACTIVITY Exemples: On annule une activité normalement planifiée (revue du code) pour entrer dans les temps du projet. Si un client annule sa requête de demande d information, l activité est annulée MTI515 Automne 2013 JF Couturier 62
CANCEL CASE Ce patron est une extension du patron précédent, sauf que cette fois c est le processus en entier qui est annulé MTI515 Automne 2013 JF Couturier 63
CANCEL CASE MTI515 Automne 2013 JF Couturier 64
CANCEL CASE MTI515 Automne 2013 JF Couturier 65
CANCEL CASE MTI515 Automne 2013 JF Couturier 66
CANCEL CASE MTI515 Automne 2013 JF Couturier 67
CANCEL CASE Exemple: MTI515 Automne 2013 JF Couturier 68
La suite BPEL SOA Design Code MTI515 Automne 2013 JF Couturier 69
BPEL Business Process Execution Langage Langage dérivé de XML Permet l exécution des processus de l entreprise À partir d une notation comme BPMN, on peut générer le code BPEL correspondant. MTI515 Automne 2013 JF Couturier 70
Ressources Van der Aalst Stephen A. White OMG BPMN.org Livre sur BPMN Site sur BPEL Site sur les patrons de flux de travail Tutoriel d IBM MTI515 Automne 2013 JF Couturier 71
Prochain cours DFD MTI515 Automne 2013 JF Couturier 72