Operadores de Interacción

Superior  Previo  Próximo

                                                                                                                                                             Más Información

 

Cuando crea fragmentos combinados, debe aplicar un operador de interacción apropiado para caracterizar el fragmento. La tabla siguiente proporciona una guía precisa de varios operadores, y sus correspondientes descripciones.

 

Operador de Interacción

Descripción  

alt  

Se divide encima de los fragmentos de la interacción basados en condiciones booleanas

opt I

Incluye un fragmento opcional de la interacción.

par 

Indica operandos que operarán en paralelo..

loop

El operando repetirá un número de veces, según lo especificado por las restricciones de la interacción. 

critical 

Indica una secuencia que no puede ser interrumpida por otro proceso. 

neg

Afirma que un fragmento es inválido, e implica que el resto de la interacción es válida. 

assert

Especifica el único fragmento válido para hacer una ocurrencia. A menudo incluido dentro de un operando para considerar o ignorar

strict

Indica que los comportamientos de los operandos deben ser procesados en secuencia estricta. 

seq    

El fragmento combinado tiene una secuencia débil. Esto significa que se el ordenamiento dentro de los operandos se mantiene, pero el ordenamiento entre los operandos no está definido, siempre y cuando la ocurrencia de un evento del primer operando preceda a la del segundo operando, si las ocurrencias del evento están en la misma línea de vida.

ignore

Indica qué mensajes se deben ignorar durante la ejecución, o pueden aparecer en cualquier lugar de la traza de ejecución.

consider

Especifica qué mensajes se deben considerar en la traza. Esto se utiliza a menudo para especificar las ocurrencias del evento resultante con el uso de un  operador de afirmación.

ref

Provee una referencia a otro diagrama.

Tener en Cuenta: El fragmento no se crea usando el método que se describe arriba. Para crear un fragmento ref, simplemente arrastre un Diagrama existente desde el Explorador del Proyecto al diagrama actual.

 

 

 

Más Información

Fragmentos Combinados

 

 

Especificación del UML del OMG

La especificación del UML del OMG (UML 2.0 Superestructura, p. 410-412) establece: 

"Las semánticas de un FragmentoCombinado dependen del operadorDeInteracción como se explica más abajo. 

"Alternativas"

El operadorDeInteracción alt indica que el FragmentoCombinado representa una elección de comportamiento. Como máximo se ejecutará uno de los operandos. El operando que se ejecute debe tener una expresión de guarda explícita o implícita que se evalúe a verdadera en este punto de la interacción. Una guarda verdadera se encuentra implícita si el operando no tiene guarda. El conjunto de trazas que define una elección es la unión de las trazas (con guardas) de los operandos. Un operando guardado por cualquiera designa una guarda que es la negación o la desunión de todas las otras guardas incluidas en el FragmentoCombinado.

 

"Opción"

El operadorDeInteracción opt indica que el FragmenoCombinado representa una elección de comportamiento donde el operando se ejecuta (solo) o no se ejecuta nada. Una opción es semánticamente equivalente a un FragmentoCombinado alternativo donde hay un operando con contenido no vacío y el segundo operando está vacío. 

 

"Quiebre"

El operadorDeInteracción break indica que el FragmentoCombinado representa el escenario de quiebre en el sentido de que el operando es un escenario que se lleva a cabo en lugar de FragmentoDeInteracción incluido. Así el operador quiebre es un acceso rápido para un operador Alternativo donde se da un operando  y el otro se asume a ser el resto del FragmentoDeInteracción incluido. Los FragmentosCombinados quiebre deben ser  relativos globales al FragmentoDeInteracción incluido. 

 

"Paralelo"

El operadorDeInteracción par indica que el FragmentoCombinado representa una combinación paralela entre los comportamientos de los operandos. Las ocurrencias de los eventos de los diferentes operandos se pueden entremezclar de cualquier modo siempre y cuando se preserve el orden impuesto por cada operando. Una combinación paralela define un conjunto de trazas que describe todas las formas que las ocurrencias de los eventos de los operandos se pueden intercalar sin obstruir el orden de las ocurrencias de eventos dentro del operando. 

 

"Secuencia  Débil"

El operadorDeInteracción seq indica que el FragmentoCombinado representa una secuencia débil entre los comportamientos de los operandos. La secuencia débil se define por el conjunto de trazas con estas propiedades: 

 

1. El ordenamiento de las ocurrencias de eventos dentro de cada uno de los operandos se mantienen en el resultado .

2.   Las ocurrencias de eventos en diferentes líneas de vida desde diferentes operandos pueden venir en cualquier orden. 

3.    Las ocurrencias de eventos en la misma línea de vida desde diferentes operandos se ordenan de tal modo que una ocurrencia de evento del primer operando viene antes de la del segundo operando. 

 

Así, la secuencia débil se reduce a una combinación paralela cuando los operandos están en conjuntos disyuntivos de participantes. La secuencia débil se reduce a una secuencia estricta cuando los operandos trabajan sobre sólo un participante. 

 

"Secuencia  Estricta"

El operadorDeInteracicón strict indica que el FragmentoCombinado representa una secuencia estricta entre los comportamientos de los operandos. La semántica de la operación estricta define un ordenamiento estricto de los operandos sobre el primer nivel dentro de la InteracciónCombinada con el operador strict. Incluso las ocurrencias de eventos contenidas dentro de las InteraccionesCombinadas no se compararán directamente con otras ocurrencias de eventos de la InteracciónCombinada incluida. 

 

"Negativo" 

El operadorDeInteracción neg indica que el FragmentoCombinado representa trazas que se definen  para ser inoperables. El conjunto de trazas que definió un FragmentoCombinado negativo es igual al conjunto de trazas dadas por su operando (solo), solamente que este conjunto es un conjunto inoperable en lugar de trazas operables. Todos los FragmentosDeInteracción que son diferentes de Negativo se consideran positivos significando que describen las trazas que son operables y deberían ser posibles. 

 

"Región  Crítica"

El operadorDeInteracción critical indica que el FragmentoCombinado representa una región crítica. Un región crítica significa que las trazas de la región no pueden ser intercaladas por otras ocurrencias de eventos (en aquellas Líneas de Vida cubiertas por la región). Esto significa que la región es tratada atómicamente por el fragmento incluido cuando se determina el conjunto de trazas válidas. Aunque los FragmentosCombinados incluidos pueden implicar que algunas ocurrencias de eventos pueden intercalarse dentro de la región, como por ej. con par-operador, esto se previene al definir una región. Así el conjunto de trazas de construcciones incluidas están restringidas por las regiones críticas.

"Ignorar / Considerar"

El operadorDeInteracción ignore indica que hay algunos tipos de mensajes que no se muestran dentro de este fragmento combinado. Estos tipos de mensajes se pueden considerar insignificantes y se ignoran intuitivamente si aparecen en una ejecución correspondiente. Alternativamente uno puede entender que ignore significa que los mensajes que son ignorados pueden aparecer en cualquier lado en las trazas. A la inversa, el operadorDeInteracción consider indica qué mensajes se deberían considerar dentro de este FragmentoCombinado. Esto es equivalente a definir que todos los otros mensajes se deben ignorar. 

 

"Acierto"

El operadorDeInteracción assert indica que el FragmentoCombinado representa un acierto. Las secuencias del operando del acierto son las únicas continuaciones válidas. Todas las otras continuaciones resultan en una traza inválida. Los aciertos muchas veces se combinan con Ignorar o Considerar como se muestra en la Figura 345. 

 

"Bucle" 

El operadorDeInteracción loop indica que el FragmentoCombinado representa un bucle. El operando loop se repetirá muchas veces . La Guarda puede incluir un número inferior y uno superior de iteraciones del bucle así como una expresión booleana. La semántica es tal que un bucle iterará como mínimo el número 'minint' de veces (dado por la expresión de iteración en la guarda) y como máximo el número 'maxint' de veces. Después de que se ejecutó el número mínimo de iteraciones, y la expresión booleana es falsa, terminará el bucle. La construcción loop representa una aplicación recursiva del operador seq donde el operando loop se pone en secuencia después del resultado de las iteraciones anteriores. 

 

 

"Las Semánticas de Puertas (vea también 'Puerta (desde Fragmentos)' en la página 418) 

Las puertas de un FragmentoCombinado representan la interfaz sintáctica entre el FragmentoCombinado y sus alrededores, lo que significa la interfaz frente a otros FragmentosDeInteracción. El único propósito de las puertas es definir el origen y el destino de los Mensajes o de las relaciones de Orden General."