Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. UML 2.5
  3. La modélisation du cycle de vie des objets
Extrait - UML 2.5 Initiation, exemples et exercices corrigés (5e édition)
Extraits du livre
UML 2.5 Initiation, exemples et exercices corrigés (5e édition)
4 avis
Revenir à la page d'achat du livre

La modélisation du cycle de vie des objets

Introduction

Après avoir étudié les interactions et les aspects statiques des objets du système, nous allons maintenant aborder leur cycle de vie. Le cycle de vie d’un objet représente les différentes étapes ou états qu’il va suivre pour concourir, au sein du système, à la réalisation d’un objectif. Un état correspond à un moment d’activité ou d’inactivité de l’objet. L’inactivité se produit lorsque l’objet attend que d’autres objets finissent une activité.

Nous étudierons la notion d’événement qui fait changer l’objet d’état. Le changement d’état consiste à franchir une transition.

Le diagramme d’états-transitions illustre l’ensemble des états du cycle de vie d’un objet séparés par des transitions. Chaque transition est associée à un événement.

Nous étudierons en détail la notion de signal. Nous verrons qu’il est possible d’associer des conditions au franchissement des transitions et de gérer ainsi des alternatives. Nous étudierons comment la jonction et l’alternative facilitent l’élaboration des diagrammes d’états-transitions.

La notion d’état composé sera examinée afin de simplifier l’écriture du diagramme d’états-transitions. Nous verrons qu’il est possible de disposer de sous-états évoluant en parallèle.

Enfin, nous présenterons le diagramme de timing qui décrit les changements d’état d’un objet lorsqu’ils sont exclusivement fonction du temps.

La notion d’état

L’état d’un objet correspond à un moment de son cycle de vie. Pendant qu’il se trouve dans un état, un objet peut se contenter d’attendre un signal provenant d’autres objets. Il est alors inactif. Il peut également être actif et réaliser une activité. Une activité est l’exécution d’une série de méthodes et d’interactions avec d’autres objets. Elle est liée à un objectif. Au chapitre La modélisation des activités, nous étudierons en détail leur description grâce aux diagrammes d’activités.

Exemple

Lors d’un concours de saut d’obstacles, le cheval est dans l’état de repos avant de commencer la compétition. Il s’agit d’un état où il est inactif et attend l’ordre de départ.

Lorsqu’il saute un obstacle, le cheval est dans un état où il est actif et qui se termine lorsqu’il a fini de sauter l’obstacle.

L’ensemble des états du cycle de vie d’un objet contient un état initial. Celui-ci correspond à l’état de l’objet juste après sa création. Il peut également contenir un ou plusieurs états finaux ou de terminaison. Les états de terminaison correspondent à une phase de destruction de l’objet. Il arrive également qu’il n’existe pas d’état final ou de terminaison car le cycle de vie d’un objet peut être constitué d’une boucle perpétuelle.

Le changement d’état

1. La notion d’événement

Un événement est un fait qui déclenche le changement d’état. UML définit cinq genres d’événements :

  • AnyReceivedEvent : correspond à un événement quelconque. Toutefois, il ne déclenche le changement d’état que si aucun autre événement dont le genre n’est pas AnyReceivedEvent n’enclenche au même instant un changement d’état. La syntaxe de cet événement est le mot-clé all.

  • CallEvent : un événement CallEvent se produit quand la méthode spécifiée est invoquée.

  • ChangeEvent : un événement ChangeEvent se produit quand un changement s’est produit dans le système. Ce changement est décrit par une expression logique qui devient vraie à l’instant où le changement se produit.

  • TimeEvent : un événement TimeEvent est spécifié par une instruction indiquant un temps absolu ou relatif. Si le temps est relatif, l’instruction prend la syntaxe after expression. Si le temps est absolu, l’instruction prend la syntaxe at expression. Dans les deux cas, dès que le temps indiqué est atteint, l’événement se produit.

  • SignalEvent : un événement SignalEvent se produit quand un signal est reçu.

Un signal peut être émis par tout objet, y compris par l’objet qui attend ce signal pour changer d’état.

UML propose de décrire les signaux par des classes. Chaque signal émis et reçu est alors une instance d’une classe de signaux. Pour les distinguer des autres classes, les classes de signaux sont décrites avec le stéréotype «signal». Les attributs...

L’élaboration du diagramme d’états-transitions

Le diagramme d’états-transitions représente le cycle de vie des instances d’une classe (ou une partie de ce cycle).

Il décrit les états, les transitions qui les lient et les événements qui provoquent le franchissement des transitions.

Un tel diagramme n’est utile que pour les objets qui ont un cycle de vie. D’autres objets, purement porteurs d’information, ne changent pas d’état au cours de leur vie. Pour ces objets, il est inutile de concevoir un diagramme d’états-transitions.

1. La représentation graphique des éléments de base

Un état est représenté par un rectangle aux coins arrondis contenant son nom. La figure 8.2 montre la représentation graphique d’un état.

images/08ri02.png

Figure 8.2 - Représentation graphique d’un état

Dans un diagramme d’états-transitions, le premier état correspond à l’état initial de l’objet à l’issue de sa phase de création. Cet état est unique dans un diagramme d’états-transitions.

L’état initial est représenté par un point noir (voir figure 8.3).

images/08ri03.png

Figure 8.3 - Représentation graphique de l’état initial

Un état final correspond à la fin du cycle de vie décrit par le diagramme d’états-transitions.

Un état final est représenté par un point noir entouré d’un cercle (voir figure 8.4).

images/08ri04.png

Figure 8.4 - Représentation graphique d’un état final

Un état de terminaison est représenté par une croix à la figure 8.5. Quand cet état est atteint, ceci signifie la fin du cycle de vie de l’objet et sa destruction.

images/08RI05V4.png

Figure 8.5 - Représentation...

Le diagramme de timing

Le diagramme de timing est introduit pour montrer les changements d’état d’un objet quand ceux-ci dépendent exclusivement du temps. Le diagramme indique alors la durée minimale et/ou maximale de chaque état à l’aide de contraintes temporelles.

La figure 8.25 fournit la représentation graphique du diagramme de timing.

images/08RI25V4.png

Figure 8.25 - Diagramme de timing

Exemple

Dans un concours d’obstacles, un cavalier doit réaliser l’épreuve en-deçà d’un temps maximal, sinon il est éliminé. Il décompose lui-même ce temps sur chaque partie de l’épreuve afin d’être sûr de réussir l’épreuve. La figure 8.26 illustre le diagramme de timing correspondant.

images/08RI26V4.png

Figure 8.26 - Exemple de diagramme de timing

Conclusion

Le diagramme d’états-transitions décrit le cycle de vie des objets chargés d’assurer la dynamique du système. Cette description du cycle de vie est réalisée séparément pour chacun de ces objets.

Cette modélisation est très importante pour s’assurer que les objets peuvent répondre aux interactions décrites dans les diagrammes de séquence et de communication que nous avons étudiés au chapitre La modélisation de la dynamique. 

Exercices

1. Le ticket de course de tiercé

Dans quels états peut se trouver un ticket de course de tiercé ?

Construisez le diagramme d’états-transitions d’une instance de la classe Ticket

2. La course de chevaux

Dans quels états peut se trouver une course de chevaux ?

Construisez le diagramme d’états-transitions d’une instance de la classe Course.

3. Le manège de bois

Décrivez les différents états possibles d’un manège de chevaux de bois et construisez le diagramme d’états-transitions correspondant.