Module OMGL - ModDyn Modélisation de la dynamique modèle ETAT-TRANSITION J. Christian Attiogbé Février 2009, maj avril 2012 J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 1 / 42 Plan La dynamique dans le logiciel La dynamique à rapport à ce qui ce passe avec le déroulement du temps Il n y a pas d événement sans le facteur temps. Une suite d événements décrit un comportement : des transitions entre des états. En modélisation, on tient compte de cette facette dynamique. En construction de logiciels, on prévoit le comportement d un logiciel. On fait pour cela des modèles. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 2 / 42
Plan La dynamique dans le logiciel on actimage actimage 1 2 3 off desactimage J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 3 / 42 Ce cours Plan Outils de modélisation des traitements, des comportements, ou de la dynamique dans les logiciels. Ces outils complètent ceux destinés à la modélisation des données. Expressions régulières Automates à états finis (diagrammes état/transition) Automates de Mealy et Moore Réseaux de Petri Automates hiérarchiques de Harel (ou Statecharts) Algèbres de processus (CCS, FSP, Lotos) J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 4 / 42
Plan Organisation Cours : 9h20 TD/TP : 32h (MM C. Attiogbé, O. Finot, J-M. Mottu) emploi de divers outils logiciels de modélisation Evaluation : contrôle continu, régulièrement J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 5 / 42 Modélisation Plan La modélisation est une activité délicate, on procède par abstractions (l outillage mathématique sert), par analogie avec des cas connus (réutilisation), par entraînement et exercices. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 6 / 42
Plan Modélisation : où se situe-t-on? Informatique = Software (Génie logiciel) : construire des logiciels Hardware : construire des matériels (ordinateurs) On modélise ce qu on va construire, les données et des traitements Modélisation : une étape d abstraction/conceptualisation en amont de la programmation. Quel peut être le modèle d un logiciel? Combinaison des modèles des données (vus dans un Module précédent), des traitements (la dynamique) et autres caractéristiques. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 7 / 42 Modélisation Plan Modélisation : Hoare : A scientific theory is formalised as a mathematical model of reality, from which can be deduced or calculated the observable properties and of a well-defined class of processes in the physical world. Il y a deux principales notions de modèles (en informatique). 1 Modèle = une approximation de la réalité par une structure mathématique. 2 Un objet O est modèle d une réalité R, si O permet de répondre aux questions que l on se pose sur R. En Mathématique, Physique,...: systèmes d équations portant sur des grandeurs (masses, énergie,...) ou des lois hypothétiques. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 8 / 42
Plan Plan de la suite 1 Expressions régulières 2 Automates à états finis 3 Automates de Mealy (et Moore) J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 9 / 42 Terminologie Expressions régulières Diagramme Etat/Transition (State Diagram) Automate (Automaton, Automata) Machine à états finis (Finite State Machine) Système de transitions (étiquetées) : Labelled Transition Systems Alphabet d actions Espace d états Relation de transition, Fonction de transition graphe d états J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 10 / 42
Expressions régulières Expressions régulières Une expression régulière décrit un comportement/traitement ; c est un modèle du comportement. Une expression régulière est décrite avec : des actions abstraites, des valeurs, des opérateurs :. + * () Exemples : (1.0)* + (1+0)* (lire. traiter. ecrire)* login. (command. (response + error))*. logout J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 11 / 42 Exemple de modèle Automates à états finis Des états, des transitions, des étiquettes Est-il est possible d obtenir une ressource sans avoir donné un code correct? J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 12 / 42
Automates à états finis Automate déterministe Structure d un automate à états Ensemble d états : S ={S 0,, S f, } Un alphabet d actions ou d étiquettes : A Une relation de transition δ définie sur (S x A) et S : S A S Un état initial S 0 (élément de S) Un ou des états finaux S f (éléments de S) L automate est déterministe lorsque la relation de transition est une fonction plutôt qu une relation. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 13 / 42 Automates à états finis Automate déterministe : notation Etat, état initial, état final, transition (étiquetée) entre états J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 14 / 42
Automates à états finis Automate déterministe : exemple Remarque : qu est-ce qu un automate non-déterministe? En construire un à partir de l exemple. Quel impact sur la programmation? J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 15 / 42 Automates à états finis Automate déterministe : exemple S = {E 0, E 1, E 2 } A = {a, i, o, h, e,!} S 0 = E 0 δ = {((E 0, o), E 0 ), ((E 0, a), E 1 ), ((E 1, i), E 1 ), ((E 1, e), E 2 ), ((E 0, h), E 2 ), ((E 2,!), E 2 )} J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 16 / 42
Automates à états finis Exemples d automates Vie d un processus dans un système Lecture d une adresse éléctronique normalisée Feu tricolore (à la française, RJV) Marche Toumaï Inscription d un étudiant (à l Université) Unix (comportement de base du système) Mami nova (invitation au goûter) Exercice : Dessinez les automates représentant les comportements dans chacun des cas. Quels sont les états? les transitions entre quels états? J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 17 / 42 Automates à états finis Modélisation avec les automates A quoi servent des automates en Génie logiciel? : A modéliser (donc un Outil de Génie Logiciel), afin d étudier/prédire/analyser les comportements des systèmes avant de les développer. Le modèle n est pas le système, le modèle simule mathématiquement le système. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 18 / 42
Automates à états finis Modélisation avec les automates Modélisation ou représentation des séquences d événements [autorisés] d un système (logiciel) : algorithme/module/composant un événement peut prendre plusieurs formes : une entrée, une sortie, un appel d opérations, etc un état de l automate est une abstraction d un état du système modélisé J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 19 / 42 Automates à états finis Modélisation avec les automates Un automate modélise un système (ou un module) Hiérarchisation : les états sont des automates Composition parallèle (avec des produits de plusieurs automates). J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 20 / 42
Automates à états finis Exercices Spécification des comportements liés à une bibliothèque à l aide d automates Exo1 : On considère l automate vie d un livre Exo2 : On considère l automate prêts de livres aux membres de la bibliothèque. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 21 / 42 Exercice bibliothèque Automates à états finis Vie d un livre : Mis en service, emprunté, rendu, sorti de service Prêt d un livre aux membres : abonner membre ; emprunter, retourner, renouveler, perdre,..., désabonner J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 22 / 42
Automates à états finis Analyse des solutions Vie d un livre (si on en a plusieurs?) Les prêts Combien de livres empruntés au maximum? Limites de renouvellement? J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 23 / 42 Exercice Automates à états finis Améliorer les spécifications précédentes en mettant des contraintes Besoin de caractériser les états et les transitions J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 24 / 42
Automates à états finis Améliorations Pouvoir représenter toutes les réservations Pouvoir exprimer des contraintes sur le(s) membre(s) : l emprunteur courant ne peut réserver son livre réservations servies dans l ordre d arrivée, mais annulés dans n importe quel ordre J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 25 / 42 Exercice Automates à états finis Décomposition de la spécification en plusieurs diagrammes (automates) Liaison entre les diagrammes J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 26 / 42
Automates à états finis Limitations des automates les paramètres d entrée et de sortie des événements ne sont pas explicites difficile de représenter entièrement l espace du système difficile de donner toutes des préconditions ne donne que les cas normaux d évolution J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 27 / 42 Automates à états finis Exercice : conversation téléphonique Spécifiez à l aide d un automate le comportement d un système de communication : Décrocher, composer le numéro, répondre à un appel, parler, raccrocher,... J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 28 / 42
Automates à états finis Composition des modèles dynamiques : composition des automates Produit libre de deux automates Produit synchrone de deux automates Dans la pratique, différentes entités identifiées dans le cahier de charges vont être décrites séparément puis composées pour former un système global. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 29 / 42 Machine à états finis Automates à états finis Automates(machines) de Mealy et Moore : une catégorie d automates où on peut effectuer des actions ou sortie pendant le déroulement de l automate. Mealy : action de sortie associée aux transitions Moore : action de sortie associée aux états On distingue les entrées et les sorties sur réception d une entrée, une sortie peut être produite Distinction avec automate élémentaire Dans un automate on ne distingue pas entrée et sortie ; On identifie dans le texte accompagnant l automate, la nature d un évènement (entrée ou sortie). J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 30 / 42
Automates à états finis Machine à états finis : Mealy Les machines de Mealy sont des automates non hiérarchiques. Les états sont simples (pas de sous-états) et les transitions entre états sont atomiques. Sur les transitions entre états on peut avoir les étiquettes : evenement / actions [garde] / actions evenement[garde] / actions garde est une condition booléenne Dans les gardes on utilise les opérateurs logiques : OR, AND, NOT Lorsqu on a plusieurs actions, elles sont séparées par ; J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 31 / 42 Automates de Mealy (et Moore) Machine à états de Mealy Ensemble d états : S Ensemble d entrées : In Ensemble de sorties : Out Un état initial : S 0 Deux relations : transition δ : S In S sortie δ o : S In Out Etat final J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 32 / 42
Machines de Mealy Automates de Mealy (et Moore) Notation des transitions Ss i/o St si l entrée i est reçue alors que le système est dans l état Ss, la sortie o est produite et le nouvel état du système est St i est aussi appelé le déclencheur (trigger). J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 33 / 42 Automates de Mealy (et Moore) Caractéristiques d une machine de Mealy non hiérarchique un état dénote l état complet du système le système est dans un seul état à la fois une transition est atomique ; elle ne peut être décomposée J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 34 / 42
Automates de Mealy (et Moore) Etude de cas : distributeur On considère le distributeur suivant : Le distributeur délivre des bouteilles d eau à 50c, des canettes de cola à 50c et des barres chocolatées à 1 euro. le distributeur n accepte que des pièces de 50c. Le distributeur fonctionne selon le principe suivant : on introduit un certain nombre de pièces ; si ce nombre est strictement plus grand que 2 alors la pièce introduite est rejetée immédiatement On envisage plusieurs versions en faisant différentes hypothèses de travail. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 35 / 42 Automates de Mealy (et Moore) Suite cahier de charges distributeur (V1) on peut (tenter de) commander dès qu on a introduit une pièce ; si le solde est insuffisant, la machine le signale. Dans le cas contraire, la commande est honorée et la monnaie éventuelle est rendue. (V2) tant que la commande n est pas passée, on peut toujours annuler et les pièces introduites sont rendues. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 36 / 42
Automates de Mealy (et Moore) Solution Distributeur (au tableau) J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 37 / 42 Automates de Mealy (et Moore) Solution Distributeur Une solution, hypothèse : pièece unique acceptée (50cents). Eau,Choco,Barre/SoldeInsuf Eau/ serveau Choco/servChoco Reset/Commande? 0 piece50/ Annuler/rendreP 50 Barre/SoldeInsuf Choco/servChoco Reset,Annuler/Commande? Barre/servBarre 100 Eau/ serveau Annuler/rendreP piece50/ Reset/Commande? piece50/rendrep J. Christian Attiogbé (Février 2009, maj avril 2012) Figure: Module Machine OMGL - ModDyn à Boisson 38 / 42
Automates de Mealy (et Moore) Modélisation : contrôle d accès Lecteur de carte/code ; Déblocage d accès à une salle Modéliser l usager, puis le gestionnaire d accès Composition (par produit synchrone) des deux modèles. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 39 / 42 Automates de Mealy (et Moore) Synthèse : machines à états Mealy Très expressif, même si non hiérarchique Les étiquettes de transition comportent : evt [garde] / actions*. Pratiquement, il faut déclarer et initialiser les variables. On peut utiliser des fonctions, des procédures, des paramètres, etc Aide à la génération de code exécutable. J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 40 / 42
Automates de Mealy (et Moore) Généralisation des machines à états SDL (normalisé, utilisé en Télécoms) Statecharts de David Harel (hiérarchiques) Réseaux de Petri Algèbres de processus J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 41 / 42 Automates de Mealy (et Moore) Références bibliographiques Il y a de nombreuses références sur le sujet : voici quelques indications en guise de points d entrée Jacques Stern Fondements mathématiques de l informatique, Masson, Bellot et Sakarovitch Logiques et automates, Ellipses, J.E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation Second Edition. Addison-Wesley (2001). J. Christian Attiogbé (Février 2009, maj avril 2012) Module OMGL - ModDyn 42 / 42