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.
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).
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).
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.
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.
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.
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.
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.
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.
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.
Figure 9.19 - Composition en sous-activités d’une activité
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.
Figure 9.21 - Exemple d’activité composée
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.
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.
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".
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.
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.
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).