Partager via


Diagrammes d'activités UML : instructions

Dans Visual Studio Ultimate, vous pouvez dessiner un diagramme d'activités pour décrire un processus d'entreprise ou un algorithme de logiciel sous la forme d'un flux de travail via une série d'actions. Les personnes, composants logiciel ou périphériques peuvent exécuter ces actions. Pour une démonstration vidéo, consultez : Vidéo : Capture des flux de travail d'entreprise à l'aide de diagrammes d'activités (éventuellement en anglais).

Pour créer un diagramme d'activités UML, dans le menu Architecture, cliquez sur Nouveau diagramme.

Vous pouvez utiliser un diagramme d'activités à de nombreuses fins :

Le dessin d'un diagramme d'activités peut vous aider à améliorer un processus. Si le diagramme d'un processus existant s'avère particulièrement complexe, vous pouvez envisager sa simplification.

Pour obtenir des informations de référence concernant les éléments de diagrammes d'activités, consultez Diagrammes d'activités UML : référence.

Dans cette rubrique

Relation aux autres diagrammes

Étapes de base pour dessiner des diagrammes d'activités

Description du flux de contrôle

Description du flux de données

Définition d'une action de manière plus détaillée

Flux simultanés

Relation aux autres diagrammes

Si vous dessinez un diagramme d'activités pour décrire un processus d'entreprise ou la manière dont les utilisateurs se servent de votre système, vous pouvez dessiner un diagramme de cas d'usage pour afficher une vue différente des mêmes informations. Dans le diagramme de cas d'usage, vous dessinez des actions sous la forme de cas d'usage. Attribuez les mêmes noms que ceux des actions correspondantes aux cas d'usage. Grâce à la vue des cas d'usage, vous pouvez :

  • afficher dans un diagramme la façon dont les actions/cas d'usage plus importantes sont composées de plus petites, à l'aide de la relation Include ;

  • connecter explicitement chaque action/cas d'usage aux utilisateurs ou aux systèmes externes impliqués dans son exécution ;

  • dessiner des limites autour des actions/cas d'usage pris en charge par votre système, ou chacun de ses composants principaux.

Vous pouvez également dessiner un diagramme d'activités pour décrire la conception détaillée d'une opération logicielle.

Dans un diagramme d'activités, vous pouvez afficher la circulation de données passée entre des actions. Consultez la section sur la Description du flux de données. Mais un diagramme d'activités ne décrit pas la structure des données. Pour cet objectif, vous pouvez dessiner un diagramme de classes UML. Pour plus d'informations, consultez Diagrammes de classes UML : indications.

Étapes de base pour dessiner des diagrammes d'activités

Les étapes détaillées de création de l'un des diagrammes de modélisation sont décrites dans Comment : modifier des diagrammes et un modèle UML.

Pour dessiner un diagramme d'activités

  1. Dans le menu Architecture, cliquez sur Nouveau diagramme.

  2. Sous Modèles, cliquez sur Diagramme d'activités UML.

  3. Nommez le diagramme.

  4. Dans Ajouter au projet de modélisation, sélectionnez un projet de modélisation existant dans votre solution ou Créer un nouveau projet de modélisation.

Pour dessiner des éléments sur un diagramme d'activités

  1. Faites glisser les éléments de la boîte à outils sur le diagramme.

    Placez d'abord les activités principales sur le diagramme, connectez-les, puis apportez les dernières finitions telles que les nœuds initiaux et finaux.

    Notes

    Vous ne pouvez pas faire glisser d'éléments existants sur le diagramme de l'Explorateur de modèles UML.

  2. Pour connecter les éléments, suivez ces étapes :

    1. Dans la boîte à outils Activity Diagram, cliquez sur Connecteur.

    2. Sur le diagramme, cliquez sur l'élément source.

    3. Cliquez sur l'élément cible.

      Notes

      Pour utiliser un outil plusieurs fois, double-cliquez dessus dans la boîte à outils.

Pour déplacer une activité vers un autre package

  • Dans l'Explorateur de modèles UML, faites glisser l'activité dans un package.

    - ou -

  • Dans l'Explorateur de modèles UML, cliquez avec le bouton droit sur l'activité et cliquez sur Couper. Cliquez alors avec le bouton droit sur le package, puis cliquez sur Coller.

    Notes

    L'activité s'affichera uniquement dans l'Explorateur de modèles UML lorsque vous ajoutez le premier élément au diagramme.

Description du flux de contrôle

Un diagramme d'activités décrit un processus d'entreprise ou un algorithme de logiciel sous la forme d'une série d'actions. Les flèches du connecteur montrent la façon dont le contrôle passe de manière séquentielle d'une action à la suivante. Normalement, une action peut démarrer uniquement après que l'action précédente a été effectuée.

L'illustration suivante est un exemple d'affichage d'une séquence d'actions montrant les actions, les connecteurs, les branches et les boucles. Chaque élément est expliqué en détail dans les sections suivantes.

Diagramme d'activités simple

Les diagrammes d'activités utilisent des Actions et des Connectors pour décrire votre système ou votre application de manière séquentielle sous la forme d'une série d'actions dont le flux va d'une action à la suivante.

  • Créez une Action (1) pour chaque tâche principale exécutée par un utilisateur, le système, ou les deux à la fois en collaboration.

    Notes

    Essayez de décrire votre processus ou algorithme avec seulement quelques actions. Vous pouvez utiliser Call Behavior Actions pour définir chaque action plus en détail dans un diagramme séparé, comme cela est décrit dans Description des sous-activités avec Call Behavior Actions.

  • Assurez-vous que le titre de chaque action indique clairement ce qu'il accomplit normalement.

  • Liez dans l'ordre les actions avec Connectors (2).

  • Chaque action se termine avant que l'action suivante dans le flux de contrôle ne commence. Si vous souhaitez décrire des actions qui se chevauchent, utilisez un Nœud de bifurcation comme décrit dans la section Flux simultanés.

Bien que le diagramme décrive la séquence d'actions, il ne décrit pas comment les actions sont exécutées, ou comment le contrôle est passé d'une action à la suivante. Si vous utilisez le diagramme pour représenter un processus d'entreprise, le contrôle peut être passé, par exemple, lorsqu'une personne envoie un message électronique à une autre. Si vous utilisez le diagramme pour représenter une conception de logiciels, le contrôle peut être passé par le biais du flux normal d'exécution d'une instruction à la suivante.

Description des décisions et des boucles

  • Utilisez un Nœud de décision (3) pour indiquer un point auquel le résultat d'une décision dicte l'étape suivante. Vous pouvez dessiner autant de chemins d'accès sortants que vous souhaitez.

  • Si vous utilisez le diagramme d'activités pour définir une partie d'une application, vous devez définir les gardes (4) afin de marquer clairement lorsque chaque chemin d'accès doit être pris. Cliquez avec le bouton droit sur le connecteur, cliquez sur Propriétés, et dans la fenêtre Propriétés, tapez une valeur pour le champ Garde.

  • Il n'est pas toujours nécessaire de définir les gardes. Par exemple, si vous utilisez le diagramme d'activités pour décrire un processus d'entreprise ou un protocole d'interaction, une branche définit la plage d'options ouverte à l'utilisateur ou aux composants interactifs.

  • Utilisez un Nœud de fusion (5) pour réunir deux ou plusieurs autres flux possédant des branches à un Nœud de décision.

    Notes

    Vous devez utiliser un Nœud de fusion pour réunir d'autres flux, au lieu de réunir les flux à une action. Dans l'exemple, cela ne serait pas correct de se reconnecter à partir du nœud de décision directement à Choisir un élément de menu. C'est parce qu'une action ne démarre pas tant que les threads de contrôle ne sont pas arrivés à tous leurs connecteurs entrants. Par conséquent, vous devez réunir uniquement des flux simultanés à une action. Pour plus d'informations, consultez Flux simultanés.

  • Utilisez les branches pour décrire des boucles, comme indiqué dans l'exemple.

    Notes

    Essayez d'imbriquer des boucles d'une façon correctement structurée, comme vous le feriez dans le code du programme. Si vous décrivez un processus d'entreprise existant, c'est peut-être l'occasion de l'améliorer.

Démarrage de l'activité

Il y a deux façons d'indiquer des points d'entrée dans une activité :

  • Nœud initial

    Créez un Nœud initial (6) pour indiquer la première action de l'activité.

    Cette méthode est très utile lorsque vous décrivez une sous-activité, ou lorsque vous n'avez pas à indiquer de manière explicite ce qui initialise l'activité. Par exemple, l'activité Commander un repas commence réellement lorsqu'un client devient affamé.

  • Nœud Accepter un événement

    Créez des nœuds Accepter un événement comme décrit dans la section Flux simultanés, pour indiquer le démarrage d'un thread qui répond à un événement particulier, tel qu'une entrée d'utilisateur. Ne fournissez pas de flux entrant au nœud. L'omission d'un flux entrant indique qu'un thread sera démarré chaque fois que l'événement a lieu.

    Cette méthode est très utile lorsque vous décrivez une réponse à un événement externe spécifique.

Fin de l'activité

Utilisez un Nœud final de l'activité (7) pour indiquer la fin d'une activité.

  • Lorsqu'un thread de contrôle atteint un Nœud final de l'activité, les actions simultanées de toute l'activité et des sous-activités se terminent.

  • Vous pouvez utiliser plusieurs nœuds finaux de l'activité pour réduire l'encombrement de connecteurs supplémentaires.

Interruption de l'activité

Pour décrire la façon dont le flux ordinaire d'une activité peut être interrompu, par exemple si l'utilisateur décide d'annuler le processus, vous pouvez créer un nœud Accepter un événement qui écoute pour cet événement. Pour plus d'informations, consultez la section Flux simultanés. Créez un flux de contrôle à partir de ce dernier vers un nœud final de l'activité (7).

Couloirs

Il est quelquefois utile de réorganiser les actions d'une activité dans les zones qui correspondent aux différents objets ou aux rôles d'entreprise qui exécutent les actions. Ces zones sont réorganisées de manière conventionnelle en colonnes et sont appelées couloirs.

  • Utilisez les lignes ou les rectangles de la section Formes simples de la Boîte à outils pour dessiner des couloirs ou d'autres zones.

  • Pour étiqueter chaque couloir, créez un commentaire et affectez à sa propriété Transparent la valeur True.

Les formes simples ne font pas partie du modèle UML et ne s'affichent pas dans l'Explorateur de modèles UML.

Description du flux de données

Vous pouvez décrire les données qui passent à l'intérieur et à l'extérieur d'une activité de deux manières :

  • Utilisez un Nœud d'objet. Il s'agit de la méthode la plus simple pour décrire des informations qui circulent entre des activités. Un nœud d'objet s'apparente à une variable dans un programme. Il représente un élément de stockage d'une ou plusieurs valeurs qui passent d'une action à une autre.

  • Utilisez une Broche de sortie et une Broche d'entrée. Cette méthode vous permet de décrire séparément les sorties d'une action et les entrées vers une autre. Les broches s'apparentent à des paramètres dans un programme. Les broches représentent des ports par lesquels les objets peuvent entrer dans une action et la quitter.

    Notes

    Pour une vue d'ensemble des éléments utilisés dans cette section, consultez la section Flux de données de la rubrique Diagrammes d'activités UML : référence.

Description du flux de données avec les nœuds d'objet

La plupart des flux de contrôle transportent des données. Par exemple, le flux de sortie de l'action « Le client fournit des détails » transporte une référence à l'adresse d'expédition.

Si vous souhaitez décrire ces données sur votre diagramme, vous pouvez remplacer un connecteur par un nœud d'objet et deux connecteurs comme indiqué dans l'illustration suivante.

Les nœuds d'objet peuvent afficher des données passées entre des actions

Remarquez que les rectangles aux angles arrondis, tels que Expédier les marchandises, représentent des actions où se déroule le traitement. Les rectangles aux angles arrondis, tels que Adresse d'expédition, représentent un flux d'objets d'une action vers une autre.

Donnez au nœud d'objet un nom qui reflète le rôle du nœud en tant que conduit ou mémoire tampon des objets qui circulent entre les actions.

Vous pouvez définir le Type du nœud d'objet dans la fenêtre Propriétés. Le type peut être un type primitif tel qu'Entier, ou une classe, une interface ou une énumération que vous avez définie dans un diagramme de classes. Par exemple, vous pourriez créer une classe Adresse d'expédition, avec les attributs Adresse postale, Ville, etc. avec une association à une autre classe nommée Client. Pour plus d'informations, consultez Diagrammes de classes UML : indications.

Notes

Si vous tapez le nom d'un type qui n'a pas encore été défini, un élément sera ajouté sous Types non spécifiés dans l'Explorateur de modèles UML. Si vous définissez par la suite un type de ce nom dans un diagramme de classes, vous devez réinitialiser le type du nœud d'objet afin qu'il fasse référence au nouveau type.

Mise en mémoire tampon de données dans des nœuds d'objet

Un nœud d'objet peut jouer le rôle d'une mémoire tampon pour plusieurs objets. Dans l'illustration suivante, le flux de contrôle indique que l'utilisateur peut reprendre la boucle [sélection supplémentaire] (1) plusieurs fois, tandis que le nœud d'objet Éléments de menu choisis (2) accumule les choix de l'utilisateur. Enfin, lorsque l'utilisateur a complété sa sélection, le contrôle passe à l'action Confirmer la commande (3), qui accepte la liste complète de choix de la mémoire tampon Éléments de menu choisis.

Mise en mémoire tampon de données dans des nœuds d'objet

Vous pouvez spécifier le stockage des éléments dans une mémoire tampon en définissant les propriétés du nœud d'objet :

  • Définissez la propriété Ordering :

    • Non ordonné pour spécifier un ordre aléatoire ou non spécifié. (valeur par défaut).

    • Ordonné pour spécifier un ordre d'après une clé spécifique.

    • Fifo pour spécifier l'ordre du premier entré, premier sorti.

    • Lifo pour spécifier l'ordre du dernier entré, premier sorti.

  • Affectez à la propriété Upper Bound la valeur permettant de spécifier le nombre maximal d'objets qui peuvent être contenus dans la mémoire tampon. La valeur par défaut est *. Cela signifie qu'il n'existe aucune limite.

Description du flux de données avec des broches d'entrée et de sortie

Utilisez une Broche de sortie et une Broche d'entrée pour décrire séparément les sorties d'une action et les entrées dans une autre.

Les broches d'entrée et de sortie sont des paramètres d'action

Pour créer une broche, cliquez sur Broche d'entrée ou Broche de sortie sur la boîte à outils, puis cliquez sur une action. Vous pouvez déplacer ensuite la broche autour du périmètre de l'action et modifier son nom. Vous pouvez créer des broches d'entrée et de sortie sur tout genre d'action, notamment Call Behavior Actions, Call Operation Actions, Send Signal Actions et Accept Event Actions.

Un connecteur entre deux broches représente un flux d'objet, tout comme les flux vers et à partir d'un nœud d'objet.

Donnez à chaque broche un nom qui indique le rôle des objets qu'il produit ou accepte, tel qu'un nom de paramètre.

Vous pouvez définir le type d'objets transmis dans la propriété Type. Ce doit être un type que vous avez créé dans un diagramme de classes UML.

Les objets qui circulent entre des broches connectées doivent être compatibles. Cela tient probablement au fait que les objets produits par la broche de sortie appartiennent au type dérivé de celui de la broche d'entrée.

Vous pouvez également spécifier que le flux d'objet inclut une transformation qui convertit des données entre le type de la broche de sortie et le type de la broche d'entrée. La transformation la plus courante de ce genre extrait juste la partie appropriée d'un plus grand type. L'exemple figurant dans l'illustration implique l'existence d'une transformation qui extrait l'Adresse d'expédition à partir du Détail de la commande.

Définition d'une action de manière plus détaillée

Outre l'utilisation du nom de l'action pour clarifier le résultat qui doit être normalement accompli, voici quelques façons d'ajouter davantage de détails à une action :

  • Écrivez une description plus détaillée dans la propriété Body. Par exemple, vous pourriez écrire un fragment de code du programme ou pseudo-code, ou une description complète des résultats accomplis.

  • Remplacez l'action par une Action Appeler un comportement et décrivez son comportement détaillé dans un diagramme d'activités séparé. Consultez Description des sous-activités avec Call Behavior Actions.

  • Affectez aux propriétés Local Postconditions et Local Preconditions de l'action la valeur permettant de décrire son résultat de manière plus détaillée. Pour plus d'informations, consultez Définition de post-conditions et de conditions préalables.

Description des sous-activités avec Call Behavior Actions

Vous pouvez décrire le comportement détaillé d'une action à l'aide d'un diagramme d'activités séparé. Un comportement appelé est un diagramme d'activités représenté sur votre diagramme d'activités principal par une Action Appeler un comportement. Vous pouvez également utiliser l'Action Appeler un comportement pour décrire un comportement qui est partagé entre différentes activités afin d'éviter de dessiner plusieurs fois la sous-activité.

Dans l'illustration suivante, Diagramme 1 affiche une activité qui présente une Action Appeler un comportement et Diagramme 2 affiche le diagramme de sous-activité qui affiche le comportement appelé.

Un diagramme d'activités distinct affiche des actions détaillées

Pour décrire une sous-activité avec une Action Appeler un comportement

  1. Pour créer le diagramme pour la sous-activité, dans l'Explorateur de solutions, cliquez avec le bouton droit sur votre projet de modélisation, pointez sur Ajouter, puis cliquez sur Nouvel élément.

  2. Dans la boîte de dialogue Ajouter un nouvel élément, sous Modèles cliquez sur Activity Diagram et dans la zone Nom, tapez le nom que vous projetez de donner à votre Action Appeler un comportement.

  3. Dessinez le flux de travail détaillé pour la sous-activité. Il s'agit du comportement appelé.

    • Dans le diagramme de sous-activité appelé, le Nœud initial indique où démarre le contrôle lorsque le comportement est appelé. Le Nœud final de l'activité indique où le contrôle doit être retourné à l'activité parente.
  4. Affectez à la propriété Comportement de l'Action Appeler un comportement la valeur permettant de faire référence au diagramme de comportement appelé.

    Notes

    Le diagramme de sous-activité doit contenir des éléments faute de quoi il ne sera pas disponible dans la liste déroulante pour la propriété Comportement. De même, l'icône en forme de trident ne s'affichera pas sur votre forme Action Appeler un comportement tant que vous n'aurez pas défini sa propriété Comportement.

  5. Affectez à la propriété Is Synchronous de l'action une valeur permettant d'indiquer si votre activité attend que l'activité appelée se termine.

    • Si vous affectez à Is Synchronous la valeur False, vous indiquez que le flux peut continuer jusqu'à l'action suivante avant que l'activité appelée ne soit terminée. Vous ne devez pas définir des broches de sortie ou des flux de données sortants à partir de l'action.

Description du flux de données à l'intérieur et à l'extérieur des sous-activités

Vous pouvez décrire la circulation des données à l'intérieur et à l'extérieur des sous-activités, de la même façon que vous utilisez des paramètres dans le logiciel.

  • Créez des broches d'entrée et de sortie (1) sur l'Action Appeler un comportement, pour chaque fragment de données qui circulent à l'intérieur ou à l'extérieur de l'action. Nommez chacune d'entre elles de manière appropriée.

  • Dans le diagramme de sous-activité, créez un Nœud du paramètre de l'activité (2) pour chaque broche d'entrée et de sortie sur l'action appelante. Donnez à chaque nœud le même nom que sa broche correspondante.

    Notes

    Un nœud du paramètre de l'activité ressemble à un nœud d'objet. Pour vérifier quel type de nœud que vous recherchez, cliquez avec le bouton droit sur le nœud, puis cliquez sur Propriétés. Le type de nœud est affiché dans l'en-tête de la fenêtre Propriétés.

  • Dans le diagramme de sous-activité, dessinez des connecteurs qui affichent le flux d'objets à l'intérieur et à l'extérieur de chaque nœud du paramètre de l'activité.

Les broches sur l'action Appeler un comportement mappent aux paramètres d'activité

Définition des post-conditions et des conditions préalables

Vous pouvez utiliser les propriétés Local Postconditions et Local Preconditions pour spécifier de manière détaillée le résultat d'une action. Ces propriétés décrivent l'effet de l'action sans décrire la façon dont l'effet s'est accompli.

Pour définir ces propriétés, cliquez avec le bouton droit sur l'action, puis cliquez sur Propriétés. Tapez les valeurs des propriétés dans la fenêtre Propriétés.

Local Postconditions

Une post-condition est une condition qui doit être satisfaite avant que l'action puisse être considérée comme terminée. Dans l'exemple d'action Confirmer la commande, la post-condition peut être :

Le client a fourni des détails complets et valides qui sont obligatoires pour le traitement de sa carte de crédit.

Une post-condition peut exprimer une relation entre les états antérieur et postérieur au déroulement de l'action. Par exemple :

Le taux d'intérêt a doublé par rapport à ce qu'il était précédemment.

Vous pouvez écrire des post-conditions dans un style plus formel, en faisant référence aux attributs spécifiques des données traitées dans les actions. Par exemple :

InvoiceTotal == Sum(OrderItem.MenuItem.Price)

Local Preconditions

Une condition préalable est une condition qui doit être remplie lorsque l'action est prête à commencer. Par exemple, l'action Confirmer la commande peut avoir pour condition préalable :

Le client a sélectionné au moins un élément dans le menu.

Description d'appels aux opérations

En général, une action décrit le travail exécuté par toute combinaison de personnes, logiciel ou ordinateurs. Mais vous pouvez utiliser une Action Appeler une opération pour décrire un appel à une méthode ou fonction de logiciel spécifique.

  • Affectez le nom de l'Action Appeler une opération pour indiquer quelle opération est appelée, et sur quel objet ou composant elle porte.

  • Ajoutez des broches d'entrée et de sortie à l'Action Appeler une opération, pour décrire des paramètres et des valeurs de retour.

  • Vous pouvez affecter à la propriété Is Synchronous de l'action une valeur permettant d'indiquer si votre activité attend que l'opération se termine.

    • Si vous affectez à Is Synchronous la valeur False, vous indiquez que le flux peut continuer jusqu'à l'action suivante avant que l'opération appelée ne soit terminée. Vous ne devez pas définir des broches de sortie ou des flux de données sortants à partir de l'action.

Flux simultanés

Vous pouvez utiliser le Nœud de bifurcation et le Nœud de jointure pour décrire deux ou plusieurs threads d'activités qui peuvent s'exécuter en même temps.

Les nœuds de bifurcation et de jointure affichent des flux simultanés

L'effet du Nœud de bifurcation (1) consiste à diviser le thread de contrôle en deux ou plusieurs threads. Lorsque l'action précédente se termine, toutes les actions sur le côté sortie de la bifurcation peuvent démarrer.

Un Nœud de jointure (2) réunit des threads simultanés. L'action après le Nœud de jointure n'est pas forcément en mesure de démarrer tant que toutes les actions menant au Nœud de jointure ne sont pas terminées.

Description des signaux et des événements

Vous pouvez afficher une étape dans un processus qui envoie un signal sous la forme d'une Action Envoyer un signal dans une activité. Vous pouvez afficher une étape qui attend un signal ou un événement spécifique avant que l'étape ne puisse continuer en tant qu'Action Accepter un événement.

Par exemple, vous pouvez afficher une étape qui envoie un ordre, puis une autre étape qui reçoit l'ordre avant de le traiter.

Envoi d'un signal

Utilisez une Action Envoyer un signal (3) pour indiquer qu'un signal ou un quelconque message est envoyé aux autres activités ou processus. Utilisez le nom de l'action pour indiquer le genre de message qu'il envoie.

  • Le contrôle passe immédiatement à l'action suivante dans le flux de contrôle, le cas échéant.

  • Vous ne pouvez pas utiliser une Action Envoyer un signal pour décrire la façon dont votre processus répond aux informations retournées. Pour ce faire, utilisez une Action Accepter un événement séparée.

  • Vous pouvez afficher le flux de données entrant à une Action Envoyer un signal, pour indiquer les données à envoyer avec le message sortant. Pour plus d'informations, consultez Description du flux de données.

Attente d'un signal ou d'un événement

Utilisez une Action Accepter un événement (4) pour indiquer que cette activité attend quelque événement externe ou message entrant. Utilisez le nom de l'action pour indiquer le type d'événement qu'il attend.

  • Pour afficher que votre activité attend un événement externe ou un message à un point spécifique dans son flux, dessinez une Action Accepter un événement avec un flux entrant, à l'endroit approprié dans l'activité.

  • Pour indiquer que votre activité peut répondre à n'importe quel moment à un événement externe ou à un message, dessinez une Action Accepter un événement sans aucun flux entrant. Lorsque l'événement externe nommé se produit, un nouveau thread commencera dans votre activité, en démarrant à partir de l'Action Accepter un événement.

  • Vous ne pouvez pas utiliser une Action Accepter un événement pour décrire une valeur retournée à l'émetteur du signal. Utilisez une Action Envoyer un signal à cette fin.

  • Vous pouvez afficher des flux de données sortants à partir de l'action, afin de montrer la façon dont votre activité traite des données reçues dans le signal. Si vous souhaitez afficher plusieurs flux de sortie, vous devez définir la propriété IsUnmarshall de l'Action Accepter un événement, qui indique que l'action analyse le signal entrant dans ses composants séparés. Pour plus d'informations, consultez Description du flux de données.

Description de plusieurs flux de données

Vous pouvez dessiner plusieurs flux de contrôle ou flux d'objet sortant d'une action afin d'indiquer que plusieurs threads émergent lorsque l'action se termine. L'effet s'apparente à celui d'une bifurcation, mais vous pouvez toutefois utiliser un mélange de flux de contrôle et flux d'objet.

L'exemple suivant affiche plusieurs flux à l'extérieur et à l'intérieur des actions.

Flux d'objets parallèles

Lorsque le « Client fournit des détails » l'action se termine, elle génère deux objets : « Adresse d'expédition » et « Informations de carte de crédit ». Les deux objets avancent pour exécuter le traitement par différentes actions.

Parce qu'une action requiert que toutes ses entrées soient disponibles avant de pouvoir démarrer, la dernière action ne démarre pas tant que toutes les actions qui y mènent soient terminées.

Flux

Vous pouvez utiliser un diagramme d'activités pour vous aider à décrire un pipeline ou une série d'actions qui s'exécutent simultanément et passent des données en continu d'une action à une autre.

Dans l'exemple suivant, chaque action peut produire des objets et continuer à travailler. Étant donné qu'il n'y a pas de flux de contrôle, chaque action peut démarrer dès qu'elle reçoit ses premiers objets.

Remarquez que les connecteurs dans cet exemple sont des flux d'objet, parce qu'ils ont tous au moins une extrémité sur un nœud du paramètre de l'activité, un nœud d'objet ou une broche d'entrée ou de sortie.

Flux de données

1. L'exemple montre trois nœuds du paramètre de l'activité, qui représentent ses entrées et ses sorties.

2. Les nœuds d'objet, les broches d'entrée et de sortie peuvent représenter des mémoires tampons. Vous pouvez affecter à la propriété Upper Bound d'un nœud d'objet la valeur permettant de déclarer combien d'objets peuvent être simultanément dans la mémoire tampon.

3. Vous pouvez utiliser des nœuds de décision pour indiquer qu'un flux de données se divise, en envoyant différents objets le long de branches différentes. Vous pouvez utiliser des commentaires ou les titres de nœuds pour expliquer le critère de division.

4. Vous pouvez utiliser des nœuds de bifurcation pour montrer que deux ou plusieurs copies d'objets sont effectuées, en les envoyant vers un traitement simultané.

5. Vous pouvez utiliser des nœuds de jointure pour montrer que deux flux de traitement sont refusionnés en un.

Sélection et transformation

Vous pouvez spécifier que les objets dans un flux d'objet sont transformés, sélectionnés, ou les deux à la fois. Un flux d'objet est un flux vers ou à partir d'une broche ou d'un nœud d'objet.

  • Une transformation décrit la façon dont les objets entrant dans un flux sont convertis en un autre type.

  • Une sélection décrit la façon dont seuls quelques-uns des objets entrant dans un flux sont transmis à l'action de réception.

L'exemple montre une transformation. La première action dans Diagramme 1 génère un code postal à une broche de sortie. Elle est connectée à une broche d'entrée sur la deuxième action. Mais la deuxième action attend une adresse complète. La conversion d'un type à un autre est spécifiée dans une deuxième activité, Recherche d'adresse. Cela est référencé à partir de la propriété Transformation du flux d'objet. L'activité Recherche d'adresse contient un nœud du paramètre de l'activité pour le code postal entrant, et un autre nœud du paramètre de l'activité pour l'adresse complète sortant.

Transformation d'objet définie dans un autre diagramme

Vous pouvez spécifier une transformation ou une sélection de deux façons :

  • Joignez un commentaire à la broche d'entrée ou de sortie.

    • Pour distinguer cette description d'un commentaire général, vous pouvez commencer le commentaire avec <<transformation>> ou <<sélection>>.
  • Spécifiez en détail la transformation ou la sélection dans un diagramme d'activités séparé.

    • Si vous utilisez cette méthode, joignez également un commentaire, pour que les lecteurs sachent que la transformation a été définie.

Pour spécifier une transformation ou une sélection dans un diagramme d'activités séparé

  1. Créez un nouveau diagramme d'activités dans lequel décrire le flux de transformation ou de sélection.

    • Dans l'Explorateur de solutions, cliquez avec le bouton droit sur votre projet, pointez sur Ajouter, cliquez sur Nouvel élément, puis sur Activity Diagram. Donnez un nom approprié au diagramme pour le flux de transformation ou de sélection. Cliquez sur Ajouter.
  2. Dans le nouveau diagramme :

    1. Créez deux nœuds du paramètre de l'activité, un pour le flux d'entrée et un pour la sortie.

    2. Créez des actions interconnectées avec des flux d'objet. Cela illustre le fonctionnement de la transformation ou de la sélection.

  3. Dans tout diagramme dans lequel vous souhaitez utiliser la transformation ou la sélection :

    1. Créez un flux d'objet, c'est-à-dire, un connecteur à partir ou vers une broche d'entrée ou de sortie, un nœud d'objet ou un nœud du paramètre de l'activité.

    2. Cliquez avec le bouton droit sur le flux d'objet, puis cliquez sur Propriétés.

    3. Dans la propriété Transformation ou Selection, sélectionnez le diagramme dans lequel vous avez spécifié le flux de transformation ou de sélection.

Vous pouvez également définir une sélection pour un nœud d'objet, et sur les broches d'entrée et de sortie individuelles. Définissez une activité de sélection comme dans la procédure précédente, puis définissez la propriété Selection du nœud d'objet, ou de la broche d'entrée ou de sortie.

Voir aussi

Référence

Diagrammes de séquence UML : référence

Concepts

Comment : modifier des diagrammes et un modèle UML

Diagrammes de composants UML : référence

Diagrammes de cas d'usage UML : référence

Diagrammes de classes UML : référence

Diagrammes de composants UML : référence

Autres ressources

Vidéo : Capture des flux de travail d'entreprise à l'aide de diagrammes d'activités (éventuellement en anglais)