Pré. | Proc. |
Opérateurs d'interaction
Lors de la création de fragments combinés, vous devez appliquer un opérateur d'interaction approprié pour caractériser le fragment. Ce tableau fournit guidage sur les différents opérateurs et leurs descriptions correspondantes.
Opérateur d'interaction
Opérateur |
Action |
---|---|
autre |
Divisez les fragments d’interaction en fonction des conditions booléennes. |
opter |
Inclure un fragment d’interaction facultatif. |
par |
Indique que les opérandes fonctionnent en parallèle. |
boucle |
Indique que l'opérande se répète un certain nombre de fois, comme spécifié par les contraintes d'interaction. |
critique |
Indique une séquence qui ne peut pas être interrompue par un autre traitement. |
nég |
Affirmer qu'un fragment est invalide et implique que toutes les autres interactions sont valides. |
affirmer |
Spécifiez le seul fragment valide à apparaître. Cet opérateur est souvent inclus dans un opérande à considérer ou à ignorer. |
strict |
Indique que les comportements des opérandes doivent être traités dans une séquence stricte. |
séquence |
Indique que le fragment combiné est faiblement séquencé. Cela signifie que l'ordre au sein des opérandes est conservé, mais que l'ordre entre les opérandes est indéfini, tant qu'une occurrence d'événement du premier opérande précède celle du second opérande, si les occurrences d'événement se trouvent sur la même ligne de vie. |
ignorer |
Indiquez les messages qui doivent être ignorés pendant l'exécution ou qui peuvent apparaître n'importe où dans la trace d'exécution. |
considérer |
Spécifiez les messages qui doivent être pris en compte dans la trace. Cette fonction est souvent utilisée pour spécifier les occurrences d'événements résultantes à l'aide d'un opérateur assert. |
réf |
Fournir une référence à un autre diagramme . Le fragment de référence n'est pas créé à l'aide de la méthode décrite dans la rubrique Créer un fragment combiné . Pour créer un fragment de référence, faites simplement glisser un diagramme existant de la fenêtre Navigateur vers le diagramme actuel. |
Apprenez Plus
Spécification OMG UML :
La spécification Unified Modeling Language OMG (v2.5.1, pp.583-585) stipule :
La valeur de l' interactionOperator est significative pour la sémantique de CombinedFragment, comme spécifié ci-dessous pour chaque valeur d'énumération interactionOperator.
Alternatives
L'interactionOperator alt désigne que le CombinedFragment représente un choix de comportement. Au plus un des opérandes sera choisi. L'opérande choisi doit avoir une expression de garde explicite ou implicite qui évalue à true à ce stade de l'interaction. Une garde implicite true est implicite si l'opérande n'a pas de garde. L'ensemble des traces qui définit un choix est l'union des traces (gardées) des opérandes. Un opérande gardé par else désigne une garde qui est la négation de la disjonction de toutes les autres gardes dans le CombinedFragment englobant. Si aucun des opérandes n'a de garde qui évalue à true, aucun des opérandes n'est exécuté et le reste de l'InteractionFragment englobant est exécuté. Si une porte CombinedFragment interne est utilisée dans un InteractionOperand d'un alt CombinedFragment, une porte portant le même nom doit être utilisée par chaque InteractionOperand de ce alt CombinedFragment.
Option
L'interactionOperator opt désigne que le CombinedFragment représente un choix de comportement où soit l'opérande (unique) se produit, soit rien ne se produit. Une option est sémantiquement équivalente à un CombinedFragment alternatif où il existe un opérande avec un contenu non vide et le deuxième opérande est vide.
Casser
L'opérateur interactionOperator break désigne le CombinedFragment comme un scénario de rupture dans le sens où l'opérande est un scénario exécuté à la place du reste de l'InteractionFragment englobant. Un opérateur break avec une garde est choisi lorsque la garde est vraie et que le reste de l'InteractionFragment englobant est ignoré. Lorsque la garde de l'opérande break est fausse, l'opérande break est ignoré et le reste de l'InteractionFragment englobant est choisi. Le choix entre un opérande break sans garde et le reste de l'InteractionFragment englobant est effectué de manière non déterministe. Un CombinedFragment avec interactionOperator break doit couvrir toutes les Lifelines de l'InteractionFragment englobant.
Parallèle
L'interactionOperator par désigne que le CombinedFragment représente une fusion parallèle entre les comportements des opérandes. Les OccurrenceSpecifications des différents opérandes peuvent être entrelacées de n'importe quelle manière tant que l'ordre imposé par chaque opérande en tant que tel est préservé. Une fusion parallèle définit un ensemble de traces qui décrit toutes les manières dont les OccurrenceSpecifications des opérandes peuvent être entrelacées sans gêner l'ordre des OccurrenceSpecifications au sein de l'opérande.
Séquençage faible
L'interactionOperator seq indique que le CombinedFragment représente un séquençage faible entre les comportements des opérandes. Le séquençage faible est défini par l'ensemble des traces avec ces propriétés :
1 L’ordre des OccurrenceSpecifications dans chacun des opérandes est conservé dans le résultat.
2 OccurrenceLes spécifications sur différentes lignes de vie provenant de différents opérandes peuvent apparaître dans n'importe quel ordre.
3 OccurrenceSpecifications sur la même ligne de vie provenant d'opérandes différents sont ordonnées de telle sorte qu'une OccurrenceSpecification du premier opérande précède celle du deuxième opérande.
Ainsi, le séquençage faible se réduit à une fusion parallèle lorsque les opérandes sont sur des ensembles disjoints de participants. Le séquençage faible se réduit à un séquençage strict lorsque les opérandes ne fonctionnent que sur un seul participant.
Séquençage strict
L'interactionOperator strict indique que le CombinedFragment représente un séquençage strict entre les comportements des opérandes. La sémantique du séquençage strict définit un ordre strict des opérandes au premier niveau dans le CombinedFragment avec interactionOperator strict. Par conséquent, les OccurrenceSpecifications contenues dans le CombinedFragment ne seront pas directement comparées aux autres OccurrenceSpecifications du CombinedFragment englobant.
Négatif
L'interactionOperator neg désigne que le CombinedFragment représente des traces définies comme non valides. L'ensemble des traces qui ont défini un CombinedFragment avec interactionOperator négatif est égal à l'ensemble des traces donné par son (unique) opérande, à la différence que cet ensemble est un ensemble de traces non valides plutôt que valides. Tous les InteractionFragments qui sont différents de Negative sont considérés comme positifs, ce qui signifie qu'ils décrivent des traces valides et devraient être possibles.
Région critique
L'interactionOperator critical désigne que le CombinedFragment représente une région critique. Une région critique signifie que les traces de la région ne peuvent pas être entrelacées par d'autres OccurrenceSpecifications (sur les lignes de vie couvertes par la région). Cela signifie que la région est traitée de manière atomique par le fragment englobant lors de la détermination de l'ensemble des traces valides. Même si l'inclusion de CombinedFragments peut impliquer que certaines OccurrenceSpecifications peuvent s'entrelacer dans la région, comme avec l'opérateur par, cela est empêché par la définition d'une région. Ainsi, l'ensemble des traces des constructions englobantes est restreint par les régions critiques.
Ignorer / Considérer
L'opérateur interactionOperator ignore désigne certains types de messages qui ne sont pas affichés dans ce fragment combiné. Ces types de messages peuvent être considérés comme insignifiants et sont implicitement ignorés s'ils apparaissent dans une exécution correspondante. On peut également comprendre que ignore signifie que les types de messages ignorés peuvent apparaître n'importe où dans les traces. Inversement, l'opérateur interactionOperator consider désigne les messages qui doivent être pris en compte dans ce fragment combiné. Cela revient à définir tous les autres messages à ignorer.
Affirmation
L'assertion interactionOperator indique que le CombinedFragment représente une assertion. Les séquences de l'opérande de l'assertion sont les seules continuations valides. Toutes les autres continuations génèrent une trace non valide. Les assertions sont souvent combinées avec Ignore ou Consider comme illustré dans la Figure 17.17.
Boucle
La boucle interactionOperator indique que le CombinedFragment représente une boucle. L'opérande de boucle sera répété un certain nombre de fois.
La garde peut inclure un nombre inférieur et supérieur d'itérations de la boucle ainsi qu'une expression booléenne. La sémantique est telle qu'une boucle effectuera au moins le nombre de fois « minint » (donné par l'expression d'itération dans la garde) et au plus le nombre de fois « maxint ». Une fois que le nombre minimum d'itérations a été exécuté et que l'expression booléenne est fausse, la boucle se termine. La construction de boucle représente une application récursive de l'opérateur seq où l'opérande de boucle est séquencé après le résultat des itérations précédentes.
Si la boucle contient une InteractionConstraint distincte avec une spécification, la boucle ne continuera que si cette spécification est évaluée à true pendant l'exécution, quel que soit le nombre minimum d'itérations spécifié dans la boucle.