OOAD - Modélisation dynamique

Le modèle dynamique représente les aspects temporels d'un système. Il s'intéresse aux changements temporels des états des objets dans un système. Les principaux concepts sont -

  • État, qui est la situation à une condition particulière pendant la durée de vie d'un objet.

  • Transition, un changement d'état

  • Événement, une occurrence qui déclenche des transitions

  • Action, un calcul atomique ininterrompu qui se produit en raison d'un événement, et

  • Concurrence des transitions.

Une machine à états modélise le comportement d'un objet lorsqu'il passe par un certain nombre d'états au cours de sa durée de vie en raison de certains événements ainsi que des actions qui se produisent en raison des événements. Une machine à états est représentée graphiquement par un diagramme de transition d'état.

États et transitions d'État

Etat

L'état est une abstraction donnée par les valeurs des attributs de l'objet à une période donnée. Il s'agit d'une situation survenant pendant une période de temps finie dans la vie d'un objet, dans laquelle il remplit certaines conditions, effectue certaines activités ou attend que certains événements se produisent. Dans les diagrammes de transition d'état, un état est représenté par des rectangles arrondis.

Parties d'un état

  • Name- Une chaîne différencie un état d'un autre. Un État peut ne pas avoir de nom.

  • Entry/Exit Actions - Il désigne les activités effectuées à l'entrée et à la sortie de l'État.

  • Internal Transitions - Les changements dans un état qui n'entraînent pas de changement d'état.

  • Sub–states - États dans les États.

États initiaux et finaux

L'état de départ par défaut d'un objet est appelé son état initial. L'état final indique la fin de l'exécution de la machine à états. Les états initial et final sont des pseudo-états et peuvent ne pas avoir les parties d'un état régulier à l'exception du nom. Dans les diagrammes de transition d'état, l'état initial est représenté par un cercle noir plein. L'état final est représenté par un cercle noir rempli entouré d'un autre cercle noir non rempli.

Transition

Une transition dénote un changement d'état d'un objet. Si un objet est dans un certain état lorsqu'un événement se produit, l'objet peut effectuer certaines activités sous réserve de conditions spécifiées et changer d'état. Dans ce cas, on dit qu'une transition d'état s'est produite. La transition donne la relation entre le premier état et le nouvel état. Une transition est représentée graphiquement par un arc orienté solide de l'état source à l'état de destination.

Les cinq parties d'une transition sont -

  • Source State - L'état affecté par la transition.

  • Event Trigger - L'occurrence à cause de laquelle un objet dans l'état source subit une transition si la condition de garde est satisfaite.

  • Guard Condition - Une expression booléenne qui, si True, provoque une transition à la réception du déclencheur d'événement.

  • Action - Un calcul atomique et ininterrompu qui se produit sur l'objet source en raison d'un événement.

  • Target State - L'état de destination une fois la transition terminée.

Example

Supposons qu'une personne prenne un taxi de la place X à la place Y. Les états de la personne peuvent être: Attente (en attente de taxi), Conduite (il a pris un taxi et y voyage) et Atteint (il a atteint le destination). La figure suivante illustre la transition d'état.

Événements

Les événements sont des occurrences qui peuvent déclencher une transition d'état d'un objet ou d'un groupe d'objets. Les événements ont un emplacement dans le temps et dans l'espace, mais ne sont associés à aucune période. Les événements sont généralement associés à certaines actions.

Des exemples d'événements sont un clic de souris, une pression sur une touche, une interruption, un débordement de pile, etc.

Les événements qui déclenchent des transitions sont écrits à côté de l'arc de transition dans les diagrammes d'états.

Example

Compte tenu de l'exemple illustré dans la figure ci-dessus, la transition de l'état d'attente à l'état de conduite a lieu lorsque la personne prend un taxi. De même, l'état final est atteint lorsqu'il atteint la destination. Ces deux occurrences peuvent être appelées événements Get_Taxi et Reach_Destination. La figure suivante montre les événements dans une machine à états.

Événements externes et internes

Les événements externes sont les événements qui passent d'un utilisateur du système aux objets du système. Par exemple, un clic de souris ou une pression de touche par l'utilisateur sont des événements externes.

Les événements internes sont ceux qui passent d'un objet à un autre objet au sein d'un système. Par exemple, un débordement de pile, une erreur de division, etc.

Événements différés

Les événements différés sont ceux qui ne sont pas immédiatement traités par l'objet dans l'état actuel mais qui sont alignés dans une file d'attente afin qu'ils puissent être traités par l'objet dans un autre état ultérieurement.

Classes d'événements

La classe d'événements indique un groupe d'événements avec une structure et un comportement communs. Comme pour les classes d'objets, les classes d'événements peuvent également être organisées dans une structure hiérarchique. Les classes d'événements peuvent être associées à des attributs, le temps étant un attribut implicite. Par exemple, on peut considérer les événements de départ d'un vol d'une compagnie aérienne, que l'on peut regrouper dans la classe suivante -

Flight_Departs (Flight_No, From_City, To_City, Route)

Actions

Activité

L'activité est une opération sur les états d'un objet qui nécessite une certaine période. Ce sont les exécutions en cours au sein d'un système qui peuvent être interrompues. Les activités sont présentées dans des diagrammes d'activités qui illustrent le flux d'une activité à une autre.

action

Une action est une opération atomique qui s'exécute à la suite de certains événements. Par atomique, on entend que les actions sont ininterrompues, c'est-à-dire que si une action commence à s'exécuter, elle se termine sans être interrompue par aucun événement. Une action peut opérer sur un objet sur lequel un événement a été déclenché ou sur d'autres objets visibles par cet objet. Un ensemble d'actions comprend une activité.

Actions d'entrée et de sortie

L'action d'entrée est l'action qui est exécutée lors de l'entrée dans un état, quelle que soit la transition qui y a conduit.

De même, l'action qui est exécutée en quittant un état, quelle que soit la transition qui en a conduit, est appelée action de sortie.

Scénario

Le scénario est une description d'une séquence d'actions spécifiée. Il décrit le comportement des objets subissant une série d'actions spécifiques. Les scénarios principaux décrivent les séquences essentielles et les scénarios secondaires décrivent les séquences alternatives.

Diagrammes pour la modélisation dynamique

Il existe deux diagrammes principaux utilisés pour la modélisation dynamique -

Diagrammes d'interaction

Les diagrammes d'interaction décrivent le comportement dynamique entre différents objets. Il comprend un ensemble d'objets, leurs relations et le message que les objets envoient et reçoivent. Ainsi, une interaction modélise le comportement d'un groupe d'objets interdépendants. Les deux types de diagrammes d'interaction sont -

  • Sequence Diagram - Il représente l'ordre temporel des messages de manière tabulaire.

  • Collaboration Diagram - Il représente l'organisation structurelle des objets qui envoient et reçoivent des messages via des sommets et des arcs.

Diagramme de transition d'état

Les diagrammes de transition d'état ou les machines à états décrivent le comportement dynamique d'un seul objet. Il illustre les séquences d'états que traverse un objet au cours de sa vie, les transitions des états, les événements et conditions provoquant la transition et les réponses dues aux événements.

Concurrence des événements

Dans un système, deux types de concurrence peuvent exister. Ils sont -

Concurrence du système

Ici, la concurrence est modélisée au niveau du système. Le système global est modélisé comme l'agrégation de machines d'état, où chaque machine d'état s'exécute en même temps que d'autres.

Concurrence dans un objet

Ici, un objet peut émettre des événements simultanés. Un objet peut avoir des états qui sont composés de sous-états, et des événements concurrents peuvent se produire dans chacun des sous-états.

Les concepts liés à la concurrence dans un objet sont les suivants:

États simples et composites

Un état simple n'a pas de sous-structure. Un état qui a des états plus simples imbriqués à l'intérieur est appelé un état composite. Un sous-état est un état imbriqué dans un autre état. Il est généralement utilisé pour réduire la complexité d'une machine à états. Les sous-états peuvent être imbriqués dans n'importe quel nombre de niveaux.

Les états composites peuvent avoir des sous-états séquentiels ou des sous-états concurrents.

Sous-états séquentiels

Dans les sous-états séquentiels, le contrôle d'exécution passe d'un sous-état à un autre sous-état l'un après l'autre de manière séquentielle. Il y a au plus un état initial et un état final dans ces machines à états.

La figure suivante illustre le concept de sous-états séquentiels.

Sous-états simultanés

Dans les sous-états concurrents, les sous-états s'exécutent en parallèle, ou en d'autres termes, chaque état a des machines d'état qui s'exécutent simultanément en son sein. Chacune des machines à états a ses propres états initial et final. Si un sous-état concurrent atteint son état final avant l'autre, la commande attend à son état final. Lorsque toutes les machines à états imbriquées atteignent leur état final, les sous-états se rejoignent en un seul flux.

La figure suivante montre le concept de sous-états simultanés.