La modélisation de la dynamique
Introduction
Ce chapitre a pour objectif de vous faire découvrir comment UML représente les interactions entre les objets. Au chapitre Les concepts de l’approche par objets, nous avons découvert que les objets d’un système possèdent leur propre comportement et interagissent entre eux afin de doter le système de sa dynamique globale. Au chapitre La modélisation des exigences, nous avons étudié la façon dont les cas d’utilisation représentent les actions et réactions entre un acteur externe et le système. Du point de vue de la modélisation, ces deux types d’interactions se distinguent par leur différence interne/externe mais nullement par leur nature.
UML propose deux diagrammes pour répondre à ce besoin de représentation des interactions entre objets :
-
Le diagramme de séquence se focalise sur les aspects temporels.
-
Le diagramme de communication se focalise sur la représentation spatiale.
Dans ce chapitre, nous allons étudier ces deux diagrammes. Nous examinerons ensuite comment découvrir progressivement les objets composant un système. Cette découverte sera basée sur les interactions entre les objets intervenant dans les cas d’utilisation du système. Pour représenter ces interactions, nous ferons le choix du diagramme de séquence, cette option ayant très souvent la faveur des personnes chargées de la modélisation d’un projet.
Le diagramme de séquence
1. Introduction
Le diagramme de séquence décrit la dynamique du système. À moins de modéliser un très petit système, il est difficile de représenter toute la dynamique d’un système sur un seul diagramme. Aussi la dynamique globale sera représentée par un ensemble de diagrammes de séquence, chacun étant généralement lié à une sous-fonction du système. Nous étudierons les caches d’interaction qui facilitent cette possibilité de représentation.
Le diagramme de séquence décrit les interactions entre un groupe d’objets en montrant, de façon séquentielle, les envois de message qui interviennent entre les objets. Le diagramme peut également montrer les transmissions de données échangées lors des envois de message.
Pour interagir entre eux, les objets s’envoient des messages. Lors de la réception d’un message, un objet devient actif et exécute la méthode de même nom. Un envoi de message est donc un appel de méthode.
2. La ligne de vie d’un objet
Comme il représente la dynamique du système, le diagramme de séquence fait entrer en action les instances des classes intervenant dans la réalisation de la sous-fonction qui lui est liée. À chaque instance est associée une ligne de vie qui montre ses actions et réactions, ainsi que les périodes pendant lesquelles elle est active, c’est-à-dire où elle exécute l’une de ses méthodes.
La représentation graphique de la ligne de vie est illustrée à la figure 5.1.
Figure 5.1 - Lignes de vie
La notation rôle : Classe représente le rôle d’une instance suivi du nom de sa classe. Dans cet ouvrage...
Les cadres d’interaction
Un cadre d’interaction décrit, à l’aide d’un diagramme de séquence, une partie de la dynamique d’un système. La dynamique du système est décrite, dans sa totalité, par un ensemble de cadres d’interaction. Il est possible d’envisager une description modulaire de cette dynamique. En effet, il est possible de référencer dans un cadre d’interaction un ou plusieurs autres cadres d’interaction.
Un cadre d’interaction intègre un diagramme de séquence et un cartouche qui précise le nom du cadre et ses éventuels paramètres. La figure 5.13 illustre un exemple de cadre d’interaction appelé enregistreCheval et qui montre en détail l’enregistrement de la vente d’un cheval aux haras nationaux et dans le système d’information relatif aux équidés (SIRE). Le cartouche contient l’abréviation sd (sequence diagram) et le nom du cadre d’interaction.
Figure 5.13 - Cadre d’interaction : l’enregistrement de la vente d’un cheval
Ce cadre d’interaction est référencé dans le diagramme de séquence de la figure 5.14. Cette référence impose que les lignes de vie des objets présentes dans le cadre d’interaction référencé soient également présentes dans le diagramme de séquence qui le référence. Le cadre d’interaction est représenté de façon simplifiée : seul son nom est présent et accompagné du cartouche ref (référence). Le premier envoi de message est le message réflexif relatif à la préparation du certificat. Ensuite, c’est le message enregistreVente avec le paramètre certificat qui est activé....
Les fragments combinés
Les fragments combinés sont des unités d’interaction définies dans UML. Ils offrent le support de nombreuses constructions comme les alternatives, les boucles, le parallélisme, etc. et confèrent au diagramme de séquence le statut d’un véritable modèle des interactions.
1. Introduction
Un fragment combiné est une partie du diagramme de séquence. Il est représenté par un rectangle associé à une étiquette. Celle-ci contient un opérateur qui en détermine la modalité d’exécution. Les modalités les plus utilisées sont l’option, l’alternative et la boucle.
2. L’option
L’option s’obtient en utilisant l’opérateur opt suivi d’une condition sous la forme d’une expression logique (voir figure 5.19). Si la condition est vérifiée, le contenu du fragment est exécuté.
Figure 5.19 - L’option
3. L’alternative
L’alternative est un fragment combiné comprenant plusieurs conditions de test puis le mot-clé else (voir figure 5.20). Le fragment est scindé en plusieurs parties dont le contenu n’est exécuté que si la condition associée est remplie. Le contenu de la dernière partie est associé au mot-clé else (sinon). Il est exécuté uniquement si aucune des conditions précédentes n’est vérifiée.
La partie associée au mot-clé else n’est pas obligatoire.
Figure 5.20 - L’alternative
4. La boucle
La boucle est réalisée par l’opérateur loop suivi des paramètres min, max et associé à une condition (voir figure 5.21). Le contenu du fragment est exécuté min fois, puis tant que la condition de test...
Le diagramme de communication
1. La représentation des objets
Le diagramme de communication est une alternative au diagramme de séquence. Il se focalise sur une représentation spatiale des objets.
Chaque objet intervient dans ce diagramme de la même façon que dans le diagramme de séquence. Il est relié graphiquement aux objets avec lesquels il interagit.
Le cadre dans lequel apparaît l’objet est également appelé ligne de vie comme dans le diagramme de séquence.
2. Le message et l’ordre des messages
Les envois de message sont placés le long des liens interobjets. Les messages sont obligatoirement numérotés, la numérotation composée étudiée dans le cadre des diagrammes de séquence pouvant également être employée.
La figure 5.33 illustre le diagramme de communication qui correspond au diagramme de séquence de la figure 5.4.
Figure 5.33 - Diagramme de communication
Il est également possible de transmettre des informations (paramètres et retour de message) lors de l’envoi, de la même façon que dans le cas du diagramme de séquence.
Exemple
Dans un troupeau de chevaux, il existe une jument dominante qui est responsable de l’éducation de tous les poulains. Elle peut passer le relais à une autre jument pour la surveillance d’un poulain particulier.
Dans l’exemple de la figure 5.34, la jument dominante délègue la surveillance du poulain Espiègle à une autre jument, qui lui donne un ordre auquel il refuse d’obéir. Il est donc puni.
Figure 5.34 - Diagramme de communication : la surveillance du poulain Espiègle
3. Les messages parallèles
Les messages envoyés en parallèle sont numérotés à l’aide d’un numéro d’ordre...
Découvrir les objets du système
Nous avons vu qu’il est aisé de représenter un cas d’utilisation par un diagramme de séquence.
Dans ce diagramme, le système est représenté sous la forme d’un objet et les interactions avec l’extérieur se produisent le long de sa ligne de vie.
Pour découvrir les objets du système à partir d’un cas d’utilisation, une première phase consiste à se demander à quels objets du système sont destinés les messages provenant de l’extérieur.
Leur détermination constitue une première étape de décomposition du système en objets.
Exemple
Dans l’exemple du cas d’utilisation d’achat d’une jument, les interactions entre l’acheteur et l’élevage de chevaux peuvent être décomposées en interactions entre d’une part l’acheteur et d’autre part le directeur, le comptable ou le palefrenier de l’élevage (voir figure 5.37).
Figure 5.37 - Premier enrichissement du diagramme de séquence d’achat d’une jument
Dans un second temps, les messages reçus par les objets du système sont décomposés progressivement ; on continue ainsi de découvrir au fur et à mesure les objets du système. En effet, la décomposition des messages oblige à utiliser de nouveaux objets qui répondent aux fonctionnalités requises.
Cette décomposition s’accompagne fréquemment d’un enrichissement de la description des messages au niveau de la transmission des informations. En effet, le traitement de ces informations implique souvent l’utilisation de nouveaux objets.
Exemple
Lorsque le directeur reçoit la demande des papiers de la jument, il fait appel à...
Conclusion
Les diagrammes de séquence et de communication sont importants pour les raisons suivantes :
-
Illustrer et vérifier le comportement d’un ensemble d’objets (système ou sous-système) ;
-
Aider à la découverte des objets du système ;
-
Aider à la découverte des méthodes des objets.
Grâce aux fragments combinés, les diagrammes de séquence peuvent être utilisés pour décrire les cas d’utilisation.
Les diagrammes de séquence mettent en avant les aspects temporels tandis que les diagrammes de communication montrent les liaisons entre les classes.
Exercices
1. L’hippodrome
Construisez le diagramme de séquence d’achat d’un billet pour une course de chevaux.
Quels sont les objets du système ainsi découverts ?
2. La centrale d’achat des chevaux
Construisez le diagramme de séquence d’une prise de commande de produits sur le site Internet de la centrale d’achat des chevaux.
Quels sont les objets du système ainsi découverts ?