IFT 2251 Génie Logiciel La Modélisation du Comportement

Slides:



Advertisements
Présentations similaires
IFT 2251 Génie Logiciel Spécification de Processus Concurrents
Advertisements

IFT 2251 Génie Logiciel La Modélisation du Comportement
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Spécification de Processus Concurrents Hiver 2002 Petko Valtchev.
Developpement Process « Coding party !! » Tony Carnal Altran.
Recherche des fonctions pour la rédaction de l'expression fonctionnelle du besoin à l'aide d'un outil graphique : Le diagramme des inter-acteurs. Le diagramme.
L'image: Le codage des images BacPro SEN Lycée Condorcet.
Les systèmes d'information 1- Une pratique quotidienne 2- Les données 3- Approche conceptuelle 4- Notion de serveur 5- Conception d'un système d'information.
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel La Modélisation du Comportement Hiver 2002 Petko Valtchev.
1- Régles de normalisation 2ème partie : normalisation Modèle Conceptuel des Données 2- Les Formes Normales 3- Dépendances Fonctionnelles 4- Recap - Méthodologie.
1- Introduction Sommaire Modèle Logique des Données 2- Structure 3- Traduction du MCD en MLD 4- Recap - Méthodologie.
UML2 : Panorama de la notation Laurent Henocque Enseignant Chercheur ESIL/INFO France
MRP Étapes 1/12 Introduction Définitions JP Rennard Objectifs Toute entreprise appelée à fournir des biens et services est amenée à gérer la double contrainte.
Classes, objets, séquences, communication, états
Système d’aide à la décision Business Intelligence
Cours Initiation aux Bases De Données
Initiation à la conception des systèmes d'informations
Révision – mathématiques 8
MOCAH / LIP6 / UPMC Entités / Composants / Systèmes Un formalisme de conception pour les jeux vidéo MOCAH.
Mettre à jour les données
LE PROCESSUS OPERATOIRE
Ch.1 : Modélisation des systèmes par SysML
Deuxième partie : La courbe d’indifférence
Représentation des nombres réels
Pas de variable globale
Les notions de classe et d'objet
JavaScript.
Sous menu de l’application «micro» (‘IHM’)
Information et Système d’Information
Javadoc et débogueur Semaine 03 Version A17.
Langages pour le Temps Réel
L'approche asynchrone.
Principes de programmation (suite)
Les bases de données et le modèle relationnel
DESSIN TECHNIQUE Té de dessin Collège technique Sousse Collège technique Sousse.
Diagramme d’Activité. Définitions Les diagrammes d'activités permettent de mettre l'accent sur les traitements. Ils sont donc particulièrement adaptés.
Scénario Quatre hipsters entrent en collision un dans l'autre dans un ascenseur plein de personnes. En conséquence ils laissent tomber leurs téléphones.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Août 2009.
Cours N°9: Algorithmiques Les Tableaux 1
Structure D’une Base De Données Relationnelle
Modélisation avec UML 2.0 Partie II Diagramme de classes.
La stratégie pédagogique en
Type Concret – Type Abstrait
Vuibert Systèmes d’information et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 1 : La notion de système.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
OPTIMISATION 1ère année ingénieurs
Catherine Cyrot - bibliothèques numériques - Cours 5
Révision – mathématiques 8
Grafcet Pratic Présentation et Prise en Main 22/11/2018 L.CUVELIER.
SYSTèMES à évènements discrets
Les cas d’utilisation 420-KE2-LG.
Rappels sur le grafcet Normes NF EN CEI /01/2019
Définition :. Pourquoi le GEMMA ? GEMMA : l'acronyme GEMMA signifie : Guide d'Etude des Modes de Marche et d'Arrêt. Comme son nom l'indique, c'est un guide.
Information, Calcul, Communication
Programme d’appui à la gestion publique et aux statistiques
Piles et files.
Révision – mathématiques 8
Merise le modèle de traitement
1 Théorie générale des systèmes Présenté Par Monsieur Nzukam Nguiffo Guillaume Ingénieur statisticien.
Chapitre 2 Résolution des Problèmes et Jeux. Objectifs  Comment ? – Modéliser un Problème. – Modéliser un Jeu.  Comment ? – Passer d’un état à un autre.
A. Zemmari SDRP & MA Problème du rendez vous : un algorithme probabiliste et une analyse probabiliste A. Zemmari.
Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Modélisation fonctionnelle : ETUDE DE CAS. 01 Modélisation fonctionnelle :étude de cas Ce chapitre va nous permettre d’illustrer pas à pas, sur une première.
Les Commandes de base Linux. 1 L’aide sur les commandes Linux ◦ help : obtenir de l’aide pour une commande interne du shell. Elle permet aussi d'afficher.
La programmation dynamique
Transcription de la présentation:

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’