Diagrammes d état (statechart)



Documents pareils
Les diagrammes de modélisation

Cours de Génie Logiciel

Le modèle conceptuel des traitements

IFT2255 : Génie logiciel

UML (Diagramme de classes) Unified Modeling Language

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

Le Guide Pratique des Processus Métiers

UML : DIAGRAMME D ETATS

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Cours STIM P8 TD 1 Génie Logiciel

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

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

Université de Bangui. Modélisons en UML

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

OCL - Object Constraint Language

Diagrammes de classes et d objets

Chapitre I : le langage UML et le processus unifié

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

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Table des matières Sources

Conception des bases de données : Modèle Entité-Association

UML (Paquetage) Unified Modeling Language

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

ils entretiennent entre eux des flux, ils partagent des perceptions sur l environnement

Nom de l application

Diagramme de classes

Analyse,, Conception des Systèmes Informatiques

Ingénierie des Modèles. Méta-modélisation

Concevoir et déployer un data warehouse

Génie Logiciel Avancé Cours 3 Le modèle à objets

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

RAPPORT DE CONCEPTION UML :

Java 7 Les fondamentaux du langage Java

Pourquoi l apprentissage?

MEGA ITSM Accelerator. Guide de Démarrage

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

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

LES DÉTERMINANTS DE MATRICES

Traduction des Langages : Le Compilateur Micro Java

SOCIETE NATIONALE DES CHEMINS DE FER BELGES SPECIFICATION TECHNIQUE

MEGA Database Builder. Guide d utilisation

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Gestion de projets logiciels. Xavier Dubuc

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

OASIS Date de publication

modélisation solide et dessin technique

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

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Formation. Module WEB 4.1. Support de cours

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

MEGA Application Portfolio Management. Guide d utilisation

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

Analyse hiérarchique de tâches (AHT)

UML et les Bases de Données

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

GUIDE DE PRISE EN MAIN

MS PROJECT Prise en main. Date: Mars Anère MSI. 12, rue Chabanais PARIS E mail : jcrussier@anere.com Site :

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

MEGA ITSM Accelerator. Guide de démarrage

Le modèle de données

GOL502 Industries de services

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Table des matières A. Introduction... 4 B. Principes généraux... 5 C. Exemple de formule (à réaliser) :... 7 D. Exercice pour réaliser une facture

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Méthodologies de développement de logiciels de gestion

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

Fête de la science Initiation au traitement des images

Chapitre 1 : Introduction aux bases de données

Modélisation et Simulation

Développement d un interpréteur OCL pour une machine virtuelle UML.

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Conception des systèmes répartis

Classes et Objets en Ocaml.

SOMMAIRE. Travailler avec les requêtes... 3

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

SAP BusinessObjects Web Intelligence (WebI) BI 4

MEMOIRE. Présenté à. L École Nationale d Ingénieurs de Sfax. en vue de l obtention du MASTERE

HA2000 RTC Transmetteur téléphonique

Initiation à LabView : Les exemples d applications :

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Dessiner dans Galaad FRANÇOIS PALLUT

Guide de démarrage rapide

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Cours Programmation Système

Écriture de journal. (Virement de dépense)

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

MEGA Merise. Guide d utilisation

SECTION 5 BANQUE DE PROJETS

EM398x-R1 UPS VA

Transcription:

Diagrammes d état (statechart) Modéliser les vues dynamiques d'un système Ce diagramme sert à représenter des automates d'états finis, sous forme de graphes d'états, reliés par des arcs orientés qui décrivent les transitions. Les diagrammes d'états transitions permettent de décrire les changements d'états d'un objet ou d'un composant, en réponse aux interactions avec d'autres objets/composants ou avec des acteurs. Un état se caractérise par sa durée et sa stabilité, il représente une conjonction instantanée des valeurs des attributs d'un objet. Une transition représente le passage instantané d'un état vers un autre. Une transition est déclenchée par un événement. En d'autres termes : c'est l'arrivée d'un événement qui conditionne la transition. Les transitions peuvent aussi être automatiques, lorsqu'on ne spécifie pas l'événement qui la déclenche. En plus de spécifier un événement précis, il est aussi possible de conditionner une transition, à l'aide de "gardes" : il s'agit d'expressions booléennes, exprimées en langage naturel (et encadrées de crochets). États, transition et événement, notation : transition conditionnelle : Le Diagramme d états permet de montrer la séquence d états qu un objet où une interaction peut prendre durant sa vie en réponse à un stimulus, ainsi que les réponses et les actions qu il apporte. Il décrit les changements d état d un objet en réponse à des événements (Inventeur: David Harel) Il permet une hiérarchisation des états afin d éviter une explosion combinatoire d états Exemple de diagramme d état Les évènements. Sur le plan de la sémantique, l événement est un fait remarquable (presque au sens journalistique du terme). L occurrence d un événement peut déclencher une transition d états. Il existe plusieurs catégories d événements (pas forcément exclusive) #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 1/11

Une condition devient vraie. La réception d un signal explicite venant d un objet par un autre objet. (asynchrone) La réception d un «call» pour une opération pour un objet. (synchrone) Fin d une période de temps après la production d un événement. Un certain nombre d exemples peuvent nous aider à comprendre la notion d événement. Ainsi, une rupture de stock est un événement, car une condition particulière vient de se produire. Cette condition est que la quantité disponible en stock est devenue inférieure au seuil d alerte associé au produit. Ainsi la sonnerie du téléphone est un événement asynchrone, car il sera pris en charge lorsque le receveur sera disponible. Un événement est, en général porteur d information, par exemple: l événement «appuyer-bouton-souris» porte les informations suivantes : bouton, coordonnées. L événement «départ-vol» d un avion porte les informations suivantes : compagnie, numéro-vol, villedestination) Un événement n est pas local à une classe particulière. Il peut être partagé par deux objets. Il n a pas de durée. Il est considéré en analyse comme en conception (à part les problèmes de temps réel, où il y a la nécessité de capturer l événement et de ne pas en perdre) comme instantané. État Sur la plan de la sémantique, l état est une condition pendant la vie de l objet ou une interaction pendant laquelle il: satisfait certaines conditions. exécute des actions. attends un événement. Par exemple, nous pouvons considérer qu un livre est dans l état «disponible» ou dans l état «réservé» lorsqu il est dans la bibliothèque, il est dans l état «prêté» ou dans l état «en réparation» lorsqu il est en dehors de la bibliothèque. La caractéristique principale de l état est qu il a une durée. L objet reste dans un état pendant un certain temps. Il est possible d associer un état à une action. Cette notion porte le nom d état transitoire. Ainsi, mon téléphone peut être dans l état «en train de sonner», pendant la durée de cet état, l action «faire sonner le téléphone» s exécute. Par extension, il est possible de considérer un avion dans l état «en vol» et de considérer l action "vol Paris-Londres", en train de s exécuter. La plupart des états transitoires sont des états exprimés sous la forme «ING» en Anglais. Cette formulation représente le mouvement. Elle correspond aux techniques de modélisation des machines à états proposés par Moore, où l on considère que l objet exécutant une action est dans un état particulier quand il fait cette action. Contrairement au diagramme de Mealy, qui eux associe l action à la transition d états (Merise 2 avec le Cycle de Vie de l objet utilise uniquement ces derniers diagrammes). Exemple : Le problème de la traversée d une rivière. Un homme dispose d une barque, il doit faire passer trois objets situés sur la rive gauche, sur la rive droite de la rivière. Ses contraintes sont que la barque ne peut contenir qu un seul objet à la fois (en plus de lui-même). D autre part les trois objets qui sont un chou, un loup et un mouton présentent un certain nombre de contraintes supplémentaires pour l homme. Par exemple, il est impossible de laisser le loup et le mouton, seuls sur une rive (on voit pourquoi). De la même façon, il est impossible de laisser le chou et le mouton ensemble seuls sur la même rive. Néanmoins, en présence de l homme, le loup ne mangera pas le mouton et le mouton s abstiendra de manger le chou. Choix de la variable : Ce qui change d états c est l image des deux rives. On décide de représenter l état de la manière suivante : élémentsrivegauche-elémentsrivedroite. Diagramme de Mealy : Le diagramme de Mealy va refléter les différents états que peut prendre notre système : #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 2/11

Diagramme de Moore (Choisi par U.M.L) L état «entraindetraverser» est un état transitoire. Cet état est intéressant pour l approche objet, car il permet de trouver les actions associées. Ici, il s agit de l action «traverser», mais il est clair que nous pouvons affiner notre spécification, notamment en constatant que l état «entraindetraverser» peut être spécialisé en «entraindetraverseravecmouton», «entraindetraverseravecloup», «entraindetraverserhommeseul», ou encore «entraindetraverseravecchou». Ces états sont différents, par nature essayez de traverser une rivière avec un loup dans une barque ne préféreriez vous pas traverser avec un chou ça doit être plus cool. Un état modélise une situation dans laquelle quelques conditions sont invariantes (Norme OMG 2.0). Les conditions peuvent être : statiques comme un système qui attend un événement. dynamique. Dans cet état, se déroule une activité qui se termine avec la fin de l état. Un état peut être : simple (non décomposable en sous états), composite (comportant plusieurs «régions», notions précisées plus loin) un état de sous-système (sub-machine). L état de sous système est sémantiquement proche de l état composite, seulement l état d un sous système reçoit une caractérisation avec un nom précis. #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 3/11

Un état est représenté par un rectangle à coins arrondis comportant 2 compartiments, le premier qualifie le nom de l état et le second spécifie toutes les actions et les activités qui se déroulent dans l état. Il existe deux pseudo états : état de départ (start state) et état de fin (final or stop state). État composite ou super-état. Un super-état est un élément de structuration des diagrammes d'états-transitions (il s'agit d'un état qui englobe d'autres états et transitions). Le symbole de modélisation "historique", mémorise le dernier sous-état actif d'un super-état, pour y revenir directement ultérieurement. Exemple : Le diagramme d'états-transitions ci-dessous, montre les différents états par lequel passe une machine à laver les voitures. En phase de lustrage ou de lavage, le client peut appuyer sur le bouton d'arrêt d'urgence. S'il appuie sur ce bouton, la machine se met en attente. Il a alors deux minutes pour reprendre le lavage ou le lustrage (la machine continue en phase de lavage ou de lustrage, suivant l'état dans lequel elle a été interrompue), sans quoi la machine s'arrête. En phase de séchage, le client peut aussi interrompre la machine. Mais dans ce cas, la machine s'arrêtera définitivement (avant de reprendre un autre cycle entier). souches : afin d'introduire plus d'abstraction dans un diagramme d'états-transitions complexe, il est possible de réduire la charge d'information, tout en matérialisant la présence de sous-états, à l'aide de souches, comme dans l'exemple ci-dessous. #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 4/11

Une transition vers le contour de l hypergraphe (voir schéma qui suit) représente une transition vers les états de départ des régions. Une transition vers le pseudo état de fin implique la terminaison de l activité dans la région (Attention : la fin d une activité dans une région peut ne pas correspondre à la fin de l état). Exemple : États avec des régions Exemple : États avec connexions traversant la région Les actions. L action est associée à l état. Il existe deux types d actions : L action continue est une action qui s exécute jusqu à ce qu elle soit interrompue par un événement externe. L action complète est une action qui se termine par elle-même. En général elle produit elle-même un événement qui fait passer l objet dans un autre état. Un état sera représenté par un rectangle avec des coins arrondis. Ce rectangle comprendra plusieurs compartiments : #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 5/11

Compartiment 1 : Nom: Cette zone indique le nom de l état. Ce nom est facultatif (souvent le nom de l action suffit). Compartiment 2 : Variables : Cette zone permet de lister des variables d états définies pour cet état. Ce sont des attributs de la classe (affectation possible), elles sont sélectionnées parce qu elles sont affectées ou utilisées par des actions dans le diagramme d états. Ces variables peuvent être des liens. Il est possible de noter des valeurs d initialisation, si celles-ci sont réalisées dans l état décrit. Compartiment 3 : Action Interne: Cette zone permet de décrire des actions internes ou activités exécutées pendant que l objet est dans l état. On associe une action à un événement qui déclenche une transition. La syntaxe est alors la suivante : Événement / action Ceci exprime que la transition (déclenchée par l'événement cité) entraîne l'exécution de l'action spécifiée sur l'objet, à l'entrée du nouvel état. Exemple : il pleut / ouvrir parapluie. Une action correspond à une opération disponible dans l'objet dont on représente les états. Les actions propres à un état peuvent aussi être documentées directement à l'intérieur de l'état. UML définit un certain nombre de champs qui permettent de décrire les actions dans un état : Exemple : o entry / action o exit / action : action exécutée à l'entrée de l'état : action exécutée à la sortie de l'état o on événement / action : action exécutée à chaque fois que l'événement cité survient o do / action : action récurrente ou significative, exécutée dans l'état Remarque : Attention, les actions attachées aux clauses "entry" et "exit" ne sont pas exécutées si l'événement spécifié dans la clause "on" survient. Pour indiquer qu'elles peuvent être exécutées plusieurs fois à l'arrivée d'un événement, représentez l'arrivée d'un événement réflexif, comme suit : Transition Une transition permet à un objet (un système) de passer d un état dans un autre état. Il existe deux types de transition : simple complexe. #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 6/11

Transition Simple: C est une association entre deux états indiquant qu un objet dans un état entrera dans le deuxième état et exécutera certaines actions spécifiées quand un événement spécifié se produira et que certaines conditions seront satisfaites. Une transition établit une relation entre deux états. Une transition est déclenchée (fired) quand survient un déclencheur (trigger). Le déclencheur est un événement avec éventuellement des paramètres. Signature de l événement [condition de garde] / Actions La transition est décrite par une flèche qui comporte les arguments suivants : 1/ NomEvénement (param1: type, param2:type, ) Ces évènements sont externes (utilisateur, environnement, ) ou internes change events : quand une condition devient vraie dans le système Ex : when(solde<=1keur) call events : envoi d un message synchrone Ex : calculermontant() signal events : envoi d un message asynchrone Ex : allumedled() time events : indiquent un temps écoulé Ex: (10 ms.) 2/ [Garde] : Evénement observé par le système, le garde est vérifié lors de la transition (c-à-d pas observé à tout moment). C est une expression Booléenne Ex: [agecapitaine>50] 3/ Action : action liée à la transition exécutée lors de la mise à feu de la transition, elle est non interruptible, exécutée entièrement. Exemple : Un bouton d ascenseur est dans l état «Eteint». Lorsque l événement «appuyer_bouton» se produit le bouton passe dans l état «sélecté». Dans cet état, il va pouvoir exécuter une action. Transition Complexe: Une transition peut avoir des sources multiples et des cibles multiples. Il y a donc des problèmes de synchronisation et de répartition du contrôle en deux process concurrent avec des sous-états concurrents. Une transition complexe peut avoir plusieurs états source et plusieurs états cibles. Etats concurrents et barre de synchronisation Pour représenter des états concurrents sur un même diagramme d'états-transitions, on utilise la notation suivante : Dans l'exemple ci-dessus, l'automate K est composé des sous-automates L et M. L et M s'activent simultanément et évoluent en parallèle. Au départ, l'objet dont on modélise les états par l'automate K est dans l'état composite (E-L1, E-M1). Après l'événement Tr1, K passe dans l'état composite (E-L2, E-M2). Par la suite, si l'événement Tr2 survient, K passe dans l'état composite (E-L3, E-M2). Si c'est Tr4 qui survient, M ne passe pas dans l'état E-M1, car cette transition est contrainte par l'état de L ("[in E-L3]"). #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 7/11

Dans l'état composite (E-L3, E-M2), si Tr3 survient, K passe dans l'état composite (E-L2, E-M2). Si c'est Tr4 qui survient, K passe dans l'état composite (E-L3, E-M1). Et ainsi de suite... Attention : la numérotation des événements n'est pas significative. Pour synchroniser les sous-automates d'une agrégation d'états, il faut contraindre les transitions, comme dans l'exemple ci-dessus ("[in E-L3]"). On peut aussi utiliser un symbole spécial : "la barre de synchronisation". La barre de synchronisation permet de représenter graphiquement des points de synchronisation. Les transitions automatiques qui partent d'une barre de synchronisation ont lieu en même temps. On ne franchit une barre de synchronisation qu'après réalisation de toutes les transitions qui s'y rattachent. Un état peut être raffiné en utilisant la relation AND (sous_états concurrents) ou la relation OU (sous_états disjoints). Cette technique a été mise au point par Harel en 1987. Une transition concurrente peut avoir plusieurs états de départ ou plusieurs états d arrivée (voir schéma avec les barres de synchronisation de type «fork» ou «join»). Chaque état source doit être réalisé avant que la transition complexe puisse avoir lieu. La transition complexe s applique sur tous les états. Raffinage d un état en utilisant une relation «OU EXCLUSIF» entre des sous_états. Dans cet exemple, le compte-bancaire prend un super-état dont le nom est «En_cours_d opération_compte». Ce super état se décomposeà l aide d un ou exclusif en deux sous-état «En_cours_crédit» ou «en_cours_débit». Etats Concurrents: #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 8/11

Raffinage d un état en utilisant une relation «ET» entre des états concurrents. Dans cet exemple, une partie d échec est modélisée sous la forme d une concurrence entre deux objets composants (joueur blanc, joueur noir). Le rond noir représente un état initial, le rond noir englobé dans le rond blanc correspond à l état final (fin de partie). Pendant que un des joueurs réfléchit, l autre joue et inversement. Exemple : Diagramme d états d un compte-bancaire. Quelques explications : Le diagramme d états représente le comportement des objets de la classe «CompteBancaire», c est à dire votre compte ou mon compte. Nous constatons, que chaque compte passe par un état initial (matérialisé par un rond vide), pour aller vers un état «encourscréation» lorsqu un événement (dont nous ne voyons pas la provenance sur le diagramme) «demandeouverture» se produit. Nous voyons également que le compte possède deux types d états : des états stables (débiteur ou créditeur) et des états transitoires (entrainetredébiter ou entrainetrecréditer). Les états transitoires permettent de trouver des actions, qui sont candidates à devenir des méthodes dans l implémentation. Chaque action présente un niveau de complexité faible. Par exemple l action «débiter» est une action qui consiste a faire solde = solde montant, puis à essayer de produire l événement si solde < 0, le compte passera dans l état «débiteur», si solde >0 ou nul, le compte passe dans l état «créditeur». #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 9/11

Enfin, notons que la fermeture du copte ne peut se produire que si le compte est créditeur. On ne peut pas fermer un compte débiteur ou encore dans un état «entrainetrecréditer». Evénement paramétré UML permet aussi de paramétrer les événements, comme dans l'exemple suivant : Expression d une condition En se servant de la condition de garde, on peut exprimer une condition spécifique. Une autre possibilité se sert d une décision. Une transition peut aussi se reboucler sur le même état. Elle set à indiquer une prise en compte de l événement mais cet événement ne provoque pas de changement d état. Construction incrémentale La construction d un diagramme d états est un processus incrémental. À chaque scénario, on découvre d autres états, d autres transitions, d autres conditions. Le schéma illustre le processus #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 10/11

Décomposition hiérarchique Lorsqu un état est trop complexe, il peut se décomposer en un sous diagramme d états. Cette décomposition est de type «verticale» par comparaison avec la «greffe» successive de scénarios ou d autre mécanismes de type «horizontal». Exemple : L état «Giving Money» a subit une décomposition de type «vertical». #Niedercorn LT «la Briquerie» 57100 THIONVILLE UML : diagrammes d états & page 11/11