Les procédés métiers : conception, modélisation et systèmes Claude Godart Université de Lorraine - Esstin 1
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 Découverte de processus Processus transactionnels Conclusion
Chapitre 6 Découverte de la logique des processus 3 Claude Godart Université de lorraine. Esstin
Idée de base découverte de workflow Traces de workflow ERP, billetterie … 4
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 5
Exemples de traces 6 Log format –(caseID, activity) Example –Check Invoice for Invoice No completed on at 9:19:57 –Function StoreCustomerData(„Müller“, c1987, „Bad Bentheim“) completed on at 9:22:24 –Send Invoice for Invoice No completed on at 9:23:18 Resulting Log –(4567, Check Invoice), (c1987, StoreCustomerData), (4567, Send Invoice), etc.
Structure des traces d’exécution 7 Une structure indépendante, compatibles avec la plupart des SGWFs actuels
Structure des traces d’exécution (basique) 8
Structure des traces d’exécution (Exemple d’extension) Participant 9
Un seuil minimal 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) pour un parallélisme ente n flux contenant chacun ji activités Prouvé suffisant pour la découverte du flot de contrôle Conditions minimales sur les traces d'exécutions STP VSC ER VD MJR AE RP RD LD Instances 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD 1+3+1*(4+1)=9 10
The « α algorithme » 11
Soit T un ensemble d’activité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 = t 1 t 2 t 3 t n-1 et i {1, , n-2} telque W et t i = a et t i+1 = b, –a W b ssi a > W b et not (b > W a), –a # W b ssi not(a > W b) et not(b > W a), and –a W b ssi a > W b et b > W a. α algorithme : relations d’ordre 12
α algorithme : Exemple 1 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 W = { A B C D, A C B D, A E 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 Log is complete if this relation cannot be extended X W Y xor Y W X xor X W Y xor X # W Y 13
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 α algorithme : Exemple 2 14
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 : Exemple 3 15
α algorithme – Principe (a) xyxy 16
α algorithme – Principe (b) x y, x z, and y#z 17
α algorithme – Principe (c) x z, y z, and x#y 18
α algorithme – Principe (d) x y, x z, and y||z 19
α algorithme – Principe (e) x z, y z, and x||y 20
α algorithme : Règles de construction d’un RdP Soit W log workflow sur l’ensemble T. 1.T W = { t T W t }, 2.T I = { t T W t = first( ) }, 3.T O = { t T W t = last( ) }, 4.X W = { (A,B) A T W B T W a A b B a W b a1,a2 A a 1 # W a 2 b1,b2 B b 1 # W b 2 }, 5.Y W = { (A,B) X (A,B) X, A A B B (A,B) = (A,B) }, 6.P W = { p (A,B) (A,B) Y W } {i W,o W }, 7.F W = { (a,p (A,B) ) (A,B) Y W a A } { (p (A,B),b) (A,B) Y W b B } { (i W,t) t T I } { (t,o W ) t T O }, and (W) = (P W,T W,F W ). 21
α algorithme : exemple Ensemble minimal des traces d’exécution : –A 1, A 2, A 3, A 4, A 5, A 6, A 9 –A 1, A 2, A 3, A 4, A 5, A 7, A 9 –A 1, A 2, A 3, A 4, A 5, A 8, A 9 –A 1, A 2, A 4, A 3, A 5, A 6, A 9 –A 1, A 2, A 4, A 3, A 5, A 7, A 9 –A 1, A 2, A 4, A 3, A 5, A 8, A 9 –A 1, A 4, A 2, A 3, A 5, A 6, A 9 –A 1, A 4, A 2, A 3, A 5, A 7, A 9 –A 1, A 4, A 2, A 3, A 5, A 8, A 9 22
α algorithme : exemple 1.T W = {A 1, A 2, A 3, A 4, A 5, A 6, A 7, A 8, A 9 }, 2.T I = {A 1 }, 3.T O = {A 9 }, 4.X W = {(A 1, A 2 ), (A 1, A 4 ), (A 2, A 3 ), (A 3, A 5 ), (A 4, A 5 ), (A 5, A 6 ), (A 5, A 7 ), (A 5, A 8 ), (A 6, A 9 ), (A 7, A 9 ), (A 8, A 9 ), (A 5, (A 6, A 7 )), (A 5, (A 6, A 8 )), (A 5, (A 7, A 8 )), (A 5, (A 6, A 7, A 8 )), ((A 6, A 7 ), A 9 ), ((A 6, A 8 ), A 9 ), ((A 7, A 8 ), A 9 ), ((A 6, A 7, A 8 ), A 9 ) 5.Y W = {(A 1, A 2 ), (A 1, A 4 ), (A 2, A 3 ), (A 3, A 5 ), (A 4, A 5 ), (A 5, (A 6, A 7, A 8 )), ((A 6, A 7, A 8 ), A 9 ) 6.P W = { p(A 1 ), p(A 1, A 2 ), p(A 1, A 4 ), p(A 2, A 3 ), p(A 3, A 5 ), p(A 4, A 5 ), p(A 5, A 678 ), p(A 678, A 9 ), p(A 9 ) } 7.F W = {(p(A 1 ), A 1 ), (A 1, p(A 1, A 2 )), (p(A 1, A 2 ), A 2 ), (A 1, p(A 1, A 4 )), (p(A 1, A 4 ), A 4 ), (A 2, p(A 2, A 3 )), (p(A 2, A 3 ), A 3 ), (A 3, p(A 3, A 5 )), (p(A 3, A 5 ), A 5 ), (A 5, p(A 4, A 5 ), (p(A 4, A 5 ), A 5), (A 5, p(A 5, A 678 )), (p(A 5, A 678 ), A 6 ), (p(A 5, A 678 ), A 7 ), (p(A 5, A 678 ), A 8 ), (A 6, p(A 678, A 9 )), (A 7, p(A 678, A 9 )), (A 8, p(A 678, A 9 )), (p(A 678, A 9 ), A 9 ), (A 9, p(A 9 )) (W) = (P W,T W,F W ). 23
α algorithme : exemple 24
Patterns mining 25
VSC précède 2 fois ER dans les 3 traces où ER apparaît 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)) Construction de la table de dépendance statistique (TDS) Instances 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD STPVSCERMJRAERPVDRDSD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # SD= MJR précède 2 fois RD dans les 9 traces où RD apparaît
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)) Construction de la table de dépendance statistique (TDS) Instances 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD STPVSCERMJRAERPVDRDSD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # SD=
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)) Construction de la table de dépendance statistique (TDS) Instances 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD STPVSCERMJRAERPVDRDSD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD=
Élimination des dépendances erronées Instances 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD STPVSCERMJRAERPVDRDSD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD= STP VSC ER VD MJR AE RP RD LD P(RP\VD) <> 0.25 P(VD\RP) <>
Élimination des dépendances erronées STPVSCERMJRAERPVDRDSD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD= STP VSC ER VD MJR AE RP RD LD Instances 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD 30
Élimination des dépendances erronées STPVSCERMJRAERPVDRDLD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD= 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 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD 31
Élimination des dépendances erronées STPVSCERMJRAERPVDRDLD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD= Fenêtres de concurrence Instances 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD 32 VSC est en concurrence avec 1 activité, on va chercher ses dépendances indirectes avec une fenêtre de 3; VD est en concurrence avec 6 activités.
Découverte des dépendances indirectes Instances 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD STP VSC ER VD MJR AE RP RD LD Comportement concurrentiel STPVSCERMJRAERPVDRDLD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD=
Découverte des dépendances indirectes Instances 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD STP VSC ER VD MJR AE RP RD LD Comportement concurrentiel STPVSCERMJRAERPVDRDLD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD=
Découverte des dépendances indirectes: Fenêtre de concurrence STPVSCERMJRAERPVDRDLD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD= 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 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD On choisit TFC[MJR]=3 35
Patterns mining : Découverte des dépendances indirectes: Fenêtre de concurrence STPVSCERMJRAERPVDRDLD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD= 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 1STP VSC ER VD MJR RD LD 2STP VSC AE VD RD LD 3STP VSC VD RP RD LD 4STP VSC VD ER MJR RD LD 5STP VSC ER MJR VD RD LD 6STP VSC VD AE RD LD 7STP VSC RP VD RD LD 8STP VD VSC RP RD LD 9STP VSC RP RD VD LD 36
P1: Propriété de comportement de dépendance mutuelle exclusive P2: Propriété de concurrence Concurrence globale Concurrence partielle Pas de Concurrence P3: Propriété de choix Pas de Concurrence choix unique pas de choix Corrélation entre TDS et les dépendances inter-activités depNrm(A; B) P(B\A)>0 P(A\B)=0 Prouvé formellement Propriétés statistiques des patrons de workflow 37
Patterns mining : Découverte des patrons de workflows 38
Patterns mining : Découverte des patrons de workflows STP VSC ER VD MJR AE RP RD LD STPVSCERMJRAERPVDRDLD #STP= # VSC= # ER= # MJR= # AE= # RP= # VD= # RD= # LD=