Transformation de modèles pour validation de processus métier



Documents pareils
Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Cours de Master Recherche

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

UML (Paquetage) Unified Modeling Language

Programmation linéaire

LE PROBLEME DU PLUS COURT CHEMIN

Cours de Génie Logiciel

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

DOCM Solutions officielles = n 2 10.

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Les diagrammes de modélisation

Les processus métiers : concepts, modèles et systèmes

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Pourquoi l apprentissage?

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Rappels sur les suites - Algorithme

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Introduction à l étude des Corps Finis

Chapitre VI- La validation de la composition.

Resolution limit in community detection

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

OCL - Object Constraint Language

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

UML et les Bases de Données

Annexe 6. Notions d ordonnancement.

1 Définition et premières propriétés des congruences

Raisonnement probabiliste

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

M1 : Ingénierie du Logiciel

Représentation des Nombres

IFT2255 : Génie logiciel

Fonctions de plusieurs variables

Intelligence Artificielle Planification

UML (Diagramme de classes) Unified Modeling Language

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices de dénombrement

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Les indices à surplus constant

Programmation par contraintes. Laurent Beaudou

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

1 Introduction au codage

Générer du code à partir d une description de haut niveau

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct (ajout de la section 3 et augmentation de la section 1)

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Fonctions de deux variables. Mai 2011

Algorithme. Table des matières

Rapport d'analyse des besoins

Exercices sur le chapitre «Probabilités»

L apprentissage automatique

Chapitre 2 Le problème de l unicité des solutions

Pourquoi archiver les s

Algèbre binaire et Circuits logiques ( )

TSTI 2D CH X : Exemples de lois à densité 1

Créer le schéma relationnel d une base de données ACCESS

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Préparation à l examen EFA en Macro

MEGA ITSM Accelerator. Guide de Démarrage

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

FIMA, 7 juillet 2005

Partie 7 : Gestion de la mémoire

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Université Paris-Dauphine DUMI2E 1ère année, Applications

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

STAGE IREM 0- Premiers pas en Python

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

LES DECIMALES DE π BERNARD EGGER

Chapitre 5 : Flot maximal dans un graphe

données en connaissance et en actions?

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

Conception, architecture et urbanisation des systèmes d information

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

OASIS Date de publication

Utilisation des tableaux sémantiques dans les logiques de description

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Travailler avec les télécommunications

Analyse des coûts. 1 ère année DUT GEA, 2005/2006 Analyse des coûts

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Limites finies en un point

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

Plan. 5 Actualisation. 7 Investissement. 2 Calcul du taux d intérêt 3 Taux équivalent 4 Placement à versements fixes.

TUTORIAL Microsoft Project 2010 Fonctionalités de base

Les nombres entiers. Durée suggérée: 3 semaines

Correction du baccalauréat ES/L Métropole 20 juin 2014

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Model checking temporisé

Transcription:

Transformation de modèles pour validation de processus métier Guillaume Voiron February 4, 215 1 Introduction Les flux de travaux (ou processus métier) consistent en une succession d activités à effectuer pour réaliser un processus particulier. Très utilisés en entreprise, ils permettent de contrôler pas à pas le déroulement du processus en question tout en gérant les ressources mises à disposition pour le mener à bien (on sait quelle activité chaque employé doit réaliser et à quel moment il doit la réaliser). L un des enjeux majeurs concernant ces processus métier est d être en mesure de vérifier qu un modèle de processus proposé correspond rigoureusement aux spécifications auquel il est censé répondre, c est-à-dire que l ordonnancement proposé pour les différentes activités est cohérent vis-à-vis de ce qui peut ou doit être fait au cours du processus. Par exemple, pour qu un commercial puisse contacter un client, il faut logiquement que le numéro de ce dernier soit enregistré. De plus, il ne contactera pas ce client deux fois de suite et deux commerciaux ne devraient jamais appeler le même client. Afin de permettre la vérification de telles spécifications, une méthode formelle proposée dans Bride et al. [214] est étudiée dans ce rapport. Cette méthode de vérification s appuie avant tout sur l analyse des réseaux de Petri qui constituent un outil particulièrement intéressant pour modéliser des flux de travaux. Ces réseaux ont été largement étudiés au cours des dernières décennies et de nombreux algorithmes et modèles mathématiques ont justement été proposés pour analyser les exécutions du processus qu ils représentent de manière formelle. Dans l objectif d automatiser la vérification de spécifications sur un réseau de Petri par la méthode proposée dans Bride et al. [214], deux outils de calcul, différents en terme de méthodes de résolution et donc de performances, sont envisagés : les solveurs CSP 1 et les prouveurs SMT 2. La principale contribution apportée dans ce rapport propose différents méta-modèles pour générer automatiquement le code qui sera utilisé en entrée de ces deux outils pour vérifier ces spécifications. 1 CSP : Constraint Satisfaction Problem 2 SMT : Satisifiability Modulo Theories 1

Après une présentation des réseaux de Petri ainsi que leur fonctionnement et les méthodes analytiques qui leurs correspondent en section 2, la section 3 explique les mécanismes de résolution utilisés par les solveurs CSP 1 et les prouveurs SMT 2. La section 4 présente le concept de spécifications modales sur un réseau de Petri et précise comment mettre en oeuvre la méthode de vérification de Bride et al. [214] pour de telles spécifications à l aide des deux outils envisagés. La section 5 propose les méta-modèles permettant de modéliser un réseau de Petri et des spécifications modales ainsi que l ensemble de règles de génération de code qui leur correspondent pour les solveurs CSP 1 et les prouveurs SMT 2 respectivement. Enfin, une ouverture quant aux travaux à effectuer à partir de ces méta-modèles est proposée en section 6. 2 Réseaux de Petri Dans cette section, les réseaux de Petri, ainsi que différentes méthodes d analyse utilisées dans la suite de ce rapport sont d abord présentés. Par la suite, différentes classes de ces réseaux, avec les constructions particulières qu ils proposent, sont définies. 2.1 Généralités Un réseau de Petri est graphiquement représenté par cinq éléments : 1. Les transitions, représentées par des rectangles noirs, qui constituent une activité du processus pouvant être réalisée 2. Les places, représentés par des cercles, qui définissent un état dans lequel se trouve l exécution en cours du processus 3. Les jetons, représentés par des points noirs dans les places qui représentent les ressources pouvant effectuer une activité 4. Les arcs, représentés par des flèches et dirigés d une place vers une transition, ou d une transition vers une place 5. Un ensemble de poids associés à chaque arc indiquant combien de ressources une transition va consommer ou produire dans une place Définition 1 Un réseau de Petri est un quadruplet (P, T, F, W) où P est l ensemble des places, T est l ensemble des transitions, F P T T P est l ensemble des arcs et W : F N est une fonction associant un poids à chaque arc de F. Les transitions et les places d un réseau de Petri sont appelés nœuds. La figure 1 donne la représentation graphique d un réseau de Petri modélisant un exemple de processus de connexion à une messagerie. Son fonctionnement est le suivant : si un utilisateur souhaite se connecter, il doit avant tout réaliser deux actions (transition split ) : renseigner son pseudonyme (transition pseudonyme ) ainsi que son mot de passe (transition mdp ). Une fois qu il a renseigné ces deux champs, l utilisateur peut finalement valider la connexion (transition valider ). 2

Figure 1: Processus de connexion en cours d exécution Exemple 1 Dans le cas du réseau de Petri de la figure 1, on distingue : Les transitions (ou actions) split, pseudo, mdp, valider Les places i, p2, p3, p4, p5, o Les arcs (i, split), (split, p2), (split, p3), (p2, pseudo), (p3, mdp), (pseudo, p4), (mdp, p5), (p4, valider), (p5, valider), (valider, o) Les poids associés à chacun des arcs (tous égaux à 1 ici et représentés par le label 1 sur chaque arc) Les jetons (un dans la place p4 et un dans la place p5 ) 2.2 Marquage L exécution (ou simulation) d un réseau de Petri obéit à des règles strictes : on ne peut faire évoluer le processus (déclencher des transitions) que lorsque certaines conditions sont réunies. C est ici qu interviennent les notions de marquage d un réseau de Petri et de preset et de postset d un noeud. Définition 2 Un marquage M : P N d un réseau de Petri PN = (P, T, F, W) est une fonction associant à chaque place de P un nombre de jetons. On note M = m 1 p 1 + m 2 p 2 +... + m n p n le marquage des n places du réseau avec M(p i ) = m i 1..n N le nombre de jetons dans la place p i. Exemple 1 Dans le cas du réseau de Petri de la figure 1, le marquage est donc M = i + p2 + p3 + 1p4 + 1p5 + o car seules les places p4 et p5 contiennent un jeton. On simplifie généralement la notation de M en 1p4 + 1p5 ou encore p4 + p5. Ainsi, on a : M(i) = M(p2) = M(p3) = M(p4) = 1 M(p5) = 1 M(o) = 3

Le déclenchement d un transition dans un réseau de Petri entraîne un nouveau marquage du réseau. L exécution d un réseau de Petri correspond donc à une succession de marquages. Toutefois, avant de pouvoir être déclenchée, une transition doit d abord être active. Définition 3 Le preset d un noeud n (n P T ) dans un réseau de Petri PN = (P, T, F, W), noté n est définit par {n P T (n, n) F }. Le postset d un noeud n (n P T ) dans un réseau de Petri PN = (P, T, F, W), noté n est définit par {n P T (n, n ) F }. Exemple 2 Dans le cas du réseau de Petri de la figure 1, on a : p1 = split = {p1} valider = {p4, p5} o = {valider} p1 = {split} split = {p2, p3} valider = {o} o = Définition 4 Une transition t d un réseau de Petri PN = (P, T, F, W) dans un marquage M est active si et seulement si p t, M(p) >= W (p, t). Exemple 3 Dans le cas du réseau de Petri de la figure 1, seule la transition valider est active et peut donc être déclenchée. En effet, valider = {p4, p5} et W (p4, valider) = W (p5, valider) = 1 et M(p4) = M(p5) = 1. Comme 1 >= 1, la transition valider est active. En revanche, la transition split n est pas déclenchable. En effet, split = {i} et W (i, split) = 1 et M(i) =. Comme < 1, la transition split n est pas active. Définition 5 Le nouveau marquage M d un réseau de Petri PN = (P, T, F, W) dans un marquage M, engendré par le déclenchement d une transition t T active, est définit par : p P, M (p) = M(p) W (p, t) + W (t, p). Autrement dit après avoir déclenché une transition t, on retire de chaque place p appartenant à t le nombre de jetons correspondant au poids de l arc (p, t), et on ajoute à chaque place p appartenant à t le nombre de jetons correspondant au poids de l arc (t, p). Exemple 4 Dans le cas du réseau de Petri de la figure 1, le marquage du réseau de Petri est M = p4 + p5. On ne peut déclencher que la transition valider. valider = {p4, p5}. De plus, M(p4) = M(p5) = 1. Le nouveau marquage M engendré par le déclenchement de la transition valider est donc M = o. En effet, d après la définition 5, on a : M (p4) = M(p4) W (p4, valider) + W (valider, p4) = 1 1 + = 4

M (p5) = M(p5) W (p5, valider) + W (valider, p5) = 1 1 + = M (o) = M(o) W (o, valider) + W (valider, o) = + 1 = 1. A noter que le marquage des places, n appartenant ni au preset, ni au postset d une transition, n est jamais modifié par son déclenchement. 2.3 Atteignabilité Notre objectif à terme étant de vérifier que des propriétés sont respectées par tout ou partie des exécutions possibles d un réseau de Petri, il est important de pouvoir distinguer les exécutions valides des exécutions invalides : dans un marquage M du réseau de Petri, est-il possible de déclencher une transition t? Et dans le nouveau marquage atteint après le déclenchement d une transition t, est-il possible de déclencher de nouveau t? Et est-il possible de déclencher une autre transition depuis ce même marquage? Le problème d atteignabilité consiste à savoir si un marquage M est atteignable à partir du marquage M d un réseau de Petri par le biais d une séquence de transitions quelconque (et potentiellement infinie). On souhaite donc pouvoir énumérer tous les marquages qu un réseau de Petri particulier peut atteindre. 2.3.1 Graphe d atteignabilité Pour visualiser les transitions déclenchables depuis un marquage particulier, on peut tracer le graphe d atteignabilité du réseau de Petri. La figure 7 montre le graphe d atteignabilité du réseau de Petri de la figure 2 pour lequel le marquage initial est S = i. Figure 2: Démarrage du processus de connexion On constate que depuis le marquage S, un seul marquage est atteignable : S1. Cela est dû au fait que seule une transition est déclenchable dans le marquage S : la transition split. Dans le marquage S1 en revanche, deux transitions ( pseudo et mdp ) sont déclenchables. A priori, cela signifie que l on peut soit renseigner son pseudo, soit renseigner son mot de passe. Mais on voit qu une fois qu une de ses transitions est déclenchée, le nouveau marquage obtenu (S2 si la transition pseudo a été déclenchée, S3 si la transition mdp a 5

Figure 3: Graphe d atteignabilité du réseau de Petri de la figure 2 été déclenchée) ne permet pas de déclencher la transition valider pour atteindre un nouveau marquage. La structure du réseau nous impose donc d effectuer l autre action (renseigner son mot de passe si le pseudo a été renseigné, renseigner son pseudo si le mot de passe a été renseigné). Dans le marquage S1, les deux transitions déclenchables ne constituaient donc pas un choix à proprement parler. La structure du réseau impose en réalité d effectuer les deux actions, mais permet en revanche de les effectuer en parallèle et dans n importe quel ordre. 2.3.2 Enumération des exécutions valides d un réseau de Petri Le graphe d atteignabilité nous permet d observer les états dans lesquels le système en cours d exécution se trouve en fonction des transitions déclenchées au cours de cette exécution et de l ordre dans lequel elles ont été déclenchées. Il peut être souhaitable d énumérer toutes les exécutions valides d un réseau de Petri, c est-à-dire toutes les séquences de transitions pouvant être effectuées depuis un certain marquage du réseau. Exemple 5 Dans le cas simple du réseau de Petri de la figure 2, trouver l ensemble des exécutions valides dans le marquage Mi est plutôt simple car les choix des transitions pouvant être déclenchées sont très limitées quel que soit le marquage consiéré. Les exécutions valides de ce réseau de Petri à partir du marquage Mi (notées σ) sont données ci-dessous : Aucune transition n est déclenchée σ =split σ =split, pseudo σ =split, mdp σ =split, pseudo, mdp σ =split, mdp, pseudo σ =split, pseudo, mdp, valider σ =split, mdp, pseudo, valider 6

Le nombre d exécutions valides est potentiellement infini selon le réseau de Petri considéré. Dans le cas du réseau de Petri de la figure 2, si l on ajoute une unique transition déconnexion reliant la place o à la place i, il existera toujours au moins une transition active dans le réseau, et ce quel que soit le marquage atteint. Ainsi, le nombre d exécutions valides devient infini. 2.3.3 Marquage atteint après une séquence d exécution spécifique En raison du nombre potentiellement infini d exécutions valides d un réseau de Petri, il est intéressant de savoir dans quel état (marquage) se trouve le système en fonction des transitions déclenchées lors de cette exécution. On fait pour cela appel à l équation d état du réseau de Petri, qui réalise précisément cette tâche : à partir d un marquage M d un réseau de Petri, elle donne le nouveau marquage du réseau obtenu après avoir déclenché une séquence de transitions spécifique. Définition 6 La matrice d incidence [N] d un réseau de Petri PN = (P, T, F, W) est la matrice de dimension P T dans laquelle p P, t T, [N] p,t = W (t, p) W (p, t). La matrice d incidence indique donc le nombre de jetons gagnés ou perdus par chaque place lors du déclenchement d une transition spécifique. Exemple 6 Dans le cas du réseau de Petri des figures 2 et 1, la matrice d incidence [N] est : split pseudo mdp valider i 1 p2 +1 1 p3 [N] = +1 1 p4 +1 1 p5 +1 1 o +1 Si on déclenche par exemple la transition split, on retire un jeton de la place i ([N] i,split = 1) et on ajoute un jeton dans les places p2 ([N] p2,split = +1) et p3 ([N] p3,split = +1). Définition 7 Soit un réseau de Petri PN = (P, T, W, F). Le vecteur de Parikh σ : T N associe à chaque transition de PN son nombre d occurences dans la séquence de transitions σ. Exemple 7 Dans le cas des figures 2 et 1, le vecteur de Parikh σ associé à la séquence de transitions σ =split, split, valider, mdp, valider, split, split est donc : split pseudo mdp valider ( ) σ = 4 1 2 A noter que la séquence de transitions n est pas forcément une séquence de transitions valide. Ici, σ n est pas une séquence de transitions valide car après avoir déclenché la transition split par exemple, il n est pas possible de déclencher immédiatement la transition valider. Mais le vecteur de Parikh et 7

l équation d état d un réseau de Petri sont insensibles à la notion de validité ou d invalidité des séquences de transitions considérées. Définition 8 L équation d état d un réseau de Petri PN est définie par : M = M + [N] σ où : M est le marquage initial de PN [N] est la matrice d incidence de PN σ est le vecteur de Parikh associé à la séquence de transitions σ appliquée à PN M est le marquage obtenu après l application de la séquence de transitions σ à PN Exemple 8 Dans le cas du réseau de Petri de la figure 2, le marquage M est (1,,,,,, ). Sa matrice d incidence [N] est celle donnée dans l exemple 6. On applique à ce réseau la séquence de transitions σ = split, mdp, pseudo, valider. L équation d état devient : M = M + [N] σ avec σ le vecteur de Parikh de σ et M le nouveau marquage atteint après l application de σ au réseau de Petri. M = 1 + 1 +1 1 +1 1 +1 1 +1 1 +1 1 1 1 1 = 1 + 1 1 = 1 Exemple 9 Dans le cas du réseau de Petri de la figure 1, le marquage M est (,,, 1, 1, ). Sa matrice d incidence [N] est celle donnée dans l exemple 6. On applique à ce réseau la séquence de transitions σ = split, valider, split, valider, mdp, valider, split, split. L équation d état devient : M = M + [N] σ avec σ le vecteur de Parikh de σ et M le nouveau marquage atteint après l application de σ au réseau de Petri. M = 1 1 + 1 +1 1 +1 1 +1 1 +1 1 +1 4 1 2 = 1 1 + 4 4 3 2 1 2 = 4 4 3 1 2 Dans l exemple 9, on constate que le marquage M indique des nombres de jetons négatifs dans le cas des places i (M (i) = 4) et p4 (M (p4) = 1). Un nombre de jetons négatif n a pas de sens et ce résultat montre que la séquence de transitions σ n est pas une séquence de transitions valide (certaines transitions on été déclenchées dans σ alors qu elles n étaient pas actives). L équation d état permet donc d énumérer toutes les séquences de transitions valides, mais certaines séquences de transitions invalides s ajoutent malgré tout à cette énumération. En effet, l équation d état dépend du nombre de fois où une transition est déclenchée lors de l exécution, mais ne tient pas compte de 8

l ordre dans lequel elles ont été déclenchées. Ceci est dû au fait qu elle utilise le vecteur de Parikh qui lui-même ne tient pas compte de cet ordre d exécution qui peut donc être invalide. Le marquage obtenu peut donc paraître cohérent même si la séquence de transition utilisée est invalide. Exemple 1 Si on reprend l exemple 8, et qu on exécute la séquence de transitions σ = valider, mdp, split, pseudo, on obtient rigoureusement le même vecteur de Parikh σ = (1, 1, 1, 1). Ainsi, le calcul de l équation d état sera équivalent à celui de l exemple, et le marquage obtenu sera toujours : M = 1 La séquence de transitions σ n en est pas moins invalide : dans le marquage initial du réseau de Petri de la figure 2, il n est pas possible de commencer par déclencher la transition valider car celle-ci n est pas active. 2.3.4 Classes de réseaux de Petri Différentes classes de réseaux de Petri, avec des propriétés particulières pour chacune, sont à prendre en considération. On distingue notamment : Les machines à états finis dans lesquelles chaque transition possède exactement une place prédécesseur et une place successeur. Figure 4: Une machine à états finis Les graphes marqués dans lesquels chaque place possède exactement une transition prédécesseur et une transition successeur. Les réseaux de Petri à choix libre dans lesquels si deux places ont une transition successeur en commun, alors c est l unique transition successeur qu elles possèdent. Certains réseaux de Petri appartiennent a plusieurs de ces classes en même temps. Les machines à états finis et les graphes marqués appartiennent d ailleurs naturellement à la classe des réseaux de Petri à choix libre. 9

Figure 5: Un graphe marqué Figure 6: Un réseau de Petri à choix libre Les réseaux de Petri étudiés dans ce rapport sont appelés WF-Nets. Les WF- Nets ont été particulièrement étudiés car ils présentent de nombreux avantages en termes d analyse formelle et permettent de modéliser simplement un processus comportant un début et une fin. La définition d un WF-Net suivante est tirée de van der Aalst [1998]. Définition 9 Un réseau de Petri PN = (P, T, F) est un WF-Net si et seulement si : Il existe deux places spéciales (i et o) dans P telles que i = o = Pour tout noeud n de PN, il existe un chemin menant de la place i à la place o et passant par n Le réseau de Petri de la figure 1 est un exemple de WF-Net. Les WF-Nets seront étudiés tout au long de ce rapport car la méthode de vérification proposée dans Bride et al. [214] repose sur les particularités de ces types de réseaux de Petri. 2.3.5 Particularités des réseaux de Petri Certaines constructions de réseaux de Petri donnent lieu à des propriétés intéressantes qu on propose d étudier ici. Définition 1 On appelle siphon (respectivement un piège) un ensemble S P où S tel que S S (respectivement S S). 1

Un piège, une fois marqué, restera toujours marqué quelle que soit la séquence de transitions déclenchée au cours de l exécution. Un siphon, lorsqu il n est plus marqué, ne le sera plus jamais quelle que soit la séquence de transitions déclenchée au cours de l exécution. Ces deux propriétés particulièrement intéressantes sont utilisées dans la méthode de Bride et al. [214] (étudiée en section 4) afin de répondre au problème d atteignabilité. 3 Méthodes de résolution pour problèmes de satisfaction de contraintes et de satisfaisabilité modulo théories Les spécifications modales qu on cherche à vérifier sur les réseaux de Petri sont des formules logiques du premier ordre. Deux méthodes permettant de résoudre de telles formules logiques sont expliquées et comparées dans cette section : celle utilisée par les solveurs CSP 1 et celle utilisée par les prouveurs SMT 2. Ces solveurs s appuient sur des principes fondamentalement différents et leur efficacité varie donc selon le problème. Définition 11 On définit définit un système de contraintes C comme étant satisfiable et on écrit SAT (C) lorsqu il existe au moins une solution au problème. Définition 12 On définit définit un système de contraintes C comme étant satisfiable et on écrit U N SAT (C) lorsqu il n existe aucune solution au système de contraintes. 3.1 Résolution des problèmes de satisfaction de contraintes Un problème de satisfaction de contraintes consiste en un ensemble de contraintes portant sur des variables dont les valeurs sont choisies dans un domaine. Le problème est résolu si en affectant à chacune des variables une valeur prise dans leurs domaines respectifs, toutes les contraintes du problème sont respectées. Définition 13 Un problème de satisfaction de contraintes est un triplet (X, D, C) avec : X = x 1, x 2,..., x n N est un ensemble de n variables D = d 1, d 2,..., d n N est l ensemble des domaines respectifs des variables de X C est l ensemble des contraintes portant sur une ou plusieurs variables de X. Exemple 11 On considère trois variables a [..3], b [1..4] et c [..4]. On cherche à déterminer l ensemble des valeurs que peuvent prendre les variables a, b et c de telle sorte que le système de contraintes suivant soit respecté : a + b < 4 a < c 11

a + b = c L ensemble X des variables est donc X = {a, b, c}. L ensemble D des domaines est D = {[..3], [1..4], [..4]}. L ensemble C des contraintes est C = {a + b < 4, a < c, a + b = c}. La résolution d un CSP 1 se déroule en trois étapes : 1. Réduction de l espace de recherche en bornant les domaines respectifs des variables par propagation de contraintes : chaque contrainte réduit potentiellement les domaines possibles d une ou plusieurs variables. 2. Génération de valeurs, pour chacune des variables, sélectionnées dans leurs domaines respectifs. On attribue progressivement les valeurs aux variables puis on réduit à nouveau les domaines afin que les contraintes soient toujours respectées avec cette affectation. 3. Production d une solution (une valeur a été affectée à chacune des variables et le système de contraintes est vérifié avec cette affectation) ou preuve de non satisfaisabilité : si un des domaines de définition d une variable devient vide au cours du déroulement des deux premières étapes, c est que le système de contrainte n est pas satisfiable. Exemple 12 Dans le cas de l exemple 11, le déroulement de l algorithme de résolution du problème serait donc le suivant : 1. Réduction des domaines de définition des variables : Contrainte Propagation Domaine a Domaine b Domaine c [..3] [1..4] [..4] a + b < 4 a < 4 1 [..2] [1..4] [..4] b < 4 [..2] [1..3] [..4] a < c a < 4 [..2] [1..3] [..4] c > [..2] [1..3] [1..4] a + b = c 1 3 a 4 1 [..2] [1..3] [1..4] 1 2 b 4 [..2] [1..3] [1..4] + 1 c 2 + 3 [..2] [1..3] [1..4] 2. Affectation de valeurs aux variables et recherche d une solution : Affectation Contrainte Domaine a Domaine b Domaine c [..2] [1..3] [1..4] a = a + b < 4 {} [1..3] [1..4] a < c {} [1..3] [1..4] a + b = c {} [1..3] [1..3] b = 1 a + b < 4 {} {1} [1..4] a < c {} {1} [1..4] a + b = c {} {1} {1} Le solveur parvient donc à une solution vérifiant toutes les contraintes : a =, b = 1 et c = 1. 3.2 Résolution des problèmes de satisfaisabilité modulo théories Un solveur SMT est généralement constitué de deux solveurs : un solveur SAT 3 vérifiant la satisfaisabilité d une formule booléenne (uniquement constituée de 12

variables booléennes et d opérateurs logiques classiques), et un solveur T 4 qui détermine si une formule logique peut être satisfiable vis-à-vis d une théorie mathématique particulière (par exemple, dans le cadre de la vérification de spécifications modales, nous serons particulièrement intéréssés par la théorie des nombres entiers). 4 3.2.1 Solveurs SAT A la base d un solveur SAT, on trouve l algorithme de backtracking DPLL (du nom des personnes ayant participé à sa conception : Davis Putnam Logemann Loveland) qui tente d affecter une valeur de vérité aux variables de la formule logique qui lui est soumise, de telle sorte que cette dernière soit satisfaite. Les différentes étapes de cet algorithme sont expliquées dans l exemple ci-dessous : Soit la formule logique φ = ( a b) ( c d) ( b d) pour laquelle on souhaite trouver une solution (affecter des valeurs de vérité aux variables de telle sorte que φ soit vraie). La liste suivante présente les affectations successives de valeurs de vérité faites par l algorithme CPLL pour tenter de satisfaire la formule φ : a (pour que ( a b) soit vraie, b doit être vraie) a b (pour que ( c d) soit vraie, c peut être vraie ou fausse) a b c (pour que ( c d) soit vraie, d doit être vraie) a b c d (( b d) est fausse, on revient donc sur le dernier choix effectué) a b c (pour que ( c d) soit vraie, d peut être vraie ou fausse) a b c d (( b d) est fausse, on revient donc sur le dernier choix effectué) a b c d ( b d) est vraie et toutes les autres disjonctions également. Le solveur a donc déterminé que φ est satisfaite lorsque a b c d est vraie. A noter qu il peut exister d autres affectations rendant la formule φ vraie. Mais le solveur SAT n est utilisé que pour déterminer si une formule est effectivement satisfiable ou non. La plupart des solveurs SAT (c est le cas notamment du solveur Z3 de Microsoft) possèdent un comportement encore plus intelligent et optimisé qui consiste à apprendre des erreurs rencontrées : si on découvre qu une variable possède une valeur de vérité qui ne permettra pas de valider la formule, on modifie immédiatement sa valeur de vérité pour éviter de tester toutes les combinaisons d affectations de variables possibles en sachant que la formule ne sera jamais satisfaite tant que la valeur de cette variable n est pas modifiée. L algorithme qui permet ce comportement est appelé Conflict-Driven Clause Learning. 3 SAT : Abbréviation pour Satisfiability 4 T : Abbréviation pour Theories 13

3.2.2 Solveurs SMT Un solveur SMT combine généralement un solveur SAT et un solveur T. Un T solveur prend en entrées une théorie mathématique et une formule dont on veut vérifier qu elle est satisfiable vis-à-vis de cette théorie. Si l on prend par exemple l arithmétique sur les entiers naturels (définie par les axiomes de Peano), la formule logique ψ = (5 + 1 = 6 6 + 1 = 6) n est pas valide vis-à-vis de cette théorie car celle-ci énonce notamment que deux entiers ayant le même successeur sont égaux. Or ici, 5 est différent de 6 mais on souhaite que leurs successeurs respectifs soient égaux à 6. La formule n est donc pas valide en regard de la théorie des entiers naturels. Une des méthodes de résolution d un solveur SMT consiste à vérifier d abord la satisfaisabilité de la formule logique elle-même à l aide d un solveur SAT. Dans le cas de la formule ψ, on remplace respectivement les égalités 5 + 1 = 6 et 6 + 1 = 6 par deux prédicats p1 et p2. Le solveur SAT doit donc trouver une valeur de vérité pour les prédicats p1 et p2 telle que ψ = p1 p2 soit vraie. Le solveur SAT indiquera que la formule est satisfaite si p1 et p2 sont vrais. Ensuite, on demande au solveur T de confronter à la fois p1 et p2 à la théorie des entiers naturels. Il indiquera qu elles sont incompatibles (voir paragraphe ci-dessus). Pour vérifier que la formule ψ n est effectivement pas satisfiable, il faut vérifier auprès du solveur SAT s il existe une autre affectation de valeurs telle que ψ = p1 p2 est satisfiable. Pour cela, on ajoute à la formule originelle la négation de la formule précédemment proposée par le solveur SAT afin que celui-ci ne donne pas le même résultat deux fois de suite. On demande donc au solveur SAT de déterminer la satisfaisabilité de la formule ψ = p1 p2 p1 p2. Cette formule n est pas satisfiable et le solveur SAT indiquera donc qu il n existe plus de solution. Le solveur SMT considérera donc que ψ = (5 + 1 = 6 6 + 1 = 6) n est pas satisfiable vis-à-vis de la théorie des entiers naturels. 4 Vérification de spécifications modales à l aide de solveurs PSC et SMT L objectif de ce projet de recherche est avant tout de comparer, notamment en terme de temps de calcul, deux technologies permettant la vérification de spécifications modales sur un réseau de Petri : les solveurs PSC et les solveurs SMT. Dans cette section, le concept de spécifications modales sur un réseau de Petri est introduit. Une approche permettant de modéliser et de vérifier la validité de spécifications modales à l aide des deux outils est ensuite proposée. Cette méthode est en grande partie inspirée des travaux déjà exposés dans Bride et al. [214]. Dans la suite de ce rapport, nous nous intéresserons au réseau de Petri représenté par la figure 7. Puisque c est à cette classe de réseaux de Petri que nous nous intéressons particulièrement dans le cadre de ce projet, il s agit d un 14

WF-Net. Il modélise, en plus de l étape de connexion, les étapes de consultation des messages reçus (transition consulter ) et de déconnexion de la messagerie (transition deconnecter ). La transition connecter peut être modélisée par l exécution d un sous-réseau de Petri (celui de la figure 2). Très simplement, effectuer l activité connexion (déclencher la transition) revient à exécuter correctement le WF-Net de la figure 2, c est-à-dire passer du marquage i au marquage o à l aide d une séquence de transitions valide. (a) Processus simplifié d utilisation d une messagerie (b) La transition connecter est remplacée par un sous-réseau de Petri Figure 7: Réseau de Petri modélisant le processus d utilisation d une messagerie 4.1 Spécifications modales sur un WF-Net Les spécifications modales dans un réseau de Petri correspondent à une propriété désirée lors de l exécution de ce réseau. Par exemple, dans le cas du réseau de Petri de la figure 7, on pourrait exprimer les souhaits suivants : 1. La transition connecter doit être déclenchée lors de chaque exécution valide du réseau 2. La transition consulter doit être déclenchée dans au moins une exécution valide du réseau 15

Pour exprimer ces propriétés, on distingue deux types de transitions : Les must-transitions qui doivent être déclenchées dans toutes les exécutions valides du réseau Les may-transitions qui doivent être déclenchées dans au moins une exécution valide du réseau Exemple 13 La transition connecter devient une must-transition dans le cas de la première propriété : elle doit être déclenchée lors de toutes les exécutions valide du réseau de Petri PN. On écrit P N = must connecter. La transition consulter devient une may-transition : elle doit être déclenchée dans au moins une des exécutions valides de PN. On écrit P N = may consulter. Pour augmenter le pouvoir d expression des spécifications modales, Bride et al. [214] propose de combiner plusieurs transitions par le biais des connecteurs logiques classiques, et. Ainsi, on peut désormais exprimer des propriétés plus intéressantes. Dans le cas de la figure 7a, elles pourraient être les suivantes : Pour se connecter, l utilisateur doit entrer son pseudonyme et son mot de passe puis valider : P N = must ( connecter valider) ( valider (pseudo mdp)) Si l utilisateur a consulté ses messages à un moment donné, alors il s est également connecté : P N = must consulter connecter L utilisateur peut ne pas consulter ses messages s il s est connecté : P N = may consulter connecter L utilisateur doit se déconnecter après chaque utilisation s il s est connecté : P N = must connecter deconnecter A noter que la notion de précédence n est pas exprimée par ces formules logiques. Dans le cas de la seconde propriété par exemple, on ne peut pas spécifier que l utilisateur peut consulter ses messages après s être connecté comme le voudrait la logique. On peu uniquement spécifier que s il a consulté ses messages au cours d une exécution du processus, il s est également connecté lors de cette exécution. Dans le cas de spécifications modales dans lesquelles plusieurs transitions sont impliquées dans la formule logique, on parle de may-formules et must-formules plutôt que de may-transitions et must-transitions. Une must-formule est vérifiée si et seulement si elle est vraie pour toutes les exécutions valides du WF-Net. Une may-formule est vérifiée si et seulement si elle est vraie pour au moins une exécution valide du WF-Net. 16

4.2 Vérification de spécifications modales sur un WF-Net Comme nous l avons vu dans la section 3, les solveurs PSC et SMT sont des outils adaptés à la résolution de formules logiques : un solveur PSC permet de proposer une solution à la formule (si elle existe) en assignant des valeurs aux variables qui la composent, et un solveur SMT permet de déterminer simplement si la formule est satisfiable ou non vis-à-vis d une certaine théorie. Dans le cadre de l étude qui nous concerne, il faut vérifier que les formules qui constituent les spécifications sont valides pour toutes ou pour au moins une exécution valide d un WF-Net. La nécessité de générer cet ensemble d exécutions valides (donc l ensemble des séquences valides de transitions du WF-Net) et d automatiser cette génération est donc évidente. 4.2.1 Modélisation des séquences de transitions potentiellement valides On propose de modéliser l ensemble des séquences de transitions valides d un WF-Net à l aide de son équation d états (voir définition 8). La version de cette équation proposée par Bride et al. [214] permet de connaître les places mises en jeu lors de l exécution de la séquence de transition. Par la suite, nous utiliserons donc l équation d états donnée dans la définition suivante. Définition 14 Pour un WF-Net PN = (P, T, F, W), son équation d état peut être modélisée par le système de contraintes suivant : avec : ϕ(p N, Ma, Mb) : p P, ν(p) = t p ν(t) + Ma = t p ν(t) + Mb ν : P T N une fonction de valuation avec respectivement : Pour chaque transition t T, ν(t) correspond au nombre d occurrences de t dans la séquence de transitions considérée Pour chaque place p P, ν(p) correspond à la somme des marquages successifs de p au cours de l exécution de la séquence de transitions considérée Ma le marquage du réseau avant le déclenchement de la séquence de transitions Mb le marquage du réseau après le déclenchement de la séquence de transitions Cette équation indique que le nombre de jetons entrant dans une place additionné au nombre de jetons qu elle contient initialement est le même que le nombre de jetons quittant cette place additionné au nombre de jetons qu elle contient après le déclenchement d une séquence de transitions. Exemple 14 Dans le cas du WF-Net PN représenté dans la figure 8, la fonction de valuation ν suivante vérifie la contrainte ϕ(p N, i, o) et la séquence de transitions { correspondante est valide : 1, if n {i, connecter, deconnecter, o} ν(n) = 5, if n {p2, consulter} 17

En revanche, si on trouve une fonction de valuation vérifiant la formule ϕ(p N, Ma, Mb) proposée dans la définition 14, la séquence de transitions correspondante n est pas forcément valide. Figure 8: Un WF-Net particulier Exemple 15 Dans le cas du WF-Net PN2 représenté dans la figure 8, la fonction de valuation ν suivante vérifie la contrainte ϕ(p N2, i, o) mais la séquence de transitions { correspondante n est pas valide : 1, if n {i, t, p1, p2, t1, t2, p3, p4, p5, t3, o} ν(n) = 2, if n {p3} En effet, on a bien : ν(i) = 1 + = + ν(t) = 1 ν(p1) = + ν(t) = + ν(t1) = 1 ν(p2) = + ν(t) = + ν(t2) = 1 ν(p3) = + ν(t1) + ν(t2) = + ν(t1) + ν(t2) = 2 ν(p4) = + ν(t1) = + ν(t3) = 1 ν(p5) = + ν(t2) = + ν(t3) = 1 ν(o) = + ν(t3) = 1 + = 1 La formule ϕ(p N2, i, o) est donc bien satisfaite par la fonction de valuation ν. En revanche, la séquence de transitions correspondante (σ = t, t1, t2, t3) n est pas valide car après avoir déclenché t, le marquage atteint est M = p1 + p2, et le réseau ne peut plus progresser dans ce marquage : aucune transition n est active. 18

4.2.2 Élimination des séquences de transitions invalides Le système de contraintes ϕ(p N, Ma, Mb) ne suffit donc pas pour modéliser uniquement les séquences de transitions valides permettant, dans un réseau de Petri PN, d atteindre un marquage Mb depuis un marquage Ma. Pour palier ce problème, Bride et al. [214] propose de ne plus tenir compte des exécutions formant un siphon ou un piège. En effet, une des propriétés intéressantes des WF-Net est que lorsque la place o est marquée, alors toutes les autres places du réseau doivent être vides (par définition d un WF-Net). Or, un piège marqué lors de l exécution d un réseau de Petri reste marqué. Ainsi, si le WF-Net considéré est composé d un piège (sans prendre en compte les places i et o), ce piège ne doit jamais être marqué, sans quoi si la place o vient a être marqué au cours de l exécution, le piège sera toujours marqué. Les exécutions mettant en jeu un piège ne peuvent donc pas correspondre à une exécution valide d un WF-Net. En plus du système de contraintes ϕ(p N, Ma, Mb), on ajoute donc le système de contraintes θ proposé dans Bride et al. [214] qui permet de vérifier si le WF-Net PN considéré contient un siphon (donc un piège). On élimine grâce à cette contrainte les exécutions invalides de celles obtenues avec le système de contraintes ϕ. Définition 15 En vérifiant la satisfaisabilité du système de contraintes suivant pour un réseau de Petri, on peut conclure sur la présence d un siphon dans ce réseau : avec : θ(p N) : p P, t p, p t ξ(p ) ξ(p) p P ξ(p) > ξ : P {, 1} une fonction de valuation En vérifiant la satisfaisabilité du système de contraintes ϕ sur un réseau de Petri PN = (P, T, F, W), on peut énumérer un ensemble V de valuations correspondant à des séquences de transitions en accord avec l équation d état de ce réseau. Mais ces valuations peuvent inclure des exécutions invalides, notamment celles pour lesquelles les places utilisées forment un piège ou un siphon. Pour les éliminer, on vérifie donc la satisfaisabilité de θ sur le sous-réseau de Petri spn de la définition 16. Définition 16 Soient un réseau de Petri PN = (P, T, F) et une valuation ν satisfaisant ϕ(p N, Ma, Mb) où Ma et Mb sont deux marquages quelconques de PN. Le sous-réseau de Petri spn = (sp, st, sf) est défini par : sp = {p P \i, o ν(p) > } st = {t T ν(t) > } sf = {(n1, n2) F n1 (sp st ) n2 (sp st )} Si le système de contraintes θ est satisfiable pour le sous-réseau de Petri spn(ν), avec ν V, alors la séquence de transitions correspondant à la valuation ν ne constitue pas une exécution valide du réseau car elle met en jeu un siphon. 19

Malgré cette étape dite de raffinement, il est toujours possible que des séquences de transitions invalides soient générées, et ce même avec les deux systèmes de contraintes ϕ et θ. En effet, l ordre dans lequel les transitions sont déclenchées n est pas pris en compte dans ces systèmes. Bride et al. [214] propose pour cela de découper chaque séquence de transition en segments d exécution. Définition 17 Pour un WF-Net PN = (P, T, F, W) de marquage initial Ma, un segment d exécution est une valuation ν menant PN dans un marquage Mb et telle que : où : SAT (ϕ(p N, Ma, Mb), ν) UNSAT (θ(sp N), ν) n P T, ν(n) 1 SAT (f, ν) est vraie si la formule f est satisfaite par la valuation ν UNSAT (f, ν) est vraie si la formule f n est pas satisfaite par la valuation ν Autrement dit, on ne considère que des successions de séquences de transitions telles que les transitions qu elles mettent en jeu ne sont déclenchées qu une fois au maximum et les places visitées au cours de l exécution d une séquence sont marquées d au plus un jeton. Exemple 16 Dans le cas du WF-Net de la figure 7b, les séquences de transitions σ suivantes correspondent à des segments d exécution : σ = split, pseudo, mdp, valider σ = split, pseudo, mdp, valider, deconnecter σ = split, pseudo, mdp, valider, consulter, deconnecter En revanche, les séquences de transitions σ suivantes ne correspondent pas à des segments d exécution : σ = split, pseudo, valider (ϕ n est pas satisfiable car la transition mdp n est pas déclenchée) σ = split, pseudo, mdp, valider, consulter, consulter, consulter, deconnecter (La transition consulter est déclenchée plusieurs fois) Dans la dernière séquence de transitions σ =split, pseudo, mdp, valider, consulter, consulter, consulter, deconnecter, la transition consulter est déclenchée trois fois. Ainsi, la somme des marquages successifs de la place p7 devient 1 + 3 (la transition valider apporte un jeton à p7 et le déclenchement de la transition consulter à trois reprises lui en apporte 3. Il ne s agit donc pas d un segment d exécution. Mais elle n en demeure pas moins une séquence de transitions (et donc une exécution) valide du WF-Net de la figure 7b. Il s agit donc à présent de représenter une exécution valide par une succession de segments d exécution. 2

Exemple 17 Dans le cas du WF-Net de la figure 7b, la séquence de transitions σ = split, pseudo, mdp, valider, consulter, consulter, consulter, deconnecter est une séquence de transitions valide menant du marquage Ma = i au marquage Mb = o, mais ne constitue pas un segment d exécution. On décompose donc cette séquence en plusieurs segments d exécution σ: σ 1 = split, pseudo, mdp, valider, consulter (M 1 = p6 + p7) σ 2 = consulter (M 2 = p6 + p7) σ 3 = consulter, deconnecter (M 3 = Mb = o) Le découpage précédent propose une exécution composée de 3 segments. Il est possible de décomposer la séquence de transitions σ en plus de 3 segments : σ 1 = split, pseudo, mdp (M 1 = p4 + p5) σ 2 = valider, consulter (M 2 = p6 + p7) σ 3 = consulter (M 3 = p6 + p7) σ 4 = consulter (M 4 = p6 + p7) σ 5 = deconnecter (M 5 = Mb = o) Dans la suite de ce rapport, on reprend la notation proposée par Bride et al. [214] pour modéliser une exécution composée de k segments d exécution (k N\{}) menant un réseau de Petri PN d un marquage Ma à un marquage Mb : φ(p N, Ma, Mb, k) Ainsi, pour modéliser une exécution correcte d un WF-Net composée de k segments (le menant donc d un marquage initial Mi = i à un marquage Mo = o), on notera : φ(p N, i, o, k) 4.2.3 Vérification de spécifications modales sur les séquences d exécution valides Une fois que l ensemble des exécutions valides d un réseau de Petri est déterminé, il est possible de vérifier les spécifications modales portant sur ce réseau. Puisqu il s agit en réalité de vérifier ou non l existence de transitions dans au moins une ou dans toutes les exécution valides du réseau de Petri, et puisque les segments d exécution indiquent quelles transitions ont été déclenchées au cours d une exécution, il suffit de ré-exprimer les spécifications modales de sorte qu elles puissent être vérifiées sur des segments d exécution. Si la valuation d une transition est non nulle dans un segment d exécution, cela signifie qu elle a été déclenchée. 21

On propose de reprendre dans cet exemple quelques spécifications modales proposées dans l exemple 13 en ajoutant le système de contraintes équivalent pouvant être vérifié sur des segments d exécution (ici, ν est une valuation correspondant à une exécution valide du réseau de Petri considéré) : L utilisateur doit se déconnecter après chaque utilisation s il s est connecté : devient : P N = must connecter deconnecter P N = must ν(connecter) > ν(deconnecter) > (P1) L utilisateur peut ne pas consulter ses messages s il s est devient : P N = may consulter connecter P N = may ν(consulter) > ν(connecter) > (P2) P1 est une must-formule. Ainsi, elle doit être vérifiée pour toutes les séquences de segments. On prend donc une séquence dans l ensemble des exécutions valides du WF-Net considéré, et on vérifie que la valuation de la transition connecter est égale à zéro dans tous les segments (ce qui revient à dire que l utilisateur ne s est pas connecté au cours de l exécution), ou que la transition deconnecter possède une valuation positive dans au moins un segment (ce qui signifie que l utilisateur s est déconnecté au cours de l exécution). Si la séquence choisie vérifie ces propriétés, on effectue la même vérification avec toutes les autres exécutions valides. Si une séquence choisie ne vérifie pas les propriétés, alors la must-formule n est pas vérifiée. P2 est une may-formule. Ainsi, elle doit être vérifiée pour au moins une séquence de segments. On prend donc une séquence dans l ensemble des exécutions valides du WF-Net considéré, et on vérifie que la valuation de la transition consulter est égale à zéro dans tous les segments (ce qui revient à dire que l utilisateur n a pas consulté ses messages au cours de l exécution), et que la transition connecter possède une valuation positive dans au moins un segment (ce qui signifie que l utilisateur s est connecté au cours de l exécution). Si la séquence choisie vérifie ces propriétés, alors la may-formule est vérifiée. Si ce n est pas le cas, on effectue la même vérification avec une autre exécution valide. Si aucune des exécutions valides ne vérifie les propriétés, la may-formule n est pas vérifiée. Ainsi, pour vérifier une may-formule MF sur un WF-Net PN de marquage initial Mi et de marquage final Mo, on doit vérifier le système de contraintes suivant : ν V, k N, SAT (φ(p N, Mi, Mo, k) MF (ν), ν) UNSAT (θ(sp N(ν))) 22

Pour vérifier une must-formule mf sur un WF-Net PN de marquage initial Mi et de marquage final Mo, le système de contraintes à vérifier est le suivant : ν V, k N, SAT (φ(p N, Mi, Mo, k) mf (ν), ν) UNSAT (θ(sp N(ν))) Ici, le système de contrainte ne prend en compte que les valuations correspondant à des exécutions valides du WF-Net PN et vérifie ensuite si cette valuation satisfait la may-formule ou la must-formule. 5 Méta-modèle pour les spécifications modales et la génération de code permettant de les vérifier Le premier objectif de ce projet de recherche est de proposer un méta-modèle permettant la modélisation de l exécution d un réseau de Petri de type WF- Net par segments, ainsi que la modélisation des spécifications modales à vérifier sur ce réseau. Ce méta-modèle doit permettre de générer automatiquement le code source qui sera soumis en entrée d un solveur PSC et d un prouveur SMT afin qu ils valident ou invalident ces spécifications. Le second objectif est de comparer les performances des deux outils en terme de temps et de ressources matérielles lors de l exécution des programmes générés. 5.1 Méta-modèles Dans cette section, nous proposons dans premier temps deux méta-modèles sous forme de diagramme UML 1 permettant de modéliser respectivement un réseau de Petri, notamment ceux de type WF-Net avec des spécifications modales, et l ensemble des spécifications modales vérifiables avec la technique proposée. 5.1.1 Méta-modèle pour les réseaux de Petri et les WF-Net Le méta-modèle de la figure 9 s inspire d autres méta-modèles notamment proposés pour des outils de génération de code tels qu ATL 2. Dans les articles proposant un méta-modèle pour les WF-Net, il est souvent question d utiliser le langage de modélisation PNML 3 qui se présente comme un standard pour les logiciels effectuant des traitements sur les réseaux de Petri. Dans le cadre de notre étude, l outil utilisé pour modéliser les réseaux de Petri sur lequels on souhaite effectuer les vérifications est PIPE sur Linux. Ce dernier produit un fichier de sortie au format XML qui correspond au standard PNML. Le principal défaut de PNML est qu il ne permet pas de différencier les places spéciales d un WF-Net, ni de modéliser ses exécutions par segments. Les places i et o d un WF-Net sont particulières notamment dans le cadre de la démarche de vérification proposée : elles permettent entre autres de modéliser le sous réseau de Petri spn vu en section 4.2.2 permettant la détection de siphons 1 UML : Unified Modeling Language 2 Méta-modèle de réseaux de Petri pour ATL : http://www.eclipse.org/atl/usecases/simplepdl2tina/ 3 PNML : Petri Net Markup Language 23

dans un WF-Net. En revanche, ces places peuvent être déterminées assez simplement car la place i est celle qui ne possède pas de preset, et la place o celle qui ne contient pas de postset. Le méta-modèle proposé en figure 9 permet de modéliser un WF-Net. Il permet en l état actuel des choses de générer une partie du code de vérification pour les solveurs SMT et CSP par le biais d outils de transformation de modèles. L outil utilisé dans ce cas est Acceleo. Le code partiel a été généré pour les deux types de solveurs (SMT et CSP). On produit donc à partir d un modèle de WF- Net correspondant au méta-modèle de la figure 9 du code Prolog (pour solveur CSP) et SMT-LIB (pour solveurs SMT). Figure 9: Méta-modèle pour la représentation d un WF-Net 5.1.2 Méta-modèle pour les spécifications modales Le méta-modèle proposé en figure 1 est principalement inspiré par les travaux de van der Aalst [1998] qui propose des portions de réseaux de Petri permettant des propriétés particulières : l exécution séquentielle d activités (et donc de transitions) au cours du processus, l exécution soit d une activité, soit d une autre (éventuellement de manière exclusive), l exécution d une activité et d une autre en parallèle, l exécution d une activité sous certaines conditions, etc. Une instance de l entité Specification modélise soit une may-formule, soit une must-formule parmi les spécifications à modéliser. L objectif est d obtenir un méta-modèle qui permette d exprimer toutes les spécifications vérifiables par le procédé étudié dans ce rapport. On explique ci-dessous le principe modélisé par les entités exposées dans le méta-modèle : Specification : il s agit d une specification modale (une may-formule ou une must-formule) composée formules logiques (entité Formula). Formula : représente une formule logique du premier ordre (soit une unique transition faisant office du seul prédicat de la formule, soit une expression logique composée d opérateurs logiques du premier ordre,,, = ). Transition : il s agit d un symbole terminal dans une formule (si son attribut negated vaut true, cela signifie qu on souhaite que la transition soit déclenchée, si il vaut false, cela signifie que l on souhaite qu elle ne soit pas déclenchée). 24

Figure 1: Méta-modèle pour la représentation de spécifications modales Implication : elle permet de représenter une condition logique (opérateur = ). Si sa condition est vérifiée dans une exécution, alors sa conséquence doit également être vérifiée au cours de cette exécution. Conjunction et Disjunction : elles permettent respectivement de modéliser des conjonctions et des disjonctions logiques entre des formules. Chacune d elle possède deux children qui correspondent à l opérande gauche et l opérande droite de l opérateur logique. Exemple 18 On propose un exemple de spécification pour le réseau de Petri de la figure 1 avec sa représentation en notation xmi valide vis-à-vis du métamodèle proposé en figure 9 : si l utilisateur valide la connexion (transition valider ), alors il doit également se déconnecter (transition deconnecter ); de plus, l utilisateur doit toujours entrer son pseudonyme et son mot de passe. La spécification modale correspondante pourrait être P N = must (valider = deconnecter) pseudo mdp. <?xml version="1." encoding="utf-8"?> <specifications:specification type="must"> <formulas xsi:type="specifications:conjunction"> <children xsi:type="specifications:implication"> <consequence xsi:type="specifications:transition" name="deconnecter"/> <condition xsi:type="specifications:transition" name="valider"/> </children> <children xsi:type="specifications:conjunction"> <children xsi:type="specifications:transition" name="mdp"/> <children xsi:type="specifications:transition" name="pseudo"/> </children> </formulas> </specifications:specification> 25