Les procédés métiers : conception, modélisation et systèmes Claude Godart Université de Lorraine - Esstin Claude.godart@univ-lorraine.loria.fr
Organisation du cours Introduction Concepts et notations Modélisation des processus Analyse qualitative des processus Analyse quantitative des processus Systèmes de gestion de processus Processus transactionnels Découverte de processus Conclusion
Chapitre 6 Découverte de la logique des processus Claude Godart Université de lorraine. Esstin Claude.godart@univ-lorraine.loria.fr
Idée de base Traces de workflow ERP, billetterie … découverte
Motivations Trouver le modèle d’un processus Trouver le comportement exact d’un processus déjà modélisé Pour diagnostiquer, Améliorer business intelligence
Exemples de traces Log format (caseID, activity) Example Check Invoice for Invoice No. 4567 completed on 12.11.2010 at 9:19:57 Function StoreCustomerData(„Müller“, c1987, „Bad Bentheim“) completed on 12.11.2010 at 9:22:24 Send Invoice for Invoice No. 4567 completed on 12.11.2010 at 9:23:18 Resulting Log (4567, Check Invoice), (c1987, StoreCustomerData), (4567, Send Invoice), etc.
Structure des traces d’exécution Cette structure est a la fois indépendante de tout SGWF particulier mais compatible avec les sortie de SGWF Une structure indépendante, compatibles avec la plupart des SGWFs actuels
Structure des traces d’exécution (basique) Cette structure est a la fois indépendante de tout SGWF particulier mais compatible avec les sortie de SGWF
Structure des traces d’exécution (Exemple d’extension) Participant Cette structure est a la fois indépendante de tout SGWF particulier mais compatible avec les sortie de SGWF
Conditions minimales sur les traces d'exécutions Un seuil minimale sur la qualité et la quantité d’information Qualité de l’information (i.e. structure minimale): Absence de bruit (traces d’exécution incorrectes ou inachevées) Événement atomique (i.e. absence d’états, et de temps d’exécution) Quantité de l’information (i.e. nombre d’instances différentes): Nombre minimale égale à 1 Ajouter n instances pour un choix parmi n activités Ajouter (ji+ i -1) -1 pour un parallélisme entre n flux contenant chacun ji activités Prouvé suffisant pour la découverte du flot de contrôle Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER VD MJR AE RP RD LD 1+3+1*(4+1)=9
The « α algorithme »
α algorithme : relations d’ordre Soit T un ensemble d’activités, s Î T* est une trace d’une instance d’exécution de workflow et W Í T* est un log de workflow. Soit a,b Î T: a > W b ssi il y a une trace s = t1 t2 t3 ¼tn-1 et i Î {1, ¼, n-2} tels que s Î W et ti = a et ti+1 = b, a ®W b ssi a > W b et not (b > W a), a ||W b ssi a > W b et b > W a. a #W b ssi not(a > W b) et not(b > W a), and
Le log est complet si la relation ne peut pas être étendue. α algorithme : Exemple 1 W = { A B C D, A C B D, A E D} case 1 : task A case 2 : task A case 3 : task A case 3 : task B case 1 : task B case 1 : task C case 2 : task C case 4 : task A case 2 : task B case 2 : task D case 5 : task A case 4 : task C case 1 : task D case 3 : task C case 3 : task D case 4 : task B case 5 : task E case 5 : task D case 4 : task D A > W B A > W C A > W E B > W C B > W D C > W B C > W D E > W D A®W B A ®W C A ®W E B ®W D C ®W D E ®W D B ||W C C ||W B #W : rest Le log est complet si la relation ne peut pas être étendue. Pas (X®W Y xor Y®W X xor X ||W Y xor X #W Y)
W = { A B C D, A C B D} est complet α algorithme : Exemple 2 W = { A B C D, A C B D} est complet A > W B A > W C B > W C B > W D C > W B C > W D A®W B A ®W C B ®W D C ®W D B ||W C C ||W B #W : rest
W = { A B D, A C D} est complet α algorithme : Exemple 3 W = { A B D, A C D} est complet A®W B A ®W C B ®W D C ®W D A > W B A > W C B > W D C > W D ||W :aucun #W : le reste
α algorithme – Principe (a) xy
α algorithme – Principe (b) xy, xz, and y#z
α algorithme – Principe (c) xz, yz, and x#y
α algorithme – Principe (d) xy, xz, and y||z
α algorithme – Principe (e) xz, yz, and x||y
α algorithme : Règles de construction d’un RdP Soit W un log de workflow sur l’ensemble T. TW = { t Î T | $s Î W et t Î s}, (ensemble des activités) TI = { t Î T | $s Î W et t = first(s) } (activités initiales) TO = { t Î T | $s Î W et t = last(s) } (activtés finales) X = { (A,B) | A Í TW Ù B Í TW Ù "a Î A, "b Î B, a®Wb Ù "a1,a2 Î A , a1# a2 Ù "b1,b2 Î B, b1#W b2 } (relations causales) Y = { (A,B) Î X | "(A¢,B¢) Î X A Í A¢ ÙB Í B¢Þ (A,B) = (A¢,B¢) } (ensemble minimal de relations causales) PW = { p(A,B) | (A,B) Î YW } È{iW,oW}, FW = { (a,p(A,B)) | (A,B) Î YW Ù a Î A } È { (p(A,B),b) | (A,B) Î YW Ù b Î B } È{ (iW,t) | t Î TI} È{ (t,oW) | t Î TO} a(W) = (PW,TW,FW).
α algorithme : exemple Ensemble des traces d’execution : A1, A2, A3, A4, A5, A6, A9 A1, A2, A3, A4, A5, A7, A9 A1, A2, A3, A4, A5, A8, A9 A1, A2, A4, A3, A5, A6, A9 A1, A2, A4, A3, A5, A7, A9 A1, A2, A4, A3, A5, A8, A9 A1, A4, A2, A3, A5, A6, A9 A1, A4, A2, A3, A5, A7, A9 A1, A4, A2, A3, A5, A8, A9
α algorithme : exemple TW = {A1, A2, A3, A4, A5, A6, A7, A8, A9}, TI = {A1}, TO = {A9}, XW = {(A1, A2), (A1, A4), (A2, A3), (A3, A5), (A4, A5), (A5, A6), (A5, A7), (A5, A8), (A6, A9), (A7, A9), (A8, A9), (A5, (A6, A7)), (A5, (A6, A8)), (A5, (A7 , A8)), (A5, (A6, A7 , A8)), ((A6, A7), A9), ((A6, A8), A9), ((A7, A8), A9), ((A6, A7, A8), A9) YW = {(A1, A2), (A1, A4), (A2, A3), (A3, A5), (A4, A5), (A5, (A6, A7 , A8)), ((A6, A7, A8), A9) PW = { p(A1), p(A1, A2), p(A1, A4), p(A2, A3), p(A3, A5), p(A4, A5), p(A5, A678), p(A678, A9), p(A9) } FW = {(p(A1), A1), (A1, p(A1, A2)), (p(A1, A2), A2), (A1, p(A1, A4)), (p(A1, A4), A4), (A2, p(A2, A3)), (p(A2, A3), A3), (A3, p(A3, A5)), (p(A3, A5), A5), (A5, p(A4, A5), (p(A4, A5), A5), (A5, p(A5, A678)), (p(A5, A678), A6), (p(A5, A678), A7), (p(A5, A678), A8), (A6, p(A678, A9)), (A7, p(A678, A9)), (A8, p(A678, A9)), (p(A678, A9), A9), (A9, p(A9)) a(W) = (PW,TW,FW).
α algorithme : exemple
Patterns mining
Construction de la table de dépendance statistique (TDS) Pour chaque activité A dans les traces d’exécution : le nombre d'occurrences global de cette activité (dénotée #A) les dépendances directes aux activités précédentes Bi (dénoté P(A\Bi)) Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER MJR AE RP VD RD SD #STP=9 # VSC=9 0.89 0.11 # ER=3 0.66 0.33 # MJR=3 # AE=2 0.5 0.55 # RP=4 0.75 0.25 # VD=9 # RD=9 0.22 # SD=9
Construction de la table de dépendance statistique (TDS) Pour chaque activité A dans les traces d’exécution : le nombre d'occurrences global de cette activité (dénotée #A) les dépendances directes aux activités précédentes Bi (dénoté P(A\Bi)) Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER MJR AE RP VD RD SD #STP=9 # VSC=9 0.89 0.11 # ER=3 0.66 0.33 # MJR=3 # AE=2 0.5 0.55 # RP=4 0.75 0.25 # VD=9 # RD=9 0.22 # LD=9
Élimination des dépendances erronées STP VSC ER VD MJR AE RP RD LD P(RP\VD) <> 0.25 P(VD\RP) <> 0.11 Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER MJR AE RP VD RD SD #STP=9 # VSC=9 0.89 0.11 # ER=3 0.66 0.33 # MJR=3 # AE=2 0.5 0.55 # RP=4 0.75 0.25 # VD=9 # RD=9 0.22 # LD=9 0.88
Élimination des dépendances erronées STP VSC ER VD MJR AE RP RD LD Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER MJR AE RP VD RD SD #STP=9 # VSC=9 0.89 0.11 # ER=3 0.66 0.33 # MJR=3 # AE=2 0.5 0.55 # RP=4 0.75 0.25 # VD=9 # RD=9 0.22 # LD=9 0.88
Élimination des dépendances erronées Deux activités A et B sont concurrentes ssi les entrées P(A\B) et P(B\A) dans TDS sont non nulles. Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER MJR AE RP VD RD LD #STP=9 # VSC=9 0.89 -1 # ER=3 0.66 # MJR=3 # AE=2 0.5 # RP=4 0.75 # VD=9 0.11 # RD=9 0.22 0.33 # LD=9 0.88 Pour éliminer ces dépendance on proposer de les détecter et de les marquer en utilisant l’axiome que deux activité sont en concurrences ssi
Découverte des dépendances indirectes Comportement concurrentiel STP VSC ER VD MJR AE RP RD LD Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER MJR AE RP VD RD LD #STP=9 # VSC=9 0.89 -1 # ER=3 0.66 # MJR=3 # AE=2 0.5 # RP=4 0.75 # VD=9 0.11 # RD=9 0.22 0.33 # LD=9 0.88 Le comportement concurrentiel engendre un autre problème dans lequel on observe des dépendances incomplète. Par exemple observons l’instance 1
Découverte des dépendances indirectes Comportement concurrentiel STP VSC ER VD MJR AE RP RD LD Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER MJR AE RP VD RD LD #STP=9 # VSC=9 0.89 -1 # ER=3 0.66 # MJR=3 # AE=2 0.5 # RP=4 0.75 # VD=9 0.11 # RD=9 0.22 0.33 # LD=9 0.88
Découverte des dépendances indirectes: Fenêtre de concurrence Nous ne considérons pas seulement les activités qui précédent directement mais toutes les activités couvertes par la fenêtre de concurrence ayant une dépendance statistique non nulle. Longueur de la fenêtre de concurrence = 2 + nombre d’activités en concurrence Donc TFC[MJR]=3 Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER MJR AE RP VD RD LD #STP=9 # VSC=9 0.89 -1 # ER=3 0.66 # MJR=3 1 # AE=2 0.5 # RP=4 0.75 # VD=9 0.11 # RD=9 0.22 0.33 # LD=9 0.88 Cette fenêtre de considérer pas seulement …
Patterns mining : Découverte des dépendances indirectes: Fenêtre de concurrence Nous ne considérons pas seulement les activités qui précédent directement mais toutes les activités couvertes par la fenêtre de concurrence ayant une dépendance statistique non nulle. Instances 1 STP VSC ER VD MJR RD LD 2 STP VSC AE VD RD LD 3 STP VSC VD RP RD LD 4 STP VSC VD ER MJR RD LD 5 STP VSC ER MJR VD RD LD 6 STP VSC VD AE RD LD 7 STP VSC RP VD RD LD 8 STP VD VSC RP RD LD 9 STP VSC RP RD VD LD STP VSC ER MJR AE RP VD RD LD #STP=9 # VSC=9 1 -1 # ER=3 # MJR=3 # AE=2 # RP=4 # VD=9 # RD=9 0.33 0.22 0.45 # LD=9
Découverte de patrons de flots de contrôle
Patron de séquence
Découverte des patrons de branchement
Découverte des patrons de jonction
Patterns mining : Découverte des patrons de workflows
Patterns mining : Découverte des patrons de workflows STP VSC ER MJR AE RP VD RD LD #STP=9 # VSC=9 1 -1 # ER=3 # MJR=3 # AE=2 # RP=4 # VD=9 # RD=9 0.33 0.22 0.45 # LD=9 STP VSC ER VD MJR AE RP RD LD