Introduction Conception Orientée Objet Les objets d’une classe ne sont …………...…….…. : Ils peuvent évoluer et changer d’ ……………. au cours de leur cycle de vie (CV : intervalle de temps entre la création et la suppression de l’objet) III. Diagrammes d’Etats – Transitions Rafik BOUAZIZ FSEG – Sfax -- Faïez GARGOURI ISIM – Sfax R. BOUAZIZ -- F. GARGOURI 114 Introduction Un DET est une description des …………….……….. d'états d'un objet (ou d'un composant) : 115 Un DET d’une classe est une description des …………….………… possibles de ses objets. Il donne : la liste des ……………… que peut prendre un objet objets/composants ou avec des acteurs. R. BOUAZIZ -- F. GARGOURI Introduction en réponse aux interactions avec d'autres Un diagramme d’états – transitions (DET) permet d’étudier l’aspect …………….……….. d’une classe, compte tenu de l’importance de son comportement. durant son CV ; Une classe n’a pas obligatoirement un DET, comme elle peut en avoir plusieurs, selon différentes sémantiques. les …………….…………….. déclenchant les changements d’états ; les éventuelles …………….………… qu’il doit vérifier avant de changer d’état ; L'ensemble des DET forme une partie du modèle dynamique du SI modélisé. les …………….………… qui le font passer d'un état à un autre. R. BOUAZIZ -- F. GARGOURI 116 R. BOUAZIZ -- F. GARGOURI 117 1 Sémantique L’état d’un objet Les conventions graphiques représentant un changement (une transition) d’états sont : Etat i Evt([Att]) [Condition(s)]/Action L’état d’un objet est une …………….……… donnée durant la vie de cet objet. Dans un état donné, l’objet satisfait à des conditions, réalise des actions, ou il est tout simplement en attente d’événements. Etat j L’état d'un objet est déterminé par l’ensemble des Ta valeurs de ses attributs et de la présence de liens avec d’autres objets. A l’instant Ta , suite à l’arrivée d’un événement Evt, ayant les attributs Att, et sous certaines conditions Conditions, l’objet passe de l’Etat i à l’Etat j par l’activation de l’action Action. R. BOUAZIZ -- F. GARGOURI Un état se caractérise par sa durée et sa stabilité. 118 L’état d’un objet R. BOUAZIZ -- F. GARGOURI 119 L’état d’un objet Dans un DET, on distingue deux états particuliers : Remarques : La seule opération possible, partant de l’état initial est la …………….…….. L’état …...….…. : état avant la création de l’objet Aucune transition ne peut avoir comme origine L’état ……..…. : état après la destruction de l’objet l’état final. Les opérations conduisant à un état final sont, par exemple, la …………….……………, le nettoyage, ... 1. L’état initial correspond à l’état dans lequel se trouve l’objet avant sa création. Dans un DET, on peut ne pas avoir un état final, comme on peut avoir plusieurs états finaux. 2. L’état final correspond à un état à partir duquel l’objet ne peut plus évoluer. R. BOUAZIZ -- F. GARGOURI 120 R. BOUAZIZ -- F. GARGOURI 121 2 Les événements Les événements Un …………….………. correspond à l’occurrence d’un …….. particulier dans le domaine d’étude. Evénement …………….…. : C’est une information instantanée. Typologie des événements : Evénement …………….…. : Déclenché par un acteur externe au domaine de l’application. Exemple : l’arrivée d’un bon de commande client. R. BOUAZIZ -- F. GARGOURI 122 Les événements Déclenché par un acteur un objet interne du domaine de l’application. Exemple: une Demande d’Achat dans une gestion des approvisionnements. Evénement …………….……. : Déclenché selon une condition temporelle. Exemple : Supprimer toute réservation non confirmée 24 heures avant la date de fin de réservation. R. BOUAZIZ -- F. GARGOURI 123 Les transitions La spécification complète d’un événement comprend : le nom de l’événement, la liste des paramètres éventuels, l’objet expéditeur, l’objet destinataire, la description de la signification de l’événement. Une …………….……….. représente le passage instantané d'un état vers un autre. Etat i Evt([Att]) [Condition(s)]/Action Etat j Elle est déclenchée par un événement : c’est l'arrivée Généralement : d'un événement qui conditionne la transition. On se limite à donner le nom de l’événement. R. BOUAZIZ -- F. GARGOURI 124 R. BOUAZIZ -- F. GARGOURI 125 3 Les transitions Les transitions Elle peut être conditionnée à l'aide de " …………….." : Une garde (ou condition de garde) : Est une condition booléenne dont dépend le déclenchement d’une transition lors de l’occurrence d’un événement. expressions booléennes, exprimées en langage naturel, encadrées par des crochets. Evt [Garde] Etat A Entrée Stock Disponible Sortie Stock [QteDispo>=QteMin] Sortie Stock [QteDispo<QteMin] Est évaluée dès l’arrivée de l’événement de déclenchement. ¬ Disponible Il fait trop chaud [été] Etat A Climatisée R. BOUAZIZ -- F. GARGOURI 126 Les transitions Il fait trop chaud [hiver] Aérée R. BOUAZIZ -- F. GARGOURI 127 Les transitions Les …………….…. Les …………….…… Une activité est un calcul non-atomique qui se Les actions spécifiées dans une transition sont les produit pendant qu’un objet est dans un état donné. actions à exécuter lors du déclenchement de la transition par l’événement. L’activité peut être interrompue par la survenance Chaque action est instantanée et atomique, donc d’un nouvel événement. ininterruptible. Exemple : quand un objet est en rupture de stock Une action peut comporter des appels d’opération, et qu’une activité de réapprovisionnement a été lancée, l’arrivée d’une entrée de stock peut interrompre cette activité (si QteDispo devient > QteMin) la création ou la destruction d’un objet, …. R. BOUAZIZ -- F. GARGOURI Etat B 128 R. BOUAZIZ -- F. GARGOURI 129 4 Les transitions Les transitions Les points de jonction Les transitions …………….……………. : gardes notées après le point d’interaction sont évaluées ………… que la transition ne soit empruntée. factorisent et partagent des connexions : OF : Plusieurs transitions peuvent se rejoindre pour partager des actions. Une transition peut se ventiler en des connexions mutuellement exclusives. Vérification Vérification [pièces manquantes] [toutes les pièces fournies] Incomplet Les points de jonction gardes situées après le point de jonction sont évaluées …………….… le point de jonction est atteint. Commande En instruction Validation/ somme := Prix() Vérification OU [pièces manquantes] Incomplet [toutes les pièces fournies] [somme=0] 130 Concepts avancés sur les états : action à exécuter dès l’entrée à un état. …………….…. R. BOUAZIZ -- F. GARGOURI 131 On peut préciser les actions à exécuter quand l’objet est à un état donné : Exemple Nom de l’état : activité à exécuter pendant qu’un objet est dans un état particulier. ……………. ……………………. : introduit une invocation d’un sous-automate Entrée / action en entrée Sortie / action à la sortie Faire / une activité Inclure/ un sous-automate action interne provoquée par un événement sans provoquer un changement d’état. R. BOUAZIZ -- F. GARGOURI Compte à vérifier Cde traitée : action à exécuter lors de la sortie d’un état. Cde Annulée Concepts avancés sur les états On peut préciser les actions à exécuter quand un objet est à un état donné : …………….. [sinon] [somme<500] En instruction R. BOUAZIZ -- F. GARGOURI …………….….…. : Les Ouvert Ouvert …………….…. : Les En préparation Entrée / choisirFournisseur() Entrée / fixerQuantités() Faire / modifierCommande() Sortie / EnregistrerDateExpédition() Etat « En préparation » d’une commande 132 R. BOUAZIZ -- F. GARGOURI 133 5 Concepts avancés sur les états Concepts avancés sur les états Etat …………….………… (ou composé) Exemple : Un état composite est décomposé en sous-états. Un sous-état est un état emboîté dans un état Non-disponible composite. Disponible Les sous-états peuvent être emboîtés à n’importe panne [Irréparable] En panne quel niveau. plus de clarté apportée aux DET Panne Disponible Réparation terminée En cours de réparation [Irréparable] Non Disponible Réparation terminée R. BOUAZIZ -- F. GARGOURI 134 Exemple R. BOUAZIZ -- F. GARGOURI 135 Exemple Pour bien gérer les approvisionnements, on se fixe Gestion commerciale : une quantité minimale (QteMin) au dessous de laquelle on commande systématiquement le produit. QteMin servira à comparer la quantité disponible (QteDispo) du produit. Quand on gère les stocks de produits, il est nécessaire de prévoir, à tout moment, les différents états possibles de chaque stock de produit. Une fois commandé, on doit attendre la livraison du Généralement, quand on crée un nouveau produit, produit pour qu’il redevienne disponible. il est automatiquement mis "en rupture de stock". Il ne sera disponible que s’il y a une entrée (une livraison d’une commande de ce produit). Quand un produit est disponible, toute opération d’ajout ne le fait pas changer d’état. Donner, en utilisant les conventions UML, le diagramme d’états-transitions de l’objet Produit. R. BOUAZIZ -- F. GARGOURI 136 R. BOUAZIZ -- F. GARGOURI 137 6 Exemple Exemple Construction () Alarme de voiture DET d’un Produit Entrée Neutralisée Sortie [QteDispo >= QteMin] Activer() Désactiver () Sortie [QteDispo < QteMin] Disponible En rupture Activée Bip()/ Clignotement Bip()/ Clignotement ProduitMAJ(QteDeMAJ) ProduitCommandé(QteCdée) En rupture Commandé R. BOUAZIZ -- F. GARGOURI Alarme 138 Super état En veille Effraction () LivrerProduit(QteLivrée) En rupture Livré Neutraliser () Bip()/ Clignotement R. BOUAZIZ -- F. GARGOURI 139 État historique ……………. état Disjoints Parallèle État État Lorsqu’une transition s’arrête à la frontière d’un super état, l’objet revient dans le dernier sous-état considéré. A A B • Un seul sous-état est actif État ………….…….…. Pseudo-état historique : indique l’état lors de la première transition (lorsqu’il n’y avait pas d’historique). B • Tous les sous-états sont actifs • A et B peuvent être des super états R. BOUAZIZ -- F. GARGOURI 140 R. BOUAZIZ -- F. GARGOURI 141 7 Exemple Allumé HeureCourante HeureRéveil Radio CD hHeureR hHeureC H hRadio Pseudo-état historique On hCD Off Eteint R. BOUAZIZ -- F. GARGOURI 142 8