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

Dimension: px
Commencer à balayer dès la page:

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

Transcription

1 Transformation de modèles pour validation de processus métier Guillaume Voiron February 4, 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

2 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

3 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 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

4 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) = = 4

5 M (p5) = M(p5) W (p5, valider) + W (valider, p5) = = 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 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

6 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 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

7 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 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 p p3 [N] = +1 1 p p 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 ( ) σ = 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

8 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 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 = = = 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

9 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 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

10 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 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

11 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

12 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] [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 = 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

13 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) 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

14 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) 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 = 6 et = 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) 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

15 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

16 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

17 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 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

18 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

19 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

20 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 (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

21 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) 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

22 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

23 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 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 permettant la détection de siphons 1 UML : Unified Modeling Language 2 Méta-modèle de réseaux de Petri pour ATL : 3 PNML : Petri Net Markup Language 23

24 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 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

25 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

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

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language Unified Modeling Language UML Salima Hassas Version Cycle de vie du logiciel Client Besoins Déploiement Analyse Test Conception Cours sur la base des transparents de : Gioavanna Di Marzo Serugendo et Frédéric

Plus en détail

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

Plus en détail

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

Modèles à Événements Discrets. Réseaux de Petri Stochastiques Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés

Plus en détail

UML (Paquetage) Unified Modeling Language

UML (Paquetage) Unified Modeling Language UML (Paquetage) Unified Modeling Language Sommaire Introduction Objectifs Paquetage Espace de nommage d un paquetage Dépendances entre paquetages 2 Notion introduite véritablement par UML car superficiellement

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

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

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools. 1- RAD Quelle sont les avantages que apporte la méthode RAD à l entreprise? Une méthode RAD devrait, d après son auteur, apporter trois avantages compétitifs à l entreprise : Une rapidité de développement

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10.

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. A1 Trouvez l entier positif n qui satisfait l équation suivante: Solution 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. En additionnant les termes du côté gauche de l équation en les mettant sur le même dénominateur

Plus en détail

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

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

Plus en détail

Les diagrammes de modélisation

Les diagrammes de modélisation L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse

Plus en détail

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

Les processus métiers : concepts, modèles et systèmes Les processus métiers : concepts, modèles et systèmes Organisation du cours Concepts et notations Modélisation des processus Systèmes de gestion de processus Processus transactionnels Découverte de processus

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail

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

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013 UML Diagramme de communication (communication diagram) 2013 Diagramme de communication (communication diagram) Utilisation / objectifs Sens Ce diagramme présente des objets, des acteurs, des liens et des

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

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

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML Olivier Glassey Jean-Loup Chappelet Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML Working paper de l'idheap 14/2002 UER: Management public / Systèmes d'information

Plus en détail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Resolution limit in community detection

Resolution limit in community detection Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) PLANIFICATION DE TÂCHES DANS MS PROJECT IFT702 Planification en intelligence artificielle Présenté à M. Froduald KABANZA

Plus en détail

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

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

Annexe 6. Notions d ordonnancement.

Annexe 6. Notions d ordonnancement. Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document

Plus en détail

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

1 Définition et premières propriétés des congruences Université Paris 13, Institut Galilée Département de Mathématiques Licence 2ème année Informatique 2013-2014 Cours de Mathématiques pour l Informatique Des nombres aux structures Sylviane R. Schwer Leçon

Plus en détail

Raisonnement probabiliste

Raisonnement probabiliste Plan Raisonnement probabiliste IFT-17587 Concepts avancés pour systèmes intelligents Luc Lamontagne Réseaux bayésiens Inférence dans les réseaux bayésiens Inférence exacte Inférence approximative 1 2 Contexte

Plus en détail

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1

Plus en détail

M1 : Ingénierie du Logiciel

M1 : Ingénierie du Logiciel M1 : Ingénierie du Logiciel UNIVERSITE PIERRE & MARIE CURIE (PARIS VI) Examen Réparti 2eme partie 16 Mai 2013 (2 heures avec documents : tous SAUF ANNALES CORRIGEES). Barème indicatif sur 20,5 points (max

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Intelligence Artificielle Planification

Intelligence Artificielle Planification Intelligence Artificielle Planification Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes

Plus en détail

UML (Diagramme de classes) Unified Modeling Language

UML (Diagramme de classes) Unified Modeling Language UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

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

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

Exercices de dénombrement

Exercices de dénombrement Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

Programmation par contraintes. Laurent Beaudou

Programmation par contraintes. Laurent Beaudou Programmation par contraintes Laurent Beaudou On se trouve où? Un problème, une solution : la solution est-elle une solution du problème? simulation, vérification 2 On se trouve où? Un problème, une solution

Plus en détail

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

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

Plus en détail

1 Introduction au codage

1 Introduction au codage CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles

Plus en détail

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

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

Plus en détail

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

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

Plus en détail

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

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières FONDEMENTS MATHÉMATIQUES 12 E ANNÉE Mathématiques financières A1. Résoudre des problèmes comportant des intérêts composés dans la prise de décisions financières. [C, L, RP, T, V] Résultat d apprentissage

Plus en détail

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

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

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

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct. 2012 (ajout de la section 3 et augmentation de la section 1) 1 Que signifient AON et AOA? Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct. 2012 (ajout de la section 3 et augmentation de la section 1) Sommaire 1. Concepts... 2 2. Méthode PCM appliquée

Plus en détail

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Fonctions de deux variables. Mai 2011

Fonctions de deux variables. Mai 2011 Fonctions de deux variables Dédou Mai 2011 D une à deux variables Les fonctions modèlisent de l information dépendant d un paramètre. On a aussi besoin de modéliser de l information dépendant de plusieurs

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Rapport d'analyse des besoins

Rapport d'analyse des besoins Projet ANR 2011 - BR4CP (Business Recommendation for Configurable products) Rapport d'analyse des besoins Janvier 2013 Rapport IRIT/RR--2013-17 FR Redacteur : 0. Lhomme Introduction...4 La configuration

Plus en détail

Exercices sur le chapitre «Probabilités»

Exercices sur le chapitre «Probabilités» Arnaud de Saint Julien - MPSI Lycée La Merci 2014-2015 1 Pour démarrer Exercices sur le chapitre «Probabilités» Exercice 1 (Modélisation d un dé non cubique) On considère un parallélépipède rectangle de

Plus en détail

L apprentissage automatique

L apprentissage automatique L apprentissage automatique L apprentissage automatique L'apprentissage automatique fait référence au développement, à l analyse et à l implémentation de méthodes qui permettent à une machine d évoluer

Plus en détail

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

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

Pourquoi archiver les emails

Pourquoi archiver les emails Pourquoi archiver les emails Objectif du document Ce document a pour objectif d'expliquer la nécessité et le bien-fondé de l'archivage des emails. Il a été écrit par Alain Heurtebise, Directeur Général

Plus en détail

Algèbre binaire et Circuits logiques (2007-2008)

Algèbre binaire et Circuits logiques (2007-2008) Université Mohammed V Faculté des Sciences Département de Mathématiques et Informatique Filière : SMI Algèbre binaire et Circuits logiques (27-28) Prof. Abdelhakim El Imrani Plan. Algèbre de Boole 2. Circuits

Plus en détail

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

TSTI 2D CH X : Exemples de lois à densité 1 TSTI 2D CH X : Exemples de lois à densité I Loi uniforme sur ab ; ) Introduction Dans cette activité, on s intéresse à la modélisation du tirage au hasard d un nombre réel de l intervalle [0 ;], chacun

Plus en détail

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

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

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

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

Plus en détail

Préparation à l examen EFA en Macro

Préparation à l examen EFA en Macro Préparation à l examen EFA en Macro Exercice sur les macros en Word / Excel Les questions suivantes doivent constituer un bref rafraîchissement et vous aider à situer le niveau de vos connaissances : Question

Plus en détail

MEGA ITSM Accelerator. Guide de Démarrage

MEGA ITSM Accelerator. Guide de Démarrage MEGA ITSM Accelerator Guide de Démarrage MEGA 2009 SP4 1ère édition (juin 2010) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune

Plus en détail

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

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

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

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

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

FIMA, 7 juillet 2005

FIMA, 7 juillet 2005 F. Corset 1 S. 2 1 LabSAD Université Pierre Mendes France 2 Département de Mathématiques Université de Franche-Comté FIMA, 7 juillet 2005 Plan de l exposé plus court chemin Origine du problème Modélisation

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

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

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2 Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................

Plus en détail

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

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

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

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal La demande Du consommateur Contrainte budgétaire Préférences Choix optimal Plan du cours Préambule : Rationalité du consommateur I II III IV V La contrainte budgétaire Les préférences Le choix optimal

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

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

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

Plus en détail

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

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre : Terminale STSS 2 012 2 013 Pourcentages Synthèse 1) Définition : Calculer t % d'un nombre, c'est multiplier ce nombre par t 100. 2) Exemples de calcul : a) Calcul d un pourcentage : Un article coûtant

Plus en détail

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

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures) CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE Cinquième épreuve d admissibilité STATISTIQUE (durée : cinq heures) Une composition portant sur la statistique. SUJET Cette épreuve est composée d un

Plus en détail

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

Seconde Généralités sur les fonctions Exercices. Notion de fonction. Seconde Généralités sur les fonctions Exercices Notion de fonction. Exercice. Une fonction définie par une formule. On considère la fonction f définie sur R par = x + x. a) Calculer les images de, 0 et

Plus en détail

LES DECIMALES DE π BERNARD EGGER

LES DECIMALES DE π BERNARD EGGER LES DECIMALES DE π BERNARD EGGER La génération de suites de nombres pseudo aléatoires est un enjeu essentiel pour la simulation. Si comme le dit B Ycard dans le cours écrit pour le logiciel SEL, «Paradoxalement,

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

données en connaissance et en actions?

données en connaissance et en actions? 1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)

Plus en détail

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

Mathcad 15.0. Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde. Mathcad 15.0 Création et documentation de calculs techniques Grâce à Mathcad, plus de 250 000 professionnels dans le monde peuvent effectuer, documenter, gérer et partager des calculs et des tâches de

Plus en détail

Conception, architecture et urbanisation des systèmes d information

Conception, architecture et urbanisation des systèmes d information Conception, architecture et urbanisation des systèmes d information S. Servigne Maître de Conférences, LIRIS, INSA-Lyon, F-69621 Villeurbanne Cedex e-mail: sylvie.servigne@insa-lyon.fr 1. Introduction

Plus en détail

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

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication

OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication Statut du Committee Working Draft document Titre XACML Language Proposal, version 0.8 (XACML : XML Access Control Markup Language) Langage de balisage du contrôle d'accès Mot clé Attestation et sécurité

Plus en détail

Utilisation des tableaux sémantiques dans les logiques de description

Utilisation des tableaux sémantiques dans les logiques de description Utilisation des tableaux sémantiques dans les logiques de description IFT6281 Web Sémantique Jacques Bergeron Département d informatique et de recherche opérationnelle Université de Montréal bergerja@iro.umontreal.ca

Plus en détail

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL LA DÉCOUPE MVC (MODEL VIEW CONTROL) Imaginez la programmation en Python d un petit menu d une application visible sur la figure A.1. Lorsqu on clique sur un

Plus en détail

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

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Travailler avec les télécommunications

Travailler avec les télécommunications Travailler avec les télécommunications Minimiser l attrition dans le secteur des télécommunications Table des matières : 1 Analyse de l attrition à l aide du data mining 2 Analyse de l attrition de la

Plus en détail

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

Analyse des coûts. 1 ère année DUT GEA, 2005/2006 Analyse des coûts Analyse des coûts Les techniques de calcul et d analyse des coûts portent le nom de comptabilité analytique ou comptabilité de gestion. Ces deux termes seront utilisés indifféremment dans ce cours. Contrairement

Plus en détail

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

Architecture d'entreprise : Guide Pratique de l'architecture Logique Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam

Plus en détail

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

Plus en détail

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..

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.. 1 Définition GÉNÉRALITÉS Statique 1 2 Systèmes matériels et solides Le système matériel : Il peut être un ensemble.un sous-ensemble..une pièce mais aussi un liquide ou un gaz Le solide : Il est supposé

Plus en détail

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

Plan. 5 Actualisation. 7 Investissement. 2 Calcul du taux d intérêt 3 Taux équivalent 4 Placement à versements fixes. Plan Intérêts 1 Intérêts 2 3 4 5 6 7 Retour au menu général Intérêts On place un capital C 0 à intérêts simples de t% par an : chaque année une somme fixe s ajoute au capital ; cette somme est calculée

Plus en détail

TUTORIAL Microsoft Project 2010 Fonctionalités de base

TUTORIAL Microsoft Project 2010 Fonctionalités de base TUTORIAL Microsoft Project 2010 Fonctionalités de base Microsoft Project est un logiciel de la suite Microsoft Office. Il s agit d un logiciel de gestion de projet et plus précisement de gestion de planning

Plus en détail

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

Les nombres entiers. Durée suggérée: 3 semaines Les nombres entiers Durée suggérée: 3 semaines Aperçu du module Orientation et contexte Pourquoi est-ce important? Dans le présent module, les élèves multiplieront et diviseront des nombres entiers concrètement,

Plus en détail

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

Correction du baccalauréat ES/L Métropole 20 juin 2014 Correction du baccalauréat ES/L Métropole 0 juin 014 Exercice 1 1. c.. c. 3. c. 4. d. 5. a. P A (B)=1 P A (B)=1 0,3=0,7 D après la formule des probabilités totales : P(B)=P(A B)+P(A B)=0,6 0,3+(1 0,6)

Plus en détail

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

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH

Plus en détail

Model checking temporisé

Model checking temporisé Model checking temporisé Béatrice Bérard LAMSADE Université Paris-Dauphine & CNRS berard@lamsade.dauphine.fr ETR 07, 5 septembre 2007 1/44 Nécessité de vérifier des systèmes... 2/44 Nécessité de vérifier

Plus en détail