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 des activités
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 des activités

Introduction

Le diagramme d’activités est basé sur le diagramme d’états-transitions étudié au chapitre précédent. Il s’agit d’une forme spécifique du diagramme d’états-transitions dans lequel chaque état est associé à une activité et toutes les transitions sont automatiques. Les transitions sont appelées enchaînements dans ce diagramme.

Le diagramme d’activités a ensuite été étendu pour décrire les activités de plusieurs objets. Les enchaînements entre les activités de différents objets peuvent ainsi être représentés, ce qui n’est pas possible avec le diagramme d’états-transitions. Nous verrons, pour chaque activité, comment désigner l’objet qui en est responsable grâce à la notion de couloir.

Le diagramme d’activités offre des alternatives grâce aux conditions de garde. Il peut également contenir des enchaînements de type fourche et réunion pour gérer des activités parallèles.

Nous examinerons les flux d’objets transmis entre les activités ainsi que l’émission et la réception de signaux que nous avons étudiés au chapitre La modélisation du cycle de vie des objets.

Les activités composées ont pour objectif de simplifier l’élaboration du digramme d’activités. Les activités composées standards telles que l’alternative, la boucle, la région d’expansion ainsi que la région d’activités interruptible offrent des possibilités importantes de structuration du diagramme d’activités.

Nous présenterons enfin le diagramme de vue d’ensemble des interactions.

Les activités et les enchaînements d’activités

1. Les activités

Une activité est une série d’actions. Une action consiste à affecter une valeur à un attribut, à créer ou à détruire un objet, à effectuer une opération, à invoquer une méthode d’un autre objet ou de l’objet lui-même, à envoyer un signal à un autre objet ou à lui-même, etc.

Sa représentation graphique est donnée à la figure 9.1.

images/09ri01.png

Figure 9.1 - Représentation graphique d’une activité

Exemple

Nous reprenons l’exemple de l’achat d’une jument introduit dans le chapitre La modélisation des exigences. Le choix de la jument comme la vérification des vaccinations sont des exemples d’activités.

L’activité initiale est la première qui est exécutée. Elle est représentée par un point noir (voir figure 9.2).

images/09ri02.png

Figure 9.2 - Représentation graphique de l’activité initiale

Une activité finale représente la fin de l’exécution de l’ensemble des activités d’un diagramme. Elle n’est pas forcément unique et n’est pas obligatoire.

Une activité finale est représentée par un point noir entouré d’un cercle (voir figure 9.3).

images/09ri03.png

Figure 9.3 - Représentation graphique d’une activité finale

2. Les enchaînements d’activités

Un enchaînement d’activités est un lien orienté entre deux activités. Il est franchi dès que l’activité d’origine est terminée. Son franchissement conduit à l’enclenchement de l’activité de destination.

Il peut être simple, c’est-à-dire...

Les couloirs

À la différence du diagramme d’états-transitions, le diagramme d’activités peut représenter les activités réalisées par plusieurs objets avec leurs enchaînements.

Pour cela, le diagramme est divisé en couloirs. À chaque couloir correspond l’objet responsable de la réalisation de toutes les activités contenues dans ce couloir.

La figure 9.10 illustre la représentation graphique des couloirs. Un enchaînement peut couper la ligne de séparation de deux couloirs pour montrer un changement d’objet entre l’activité d’origine et celle de destination.

images/09ri09.png

Figure 9.10 - Les couloirs d’un diagramme d’activités

Exemple

La figure 9.11 représente l’exemple de l’achat d’une jument où les activités relatives à l’acheteur et à l’élevage vendeur sont décrites.

images/09RI11V4.png

Figure 9.11 - Exemple de diagramme d’activités divisé en couloirs

Les flux d’objets

Les enchaînements d’activités peuvent supporter la transmission d’objets. Ils deviennent alors des flux d’objets. Il est possible de décrire l’objet transporté entre deux activités. La description de la transmission peut prendre deux formes :

  • Soit l’objet transmis est spécifié entre les deux activités, sous la forme d’un rectangle contenant le nom de l’objet suivi d’un deux-points suivi du nom de son type.

  • Soit il convient d’utiliser la notation des pins : un pin de sortie est accolé à l’activité d’origine et un pin d’entrée à l’activité de destination. La liaison entre les deux pins représente le flux d’objets. Le nom et le type des pins sont ceux de l’objet transmis.

Exemple

La figure 9.12 illustre la transmission des papiers de la jument depuis l’élevage vers l’acheteur (voir l’exemple de la figure 9.11), l’objet représentant les papiers étant typé par la classe Document.

images/09RI12V4.png

Figure 9.12 - Transmission d’un objet entre deux activités par un flux d’objets

Exemple

La figure 9.13 représente la même transmission que la figure 9.12. Elle est basée sur l’utilisation d’un pin de sortie et d’un pin d’entrée.

images/09RI13V4.png

Figure 9.13 - Transmission d’un objet  entre deux activités par un flux d’objets décrit par un pin d’entrée et un pin de sortie

Le flux d’objets représente une mémoire tampon (buffer) des objets sortant de l’activité d’origine et allant vers l’activité de destination. UML offre la possibilité de décrire des contraintes sur cette mémoire tampon :

  • {upperBound = n} où...

L’émission et la réception de signaux

Dans le chapitre La modélisation du cycle de vie des objets, la notion de signal transmis entre des objets a été présentée. Dans un diagramme d’activités, il est possible de mettre en œuvre l’envoi asynchrone d’un signal par un objet ainsi que la réception d’un signal par un objet. Ces deux possibilités sont décrites par des activités spécifiques représentées à la figure 9.15. La partie gauche de cette figure montre une activité d’envoi d’un signal. L’envoi est asynchrone : après l’envoi du signal, l’objet passe à l’activité suivante. La partie droite montre la réception d’un signal. Celle-ci est bloquante. L’objet doit recevoir le signal avant de pouvoir passer à l’activité suivante.

Pour simplifier l’écriture des diagrammes, le nom des activités correspond au nom du signal.

images/09RI15V4.png

Figure 9.15 - Activités d’envoi et de réception d’un signal

Exemple

La figure 9.16 illustre un envoi et une réception de signal. Le service des achats d’un élevage prépare une commande puis l’envoie de façon asynchrone à un fournisseur. Dès la fin de l’envoi, le service des achats passe à une autre activité, à savoir la vérification des commandes en cours. Dans l’autre couloir du diagramme, le fournisseur attend une commande avant de la traiter.

images/09RI16V4.png

Figure 9.16 - Exemple d’envoi et de réception d’un signal

La réception d’un signal peut aussi être liée au temps. Un événement de description du temps sera inséré dans le diagramme. Il est présenté à la figure...

Les activités composées

Une activité peut être composée d’autres activités. Dans ce cas, un diagramme d’activités spécifique en décrit la composition en sous-activités. Dans les diagrammes où elle est présente, une activité composée est représentée avec un symbole de fourche.

La figure 9.19 montre la composition d’une activité en sous-activités. La figure 9.20 illustre l’activité sans sa composition, telle qu’elle peut être utilisée au sein d’un diagramme d’activités.

images/09RI19V4.png

Figure 9.19 - Composition en sous-activités d’une activité

images/09ri12.png

Figure 9.20 - Représentation d’une activité composée

Une activité composée peut être également dotée de pins d’entrée et de sortie, ce qui rend possible l’écriture d’activités composées paramétrables, comme des activités de fonctions de calcul qui prennent un ou plusieurs paramètres et renvoient un résultat.

Exemple

La figure 9.21 représente la gestion du paiement d’une jument en intégrant la négociation du prix. Cette gestion est incluse dans le diagramme global d’achat à la figure 9.22 en tant qu’activité composée où elle est, en conséquence, représentée avec une fourche.

images/09RI21V4.png

Figure 9.21 - Exemple d’activité composée

images/09RI22V4.png

Figure 9.22 - Exemple d’inclusion d’une activité composée

Les activités d’alternative et de boucle

Il est également possible de représenter une alternative ou une boucle à l’aide d’une activité composée spécialisée. La figure 9.23 montre, dans la partie supérieure, l’activité d’alternative qui comprend un test et un corps (body) et, dans la partie inférieure, l’activité de boucle qui comprend une phase d’initialisation (setup), un test et un corps (body).

La sémantique de l’activité d’alternative est la suivante : si le test qui est une expression logique est vrai, alors le corps est exécuté. La boucle est du type "tant que". Sa sémantique est la suivante : l’initialisation est d’abord exécutée, puis, tant que le test est vrai, le corps est exécuté.

L’activité qui correspond au test détient un pin de sortie dont le type est Boolean. Ce pin de sortie sert à transmettre le résultat du test à l’activité composée.

images/09RI23V4.png

Figure 9.23 - Activités d’alternative et de boucle

Exemple

L’exemple de la figure 9.6 est représenté à la figure 9.24 au moyen d’une activité d’alternative.

images/09RI24V4.png

Figure 9.24 - Exemple d’activité d’alternative

Exemple

L’exemple de la figure 9.21 est représenté à la figure 9.25 au moyen d’une activité de boucle. Il convient de noter que l’activité d’évaluation du prix a dû être dupliquée, un effet habituel de la boucle "tant que".

images/09RI25V4.png

Figure 9.25 - Exemple d’activité de boucle

Les régions d’activités interruptibles

Une région d’activités interruptible inclut un groupe de nœuds d’activité dont l’exécution peut être interrompue par une exception. Cette exception va détourner le flux de contrôle vers une nouvelle activité qui va recevoir les informations de cette exception sur l’un de ses pins d’entrée.

Exemple

Nous reprenons l’exemple de la figure 9.9 que nous simplifions à la figure 9.26 en conservant principalement la négociation du prix. Cette partie du diagramme d’activités forme maintenant une région d’activités interruptible. Elle est dotée d’une activité de réception d’un signal, à savoir l’abandon de la négociation (pour des raisons non détaillées sur le diagramme). La réception de ce signal a pour effet de déclencher une exception qui détourne le flux de contrôle vers l’activité de clôture du dossier, activité qui reçoit alors les informations de l’exception sur son pin d’entrée.

images/09RI26V4.png

Figure 9.26 - Exemple de région d’activités interruptible et d’exception

Les régions d’expansion

Une région d’expansion est une activité composée dont l’exécution se répète pour chaque élément d’une collection transmise sur un pin d’entrée spécial. Le résultat est également transmis sur un pin de sortie spécial qui correspond également à une collection. Une telle région correspond soit à un traitement itératif, soit à un traitement parallèle, soit à un traitement de type flux (stream) sur tous les éléments de la collection. Ces trois modes de traitement sont fixés par les stéréotypes suivants :

  • «iterative» : les éléments de la collection sont traités les uns après les autres. Chaque élément est traité séquentiellement par les différentes activités de la région.

  • «parallel» : les éléments de la collection sont traités en parallèle. Au sein de chaque processus, l’élément correspondant est traité séquentiellement par les différentes activités de la région.

  • «stream» : les éléments sont traités en mode flux par les différentes activités de la région qui s’exécutent en parallèle. À un moment donné, une activité peut avoir traité plus d’éléments qu’une autre située en aval de la première. Dès lors, les éléments de la collection peuvent se situer à des stades d’avancement différents du traitement.

Exemple

La figure 9.27 montre un diagramme d’activités relatif à la préparation des papiers d’un ensemble de chevaux vendus...

Le diagramme de vue d’ensemble des interactions

Le diagramme de vue d’ensemble des interactions est un diagramme d’activités où chaque activité peut être décrite par un diagramme de séquence. La figure 9.28 montre la représentation graphique d’un tel diagramme.

images/09ri15.png

Figure 9.28 - Diagramme de vue d’ensemble des interactions

Conclusion

Le diagramme d’activités représente les activités que réalisent un ou plusieurs objets. Il peut correspondre à la description en détail d’une activité du diagramme d’états-transitions, à la description d’une méthode ou d’un programme, etc. Il peut également décrire l’activité d’un système ou d’un sous-système en assignant les responsabilités à chaque acteur. Le diagramme d’activités constitue aussi un bon choix pour décrire un cas d’utilisation.

Exercices

1. Le spectacle équestre

Construisez le diagramme d’activités de l’achat d’un billet de spectacle équestre.

2. Le tiercé

Construisez le diagramme d’activités de la vérification de la caisse d’un guichet de tiercé (uniquement par rapport aux billets vendus, sans prendre en compte le paiement des gains).