IFT 2251 Génie Logiciel La Modélisation du Comportement Hiver 2002 Petko Valtchev
Sommaire L’activité de modélisation Le début de la modélisation La méthode d’analyse structurée
Éléments du Modèle d’AS entité-association Diagramme de flot de données Diagramme état-transition Description des données Spécification des processus (PSPEC) du contrôle (CSPEC) Dictionnaire
Sommaire L’activité de modélisation Le début de la modélisation La méthode d’analyse structurée Le modèle entité-association (E-A) Les diagrammes de flot de données (DFD) Les diagrammes d’état-transition (E-T) Dictionnaire des données (DdD)
Modéliser le Comportement événements comportement Application Monde extérieur
Diagramme d’État-Transition Notation état évènement à l’origine de la transition action nouvel état
Contrôle dans les DFD Souvent, il est plus naturel d’inclure des informations sur le comportement du système au niveau du modèle fonctionnel (le DFD). Pour chaque processus non primitif (quelque soit son niveau dans la décomposition hiérarchique du modèle), on peut définir une spécification du contrôle (CSPEC). Celle-ci décrit la manière d’activer les flots de données alternatifs dans la décomposition du processus en fonction des informations de contrôle (évènements externes et internes). Une CSPEC peut contenir: Un diagramme É-T, Une table état-transition, Une ou plusieurs tables de décision, Une table d’activation de processus.
Extensions de Ward & Mellor Un DFD d’après Ward & Mellor modélise simultanément le flot de contrôle et des processus de contrôle (n’apparaît pas dans les DFD classiques). Les éléments du DFD étendu sont : les flots de données et les processus classiques, représentés par des flèches et par des cercles standard. les flots de données produites en temps continu; ils sont représentés par des flèches à tête double. les flots de contrôle sont représentés par des flèches pointillées. les processus qui ne sont destinés qu’à contrôler le système sont des processus de contrôle; ils sont représentés par des cercles en pointillés. Les processus de contrôle sont décrits par des spécifications de contrôle (CSPEC).
Ward & Mellor (exemple) Observe PH Arrêter Valeur PH Ok Démarrer Contrôle PH On/Off Source de PH Change PH On/Off CSPEC: diag. état-transition table d’activation de processus On/Off Maintient PH Contrôle valve Contrôle valve …
Ext. de Hatley & Pirbhai Un diagramme de flot de contrôle (CFD) est construit à partir d’un diagramme de flot de données (DFD). Il précise la manière dont les processus du DFD sont coordonnés. Les processus du DfD sont présents, alors que toutes les flèches indiquant les flots de données sont retirées. Le flot de contrôle est indiqué par une flèche en pointillés. Celle-ci peut être : étiquetée par l’événement ou l’information de contrôle dirigée ou issue d’un processus ou d’une CSPEC. Une spécification de contrôle est représentée par une barre verticale. Chaque barre verticale constitue une « fenêtre » sur la CSPEC. Les flèches de flot de contrôle n’indiquent pas d’activation/désactivation de processus.
Hatley & Pirbhai (exemple) État de l’alimentation en papier (bourrage, vide) Alarme Faire les copies Lire entrée de l’opérateur Démarrer/ Arrêter Afficher info utilisateur Diagnostiquer le problème Recharger le bac à papier Erreur de reproduction Plein
Sommaire L’activité de modélisation Le début de la modélisation La méthode d’analyse structurée Le modèle entité-association (E-A) Les diagrammes de flot de données (DFD) Les diagrammes d’état-transition (E-T) Le dictionnaire des données (DdD)
Dictionnaire des Données « Dictionnaire des données: décrit la designation, la structure, le contenu et l’utilisation de l’ensemble des informations manipulées par le système. » Le contenu des données que le système va recevoir, créer et/ou traiter est précisé sous la forme d’une grammaire quasi-formelle. Les informations de contrôle du système y sont également présente avec la totalité des valeurs qu’elles peuvent prendre. Le dictionnaire des données (DdD) représente un référentiel indiquant, entre autres où les données sont utilisées et comment elles sont utilisées. Il peut être rédigé manuellement, mais idéalement il est développé à l’aide d’un outil CASE
Contenu du Dictionnaire Nom: Le nom de base d’un élément des données, éventuellement composite. Alias: Autres noms pour l’élément de donnée. Où il est utilisé: Processus qui utilise cet élément de donnée. Comment il est utilisé: Le rôle de l’élément de donnée, (entrée, sortie, lieu de dépôt, etc.) Description: Une notation pour représenter le contenu de l’élément de donnée. Format: Information spécifique à propos du type de donnée, ses valeurs d’initialisation, etc.
Notation Notation Interprétation = est composé de + et [ ] ou { } [ ] ou n { } n répétitions de ( ... ) donnée optionnelle * ... text ...* commentaire
Dictionnaire (exemple) Integrated Office Phone System Numéro de téléphone Sortie système Dans le dictionnaire : Nom: telephone number Alias: phone number, number read-phone-number (input) Où/Comment utilisé: display-phone-number (output) analyze-long-distance-calls (input) Description: telephone no. = [ local extension | outside no. | 0 ] outside no. = 9 + [ service code | domestic no. ] service code = [ 211 | 411 | 611 | 911 ] domestic no. = ( ( 0 ) + area code ) + local number area code = *three numeral designator* Format: alphanumeric data
La Spécification du Logiciel Document de spécification produit suite à l’analyse structurée Intro: buts, objectifs, contexte. Modèle entité-relation. DFD (niveaux 0-n) & les PSPEC. Les CSPEC (diagrammes état-transition et tables d’activation de processus) Critères de validation. Dictionnaire des données.
AS, Vue d’Ensemble Vue des données: Modèle entité-relation. Décrit la structure des données manipulées, c’est-à-dire les éléments et les relations entre eux. Vue des traitements: Diagramme de flot de données. Représente l’ensemble des fonctions (processus) du système de façon hiérarchique: ensemble de niveaux, dans le sens du détail croissant. Décrit la circulation des données dans le système. Ne permet pas cependant de décrire le comportement du système ni le contrôle de l’activation des processus. Vue du comportement (contrôle) : CSPEC (diagramme d’état-transition, table d’activation de processus, etc.) Décrit le comportement du système et la coordination des processus (conditions d’activation d’un processus, ordre d’activation, etc.).
IFT 2251 Génie Logiciel Spécification de Processus Concurrents Hiver 2002 Petko Valtchev
Réseaux de Petri (Introduction) Formalisme graphique… Permet de modéliser le comportement dynamique d’un système discret. Permet de considérer la structure du système et l’évolution du flot de données. Permet de représenter les changements d’états et la causalité des événements que provoquent ces changements. Modèle opérationnel exprimant à la fois le flot de contrôle et le flot de données. Soutenu par des bases formelles.
Un réseau de Petri est composé: Éléments d’un Réseaux Un réseau de Petri est composé: d’un ensemble fini de places d’un ensemble fini de transitions d’un ensemble fini de flèches reliant - soit une place à une transition, - soit une transition à une place. p t
Étiquetage des Éléments Chaque place est étiquetée par son nom. Chaque transition est étiquetée par son nom. Une flèche peut être étiquetée d’un nombre entier (>1) indiquant le nombre d’occurrence de cette flèche, c’est-à-dire, le nombre de jetons nécessaires pour que la flèche soit « activée ». S’il n’y a pas d’étiquette, l’occurrence est 1, par défaut. t3 p1 p3 t1 3 2 p6 p2 p4 t2 p5
Un réseau de Petri est un quadruplet Définition Formelle P est un ensemble fini de places, T est un ensemble fini de transitions, Pre : P x T N est l’application « place d’entrée », Post : P x T N est l’application « place de sortie ». Un réseau de Petri est un quadruplet R = <P,T,Pre, Post> P= {p1,p2,p3,p4} ; T={t1,t2} Pre(p1,t1)= 2; Pre(p2,t1)=1 Pre(p3,t2)=1 Post(p3,t1)=1; Post(p4,t2)=1 Le reste: Post(pi,tj)=0 et Pre(pi,tj)=0 p1 t1 2 p2 t2 p3 p4
Précisions Terminologique Places d’entrée d’une transition t = places dont proviennent les flèches entrant de la transition. In(t) = {p P | Pre(p,t) > 0} Places de sortie d’une transition t = places vers lesquelles sont orientées les flèches qui sortent de la transition. Out(t) = {p P | Post(p,t) > 0} p1 In(t1)= {p1,p2} In(t2)= {p3} Out(t1)= {p3} Out(t2)= {p4} t1 2 p2 t2 p3 p4
Réseau Marqué Marquage M(p1)=3 M(p2)=1 M(p3)=1 M(p4)=0 M(p5)=0 M(p6)=0 On définit l’état d’un réseau de Petri en plaçant des jetons dans ses places. Chaque état est caractérisé par un marquage indiquant le nombre de jetons contenus par chaque place. Un marquage = Affectation d’un entier non-négatif à chaque place. R est un réseau de Petri <P,T,Pre, Post> M est un marquage, cad une application M : P N, M(p) est le nombre de jetons dans p P Un réseau marqué est un couple N = <R, M> Marquage M(p1)=3 M(p2)=1 M(p3)=1 M(p4)=0 M(p5)=0 M(p6)=0 t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2
Règles de Franchissement Une transition est dite « franchissable » si chacune de ses places d’entrée contient un nombre de jetons supérieur ou égal à celui indiqué sur la flèche correspondante. Une transition t est franchissable ssi p P, M(p) ³ Pre(p,t), ou alternativement, p In(t), M(p) ³ Pre(p,t), t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2
Franchissement (suite) Une transition franchissable peut être franchie (ou tirée). Lorsqu’une transition est franchie, des jetons des places d’entrée sont déplacés vers les places de sortie. Le nombre exact des jetons retirées/rajoutées pour une place donnée correspond à l’étiquette sur la flèche correspondante. Le franchissement d’une transition franchissable t transforme le marquage initial M en le nouveau marquage M’ tel que: p P, M’(p) = M(p) – Pre(p,t) + Post(p,t) p1 t3 p3 t1 3 2 p6 2 p4 p5 p2 t2
Non-déterminisme t2 ou t3 ? Si plus d’une transition est franchissable, le choix de la transition à franchir est non-déterministe. t2 ou t3 ? t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2
Séquence Franchissement Étant donnée un marquage initial d’un RdP, une séquence de franchissement est une suite de transitions franchies dans l’ordre, l’une après l’autre. Cette séquence est dénotée par une chaîne de transitions <t1, …, tn> telle que: t1 est franchissable depuis le marquage initial t2 est franchissable depuis le marquage obtenu par la tirée de t1, etc. t3 Séquences de franchissement possibles: <t1,t2> <t1, t3> <t3,t1> p1 p3 t1 3 2 p6 2 p4 p5 Mi <s> Mj p2 t2
Sémantique des Réseaux Un réseaux de Petri peut être interprété en termes de processus, d’actions et de ressources. Les transitions servent à modéliser les actions des processus. Les jetons représentent des ressources consommables. Le franchissement d’une transition représente l’exécution d’une action (consommation & production de ressources). Les flèches entrantes indiquent les conditions à satisfaire avant l’action (ressources nécessaires). Les flèches sortantes représentent les conditions à satisfaire après l’action (ressources à produire). La présence d’un jeton marque la satisfaction, partielle ou totale, d’une condition (i.e. présence d’une ressource).
Réseau de Petri Exemple Producteur-Consommateur Modélisez à l’aide d’un réseau de Petri l’exemple du producteur et du consommateur. Le producteur produit un objet et le dépose dans un bac. Le consommateur prend l’objet dans le bac et le consomme. 2. Faire le graphe des marquages accessibles.
Producteur-Consommateur Prêt-à-produire Prêt-à-prendre bac produit dépose prend consomme Prêt-à-déposer Prêt-à-consommer Producteur Consommateur
Modéliser la Concurrence La vie est dure… On doit partager les ressources et celles-ci s’épuisent… p1 p2 t1 p9 t2 p3 Famine? Interblocage? p4 t3 t4 p5 p6 2 2 t5 t6 t6 t6 p7 p8
Concurrence (structurelle effective) Transitions concurrentes : Paire de transitions dont le franchissement de l’une n’empêche pas celui de l’autre (quel que soit le marquage). N.b. Les réseau de Petri modélise la concurrence comme un entrelacement non-déterministe: a || b = a.b V b.a p1 p2 t1 p9 t2 t1 et t2 sont concurrentes … Mais pas t3 et t4 p3 p4 t3 t4 p5 p6
Réseaux de Petri Concurrence (structurelle et effective) Concurrence structurelle: Deux transitions t1 et t2 sont concurrentes structurellement si elles n’ont aucune place d’entrée commune i.e. In(t1) I In(t2) = { } Concurrence effective: Deux transitions t1 et t2 sont concurrentes (effectivement) pour un marquage donnée M ssi elles sont concurrentes structurellement et sont franchissables i.e. et pour tout p e P, M(p) ³ Pre(p,t1) et M(p) ³ Pre(p,t2)
Conflit (structurel et effectif) Transitions conflictuelles :Le franchissement de l’une des transitions empêche le franchissement de l’autre. p1 Si on tire t3, t4 n’est plus franchissable Le choix entre t3 et t4 est non déterministe. t3 et t4 sont conflictuelles t1 p9 t2 p3 p4 t3 t4 p5 p6
Réseaux de Petri Conflit (structurel et effectif) Conflit structurel: Deux transitions t1 et t2 sont en conflit structurel si elles ont au moins une place d’entrée en commun i.e. In(t1) I In(t2) = { } Conflit effectif: Deux transitions t1 et t2 sont en conflit effectif pour un marquage M ssi elles sont en conflit structurel et sont franchissables de façon exclusive i.e. pour tout p e P, M(p) ³ Pre(p,t1) et M(p) ³ Pre(p,t2) il existe un p e P, M(p) < Pre(p,t1) + Pre(p,t2)
Situation de Famine « Famine (starvation) : Un processus (une partie du réseau) est en situation de famine s’il se voit refuser l’accès à une ressource pendant un temps indéfini. » Le modèle des RP de base n’impose pas de politique pour résoudre les conflits et ordonnancer le franchissement des transitions. Il se peut donc qu’un processus (i.e. une partie du réseau) soit privé, pendant une période indéfinie, d’une ressource dont il a besoin car la séquence des transitions franchies ne lui permet jamais de consommer cette ressource. p1 Processus B t1 p9 t2 p3 p4 <t1,t2,t3,t1,t3,t1,t3,…> Séquence de franchissement non équitable. Processus B en famine! t3 t4 Processus A p5 p6
Situation d’Interblocage « Interblocage (deadlock) : un RP est dit être en situation d’interblocage lorsque, dans un marquage donné M, aucune transition n’est franchissable. » Cas typique: Privation mutuelle Le processus A est arrêté car il a besoin d’une ressource détenue par B. Or le processus B est arrêté car il a besoin d’une ressource détenue par A… p1 p2 p3 p4 t1 t2
Interblocage (exemple) <t1,t2,t3,t4> p5 p6 2 2 t5 Mn(p5)=1 Mn(p6)=1 Mn(_) = 0 t6 t8 p7 t7 p8 Interblocage!!
Réseaux de Petri Bonnes propriétés K- borné: Un RdP est k-borné si le marquage de chaque place est toujours inférieur ou égal à k, quelle que soit la séquence de franchissement réalisée… Vivant: Un RdP est vivant si pour toute transition et pour tout marquage accessible, il existe une séquence de franchissement permettant de franchir cette transition. Un RdP vivant garantit l’absence d’interblocage.
K-Borné (exemple) Réseau non borné Réseau 2-borné
Vivacité (exemple) Réseau vivant Réseau non vivant p1 t1 t3 p2 p1 p3
Réseaux de Petri, Bilan Bien adapté pour la modélisation de systèmes concurrents et/ou temps-réel. Possibilités intéressantes de vérification et d’évaluation des performances. Outils CASE pour développés, analyser et vérifier les modèle de réseaux de Petri. Complexité Lacunes: la version « classique» des RdP ne permet pas : d’éviter les situations de famine, de distinguer les données d’une place selon les valeurs de leurs attributs, de prendre en compte les contraintes temporelles, d’offrir une représentation à différents niveaux d’abstraction.
Modèles Étendus de RP Il existe des modèles avancés de réseaux de Petri permettant d’étendre leur expressivité: Réseaux de Petri avec politique d’ordonnancement : possibilité d’attacher des priorités aux transitions permettant de déterminer quelle transition tirée parmi toutes celles franchissables. Réseaux de Petri hiérarchiques : partitionnement des grands réseaux de Petri de manière récursive. Réseaux de Petri colorés : affectation de valeurs aux jetons. Réseaux de Petri temporisés : ajout de contraintes temporelles au niveau des transitions.
Réseau de Petri Marquage strictement supérieur Un marquage M est strictement supérieur à un marquage M’ (et est noté M > M’) ssi pour tout p e P, M(p) ³ M’(p) et M = M’