Pré. | Proc. |
Nœud conditionnel
Un nœud d'activité structurée conditionnelle est l'équivalent de modélisation d'une construction de programmation "If-Then-Else". Dans sa forme la plus simple, il consiste en une clause contenant :
- Une partition Test qui évalue une condition, et
- Une partition Body qui effectue une ou plusieurs actions si la condition Test est satisfaite
Chaque clause a un ActionPin 'Decider' pour conserver le résultat du Test et un ActionPin 'Body Output' pour conserver le résultat des actions du Body (si elles sont exécutées). Le nœud conditionnel lui-même a un résultat ActionPin qui rend disponible le résultat global du nœud (la sortie du premier corps à exécuter).
La représentation d'un nœud conditionnel sur un diagramme d'activité ressemble à ceci :
Vous définissez les nœuds conditionnels en faisant glisser d'autres éléments du diagramme d'activité de la page Boîte à outils vers la partition appropriée de l'élément, et en liant et en organisant la structure selon vos besoins. Les éléments sont alignés en haut à gauche de la partition, de sorte que le redimensionnement du nœud conserve l'organisation de la structure à l'intérieur et entre les partitions. Si vous essayez de réduire le nœud en dessous de la taille de la structure, le nœud prend automatiquement par défaut la taille « la mieux adaptée ».
Lorsque vous créez un nœud conditionnel, la boîte de dialogue ' Propriétés ' s'affiche. Vous pouvez compléter une grande partie de cela comme pour tout autre élément. Cependant, pour le nœud conditionnel, vous affichez également la fenêtre Propriétés , qui possède un onglet supplémentaire « Condition ».
Sur cet onglet, dans le panneau "Résultat", ajoutez une épingle d' Action pour contenir le résultat du nœud, en cliquant sur le bouton Ajouter pour afficher la boîte de dialogue "Sélectionner les Pins ".
Un nœud conditionnel contient automatiquement une clause contenant une partition de Test et une partition de corps, ainsi qu'une broche de décision et une broche de sortie de corps. Vous pouvez ajouter d'autres clauses si nécessaire. Pour chaque clause, vous ajoutez une épingle d' Action pour le décideur et pour la sortie du corps. Cliquez sur le bouton Enregistrer pour enregistrer la définition de la clause.
La boîte de dialogue « Sélectionner une broche » ne révèle que les pins de sortie en fonction du contexte. Si la broche Action requise n'existe pas déjà, vous pouvez cliquer sur le bouton Ajouter nouveau dans la boîte de le dialogue du fichier pour créer automatiquement une broche de sortie sous le nœud parent approprié.
Pour les entrées 'Result' et 'Body Output', vous pouvez vérifier l'emplacement exact de chaque Action Pin en faisant un clic droit sur l'entrée et en sélectionnant l'option ' Rechercher dans Projet Navigateur '.
Le panneau 'Nœuds', par défaut, liste les Actions et Activités contenues dans la partition Test . Cliquez sur le bouton radio 'Body' pour lister les éléments contenus dans la partition Body. Un élément doit être entièrement contenu dans la partition Body pour y être répertorié - s'il chevauche la partition Test de quelque manière que ce soit, il est traité comme faisant partie de la partition Test .
Ajouter ou supprimer des clauses
Pour ajouter une autre clause, cliquez sur le bouton Ajouter sous la liste "Clause(s)". Cela insère une nouvelle clause dans la liste et identifie quelle est la clause précédente (prédécesseur) et (le cas échéant) quelle est la clause suivante (successeur). Les champs restants du panneau « Clause(s) » sont effacés afin que vous puissiez ajouter des Pins d' Action Décideur et Corps. De nouvelles partitions ' Test ' et ' Corps ' sont immédiatement ajoutées à l'élément sur le diagramme , et vous pouvez remplir ces partitions avec des éléments d'activité, qui sont ensuite identifiés dans le panneau ' Nœuds '.
Pour supprimer une clause, mettez-la en surbrillance dans la liste et cliquez sur le bouton Supprimer. Cela supprime immédiatement les partitions correspondantes de Clause du diagramme , ainsi que tous leurs éléments Activity contenus. La suppression d'une clause entre deux autres clauses ajuste l'ordre numérique ; par exemple, si l'article 2 est supprimé entre l'article 1 et l'article 3, l'article 3 est renommé en tant qu'article 2 et tous les autres articles sont également déplacés d'une place.
Spécification OMG UML :
La spécification OMG Unified Modeling Language , (v2.5.1, p.478) indique :
Un ConditionalNode est un StructuredActivityNode qui en choisit une parmi un certain nombre de collections alternatives d'ExecutableNodes à exécuter. Un ConditionalNode se compose d'une ou plusieurs clauses, chacune représentant une seule branche du conditionnel. Une clause se compose d'une section de test et d'une section de corps, qui identifient des sous-ensembles disjoints des ExecutableNodes contenus dans le ConditionalNode. Tout ExecutableNode dans le ConditionalNode doit être inclus dans la section de test ou la section de corps d'exactement une clause.