Рекомендация: Modeling Actor Behavior
This guideline describes how to model the actor behavior for the purposes of model verification.
Взаимосвязи
Основное описание

In model-based systems engineering an essential part of the model verification/validation process concerns the dynamic, closed-loop interactions between the actors and the model (i.e. the executable use-case model or system architecture model). This interaction is performed via port(s) and associated (logical) interface(s).

With regard to the behavioral description there is an essential difference between the two types of participant:

  • The system behavior is captured through statecharts, depicting the different states of the system and the events and actions associated with the relevant transitions.
  • The actor behavior is generally captured by means of a protocol state machine.

A protocol state machine does not show system states. It focuses on the communication protocol only. Typically, it consists of one state, the reactive behavior of which is described via MOORE syntax (i.e. entering state or in state -> Event[Condition(s)]/Action).  Exception: Timeout events. In this case a timeout wait state has to be added to the actor state machine.

Actor behavior may be active (i.e. the actor initiates system behavior) or reactive (i.e. the actor reacts to a stimulus from the system).  Model each of these as follows. In either case, a pre-condition is that the Actor ports and interfaces have been defined.

Modeling active Actor behavior

If the actor initiates a trigger, create an external triggering event following the naming convention A_<MessageName> and add an action representing the message to be sent to the system and the relevant port.  The exact syntax will depend upon the tool in use.  For example, a message to the system block syntax may be:

A_reqOperation1() / OPORT(pUseCase1) -> GEN(reqOperation1());

Modeling reactive Actor behavior

If the actor has to react to an incoming message with a guard condition, return the response via the relevant port using MOORE syntax.  The exact syntax will depend upon the tool in use.  For example, a reactive message to the system block using the Telelogic Rhapsody syntax may be:

reqGetDataX()[ConditionX==true] / Oport(pUseCase)-> GEN(retDataX();