Appendix B - Standard Scenario Verbs
Verbs are used to create scenarios. Verbs come in three forms: past tense, present tense, and future tense. Past tense verbs are used in given steps, present tense verbs are used in when steps, and future tense verbs are used in then steps. Below is a list of currently supported verbs. New verbs can also be created. Creating new verbs will be covered in Appendix C - The Jellyfish Command Line Interface.
Messaging
These verbs deal with messaging and managing input and output.
Receive
Past | Present | Future | Messaging Paradigm |
---|---|---|---|
haveReceived | receiving | willReceive | Pub/sub |
This verb is used to indicate a component will subscribe for some input. The receipt of input triggers the scenario. Multiple steps combined with and indicate the scenario may be triggered if any of the inputs are received. Its general form is:
Verb format
(haveReceived|receiving|willReceive) <inputField>
Publish
Past | Present | Future | Messaging Paradigm |
---|---|---|---|
havePublished | publishing | willPublish | Pub/sub |
This verb is used to indicate a component will publish some output. This is most often used in then steps to indicate a scenario will publish some value. Its general form is:
Verb format
(havePublished|publishing|willPublish) <outputField>
Request
Past | Present | Future | Messaging Paradigm |
---|---|---|---|
haveRequested | requesting | willRequest | Request/response |
This verb is used to indicate a component will make a request to another component. This is most often used in then
steps to indicate a scenario will “invoke” another scenario from another component. This verb is used to model the
client’s workflow as opposed to the server. Its general from is:
Verb format
(haveRequested|requesting|willRequest) <partOrRequiredField> to <scenarioFromReferencedModel> (with <inputField>)?
ReceiveRequest
Past | Present | Future | Messaging Paradigm |
---|---|---|---|
haveReceivedRequest | receivingRequest | willReceiveRequest | Request/response |
This verb is used to indicate a component receive a request from another component. This is most often used in when
steps to trigger a scenario when a request is received. This verb is used to model the server’s workflow as opposed to
the client. Its general from is:
Verb format
(haveReceivedRequest|receivingRequest|willReceiveRequest) <inputField>
Respond
Past | Present | Future | Messaging Paradigm |
---|---|---|---|
haveResponded | responding | willRespond | Request/response |
This verb is used to indicate a component that has received a request is responding to the request and thus end the
request. This is most often used in then
steps to indicate what the response to a request is. This verb is used by a
component that is acting as a server in a request/response workflow.
Verb format
(haveResponded|responding|willRespond) with <outputField>
Correlation and Data Aggregation
These verbs deal with managing and correlating data.
Correlate
Past | Present | Future | Messaging Paradigm |
---|---|---|---|
haveCorrelated | correlating | willCorrelate | Pub/sub |
This verb is used to indicate multiple pieces of data must be correlated together. It is most often used in when
steps but may also be used in then
steps. This verb only supports two arguments at a time but the verb can be used in
multiple steps combined together with and
.
When the present tense form of the verb is used in a when
step, the referenced data should be correlated together
using the rule in the step. When the future tense form of the verb is used in a then
step, the referenced data should
be copied from the input to the output.
Verb format
(haveCorrelated|correlating|willCorrelate) <inputField|outputField>(.<dataField>)+ to <inputField|outputField>(.<dataField>)+
Note that an output field can only be referenced in a then step and that the only one field in the then step can reference an output.
Performance
These verbs deal with declaring performance constraints or other non-functional requirements.
Complete
Past | Present | Future |
---|---|---|
hasCompleted | completing | willBeCompleted |
This verb is used to place some timing constraint on a scenario. This is most often used in then
steps to indicate a
scenario has some max time to complete. Its general form is:
Verb format
(hasCompleted|completing|willBeCompleted) (within|atLeast) <duration:double> (nanoseconds|milliseconds|microseconds|seconds|minutes|hours|days)
Other
Todo
Past | Present | Future |
---|---|---|
TODO | TODO | TODO |
This verb is used as a placeholder marking a scenario step that needs to be filled in. Using this verb generates a warning that it needs to be filled in.
Verb format
TODO any text