Come funziona il "comportamento di selezione" in UML?

5

Dopo due ore di lettura / ricerca di esempi e usi di selection behavior di object flow s, suppongo che selezioni tutti i token che soddisfano un criterio (come una query) e questo può cambiare l'ordine dei token come specifica in 15.2.3.4 Object Flows dice:

If a selection Behavior is specified, then it is used to offer a token from a source ObjectNode to the ObjectFlow, rather than using the ObjectNode’s ordering.

Ma anche la sezione precedente dice:

Whenever a new token is offered to the ObjectFlow, or an offer is withdrawn, the selection Behavior is invoked with the values from all the object tokens currently being offered to the ObjectFlow passed to the Behavior input Parameter. The selection Behavior should then select one of the input values and produce it as output

Quello che ho capito dalla seconda citazione è:

  • viene invocato solo quando viene offerto un nuovo token o viene ritirata un'offerta (quindi non essere invocato quando viene accettato un token memorizzato in precedenza)
  • se sono memorizzati più token, seleziona solo un token (invece di tutti i token che soddisfano i criteri) anche se ci sono più token che soddisfano la condizione. Ad esempio in questa situazione sarà accettato un solo candidato :

Sono sopra i proiettili veri? (Penso che quelli non siano corretti, ma quelli sono la mia comprensione della seconda citazione) Anche qual è il significato di offer is withdrawn in seconda citazione?

    
posta hasanghaforian 17.09.2018 - 19:31
fonte

1 risposta

2

La «selezione» introduce una semantica che consente di limitare i token di ObjectFlow o di modificarne l'ordine. Quindi le specifiche devono essere lette, avendo in mente entrambi i casi.

Lo standard mostra nella figura 15.16 un esempio in cui «selezione» è usata per specificare che Orders offerto dovrebbe essere spedito per ordine di priorità.

Il tuo primo proiettile è corretto. Nulla viene detto sul token memorizzato. E non abbiamo bisogno di preoccuparci. Prendiamo l'esempio dell'ordine di spedizione. Supponiamo che io abbia un set di token Order in attesa che soddisfano i criteri di selezione. Quando la spedizione utilizza un nuovo Order , la selezione deve garantire che il token fornito abbia la priorità più alta. Non sappiamo se il Orders che è già accettato sia tenuto in ordine (potrebbe essere fatto all'offerta) o se è ordinato al consumo.

Il tuo secondo punto non è corretto. Il comportamento di selezione seleziona solo un token per il suo output. Ciò significa che li fornisce uno per uno. Non dice che gli altri sono scartati. Quindi nel tuo esempio, se diversi candidati corrispondessero ai criteri, tutti sarebbero stati intervistati. Se l'interpretazione dello standard fosse tanto restrittiva come immaginavi, l'esempio di spedizione dell'ordine non funzionerebbe perché il sistema modellato non spedirebbe per ordine di priorità ma solo la priorità più alta di ogni gruppo di ordini.

    
risposta data 18.09.2018 - 08:44
fonte

Leggi altre domande sui tag