An «activity» stereotype can be defined on a bdd and then it's behaviour (i.e. logic) can be specified using an Activity Diagram (act). An act is used to model the behaviour of each Activity (i.e. also known as an operation) assigned to a Block (e.g. automobile block). The behaviour specifies the transformation of inputs to outputs through a controlled time ordered sequence of actions (e.g. steps of a process). The act is the primary representation for modelling flow-based behaviour in SysML and is analogous to the functional flow diagram that has been widely used for modelling system behaviour.
The following two acts have many of the possible symbols that can be used:
An example act is:
The symbols available in acts are:
Symbol | Name | Description |
---|---|---|
Comment | Makes a note anywhere in the diagram. Are always surrounded by * characters. Note: If you do not want Cradle to automatically add an * go to the Graphics Settings section of Project Setup and turn off the Automatically add asterisks to diagram's comment symbols option. | |
Picture | Allows you to choose the location of a GIF or JPEG image to be displayed as a diagram symbol. An image can also be embedded in the other diagram symbols. | |
Note Callout | Multi-purpose symbol which attaches to other symbols in order to show certain attributes of the model element. It can show frames, categories, tags, related items, or simply a piece of standalone text. | |
Tag | A Tag is used to display a tag value contained in a symbol’s stereotype frames, or cross reference link attribute, anchored to the selected symbol. | |
Action | Actions execute and transform their inputs and outputs (I/Os). Actions are at the atomic level so they do not get decomposed. If you want the current Action to execute a separate behaviour use the «callBehaviourAction». The action's I/O items are the following symbols: Pin, Object Node and Activity Parameter. In order to specify any pre-condition or post-condition for the Action, use the special stereotype frames: LOCALPRECONDITION and LOCALPOSTCONDITION. See the Activity Parameter discussion on defining a Tag for a special stereotype frame. Also, see the discussion on the @REF directive that is used to insert an actual element into a Tag expression/value. | |
Call Behaviour Action | A Call Behaviour Action can invoke / call another behaviour diagram (act, stm, sd) for execution and then return control to the current Activity Diagram. The Name Symbol dialog used to name the Call Behaviour Action has a Referenced Diagram selection list that is used to specify the desired behaviour diagram to be invoked. When doing rapid prototyping you can specify a descriptive name and later reuse the Rename dialog to select an actual behaviour diagram. In order to specify a pre-condition or post-condition for the Action, use the special stereotype frames: LOCALPRECONDITION and LOCALPOSTCONDITION. See the Activity Parameter discussion on defining a Tag for a special stereotype frame. Also, see the discussion on the @REF directive that is used to insert an actual element into a Tag expression/value. | |
Call Operation Action | A Call Operation Action can invoke/call an operation (i.e. Activity) owned by a specific / target Block. A Pin like symbol is attached to the Action. The Name Symbol dialog used to name the action has a Referenced Element selection list used to specify the actual «activity» element to be invoked/called. When doing rapid prototyping the user can just specify a descriptive name and later use the Rename dialog to select an actual Activity element that is an operation of a target Block. Select the Pin like symbol and using the Rename dialog select the target Block that owns the operation activity from the Referenced Element selection list . In order to specify any pre-condition or post-condition for the Action, use the special stereotype frames: LOCALPRECONDITION and LOCALPOSTCONDITION. See the Activity Parameter discussion on defining a Tag for a special stereotype frame. Also, see the discussion on the @REF directive that is used to insert an actual element into a Tag expression/value. | |
Control Operator Action | A Control Operator Action invokes/calls a controlOperator Activity Diagram (i.e. the Activity Diagram is linked to a «controlOperator» element using the «subjectElement» relationship). This Activity Diagram defines control parameters that are used to enable and disable actions on the original Activity Diagram. The Name Symbol dialog used to name the Call Operator Action has a Referenced Diagram selection list used to specify the desired Activity Diagram to be invoked. When doing rapid prototyping you can just specify a descriptive name and later use the Rename dialog to select an actual Activity Diagram. Select the Pin like symbol and using the Rename dialog select the control variable to be used on the diagram from the Referenced Element selection list. In order to specify any pre-condition or post-condition for the Action, use the special stereotype frames: LOCALPRECONDITION and LOCALPOSTCONDITION. See the Activity Parameter discussion on defining a Tag for a special stereotype frame. Also, see the discussion on the @REF directive that is used to insert an actual element into a Tag expression/value. | |
Pin | A Pin, like an Object Node, defines an input/output (I/O) for an action. The Pin symbol is attached to the outside edge of the Action symbol. The Pin symbol has a Pin name and an optional reference to an actual I/O object («valueType», «block», or «signal» element) flowing into or out of the Action. The Pin is attached to the Action by the «has pin» relationship. The Name Symbol dialog used to name the Pin has a Referenced Element selection list used to specify the pin’s I/O object («valueType», «block», or «signal»). When doing rapid prototyping the user can specify a descriptive name for the Pin and later use the Rename dialog to select an actual I/O object for the Pin. The Pin symbol has a defined set of Tags that can be specified using the following special frames: ASPECTS, DIRECTION, STATE and TIME. In the following example the direction Tag was set and the display was changed to show a direction arrow in the Pin symbol to indicate the key code is an in. See the Activity Parameter discussion on defining a Tag for a special stereotype frame. Also, see the discussion on the @REF directive that is used to insert an actual element into a Tag expression/value. | |
Object Node | An Object Node, like a Pin, defines an input/output (I/O) for an Action. The only difference is that the Object Node is connected to an Action with an Object Flow Edge path symbol. The Name Symbol dialog used to name the Pin has a Referenced Element selection list which is used to specify the Pin's I/O object («valueType», «block» or «signal»). When doing rapid prototyping you can specify a descriptive name for the Pin and later use the Rename dialog to select an actual I/O object for the Object Node. The Object Node symbol has a defined set of Tags that can be specified using the following special frames: ASPECTS and STATE. In the following example the stream Tag was set and the display was changed to show the tag in the Object Node in curly braces: See the Activity Parameter discussion on defining a Tag for a special stereotype frame. Also, see the discussion on the @REF directive that is used to insert an actual element into a tag expression/value. | |
Accept Change Action | An Activity Diagram can accept a change event using this symbol. The change event is indicated by a leading when keyword. The Accept Change Action symbol is represented by a rectangle with a triangular section missing from the left end. A change event corresponds to a specified condition expression (often involving values of block properties or flow properties) being satisfied. The change event is defined using a Tag associated with the event frame. See the Activity Parameter discussion on defining a Tag for a special stereotype frame. Also, see the discussion on the @REF directive that is used to insert an actual element into a Tag expression/value. | |
Accept Signal Action | An Accept Signal Action responds to the receipt of a signal. The action executes each time a signal is received. The Name Symbol dialog used to name the action has a Referenced Element selection list used to specify the «signal» to be received. When doing rapid prototyping you can specify a descriptive name and later use the Rename dialog to select the actual signal element. If the signal has parameters they can be displayed by checking the parameters checkbox in the Compartments section of the Control sidebar. This Action’s specification has the following special frames: GUARD, LOCALPRECONDITION and LOCALPOSTCONDITION. If a guard is specified, it is only displayed using the Tag { } symbol or the Callout symbol. | |
Send Signal Action | A specialised action that asynchronously generates and sends a signal instance to a target when the action becomes enabled. The Name Symbol dialog used to name the action has a Referenced Element selection list used to specify the «signal» to be received. When doing rapid prototyping the user can specify a descriptive name and later use the Rename dialog to select the actual signal element. If the signal has parameters they can be displayed by checking the parameters checkbox in the Compartments section of the Control sidebar. This Action’s specification has the following special frames: GUARD, LOCALPRECONDITION, and LOCALPOSTCONDITION. If a guard is specified, it is only displayed using the Tag { } symbol or the Callout symbol. | |
Data Store | A Data Store provides storage for a data object so it can later be consumed by a downstream action. The Name Symbol dialog used to name the Data Store has a Referenced Element selection list used to specify the object being stored («valueType», «block» or «signal»). When doing rapid prototyping you can specify a descriptive name for the Data Store and later use the Rename dialog to select an actual element to be stored. The Data Store symbol has a defined set of Tags that can be specified using the following special frames: ASPECTS and STATE. In the following example the continuous Tag was set and the display was changed to show the Tag in the Data Store symbol in curly brackets. | |
Activity Parameter | An Activity Parameter models the flow of matter, energy or data into and out of an Activity Diagram. The Name Symbol dialog used to name the Activity Parameter has a Referenced Element selection list which is used to specify an actual I/O object («valueType» or «block»). When doing rapid prototyping you can specify a descriptive name and later use the Rename dialog to select an actual I/O object. The Activity Parameter specification has the following special frames: ASPECTS, DIRECTION, STATE and VALUE. Tags are used to specify the contents of these frames. In the following example the different tags for each frame are listed. For example, in the symbol the direction (in), optional, continuous, and state (Full) are displayed: The tag value can have an embedded reference to an actual stereotype element using the @REF_ID directive. The directive creates an item reference cross reference between the stereotype element containing the tag and the referenced element. To use @REF_ID directive in a tag you need to:
| |
Activity Parameter Set | The parameters of an Activity can be grouped together into Activity Parameter Sets, where a parameter set must have either all input or all output parameters as members. | |
Central Buffer | A Central Buffer provides storage for multiple data objects of the same type before the objects are consumed by downstream actions. The Name Symbol dialog used to name the Central Buffer has a Referenced Element selection list used to specify the object being stored («valueType», «block», or «signal»). When doing rapid prototyping you can specify a descriptive name for the Central Buffer and later use the Rename dialog to select an actual element to be stored. The Central Buffer symbol has a defined set of Tags that can be specified using the following special frames: ASPECTS and STATE. In the following example the discrete Tag was set and the display was changed to show the tag in the Central Buffer symbol in curly brackets. | |
Decision | A Decision node has one input flow and multiple output flow paths. Only one output path is valid, based on user specified guard condition. Guards must be mutually exclusive. | |
Merge | A Merge node has multiple input flow paths and one output flow path. Output path is triggered upon arrival of any of the input flows. | |
Initial | An Initial node provides a starting point for the behaviour execution of an Activity with one or more control flows coming out of it. There can be multiple initial nodes, or NO initial nodes. | |
Final | When a Control Flow Edge reaches an Activity Final node the execution of the entire subject Activity Diagram terminates. | |
Flow Final | When a Control Flow Edge reaches a Flow Final node, the particular sequence of actions is terminated without terminating the entire activity. | |
Fork | A Fork node has one input flow and multiple output flows. The output flows represent independent and concurrent flows. | |
Join | A Join node has multiple input flows and one output flow. Output occurs only when all input flows arrive at the node. | |
Interruptible Region | An Interruptible Region groups a subset of the Activity Diagram symbols and provides a mechanism for stopping execution of any contained actions. | |
Interrupting Edge | An Interrupting Edge interrupts the execution of the Actions in an Interruptible Region. Its source is a node inside the region and its destination is a node outside it. The Interrupting Edge specification has the following special frames: GUARD and PROBABILITY. | |
Control Flow Edge | A Control Flow Edge is an edge/path that enables a downstream action to execute. The Control Flow Edge specification has the following special frames: GUARD and PROBABILITY. The GUARD Tag is specified in the guard frame. | |
Object Flow Edge | An Object Flow Edge is an edge/path that transports data objects (i.e. Object Nodes) between Actions. The Object Flow Edge specification has the following special frames: GUARD and PROBABILITY. The GUARD Tag is specified in the guard frame. | |
Wait Time Action | A Wait Time Action corresponds to an expiration of an implicit timer. The symbol has a defined set of Tags that can be specified using the following special frames: LOCALPRECONDITION, LOCALPOSTCONDITION and TIME. In the above example the after Tag was defined and displayed on the diagram. |
The symbols along with their default stereotypes, referenced elements, stereotype frames and cross reference link attributes are:
Symbol | Name | Default Stereotype | Referenced Element | Stereotype Frames or Cross Reference Link Attributes |
---|---|---|---|---|
Comment | None | None | None | |
Picture | None | None | None | |
Note Callout | None | None | None | |
Tag | None | None | None | |
Action | «action» | None | Frames:LOCALPRECONDITION, LOCALPOSTCONDITION and VALUE. These frames have associated tags. @Ref can be used in any tag expression/value to specify an actual stereotype element in the tag expression. The elements are linked together using the item reference relationship | |
Call Behaviour Action | «callBehaviourAction» | act sd stm | Frames: LOCALPRECONDITION, LOCALPOSTCONDITION, and VALUE These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. | |
Call Operation Action | «callOperationAction» | «activity» «block» | Frames: LOCALPRECONDITION, LOCALPOSTCONDITION, and VALUE. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. The elements are linked together using the item reference relationship. | |
Control Operator Action | «controlOperatorAction» | act «valueType» | Frames: LOCALPRECONDITION, LOCALPOSTCONDITION, and VALUE. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. The elements are linked together using the item reference relationship. | |
Pin | «pin» | «block» «valueType» «signal» | Frames: ASPECTS, DIRECTION, STATE and TIME. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. The elements are linked together using the item reference relationship. | |
Object Node | «objectNode» | «block» «valueType» «signal» | Frames: ASPECTS and STATE. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. The elements are linked together using the item reference relationship. | |
Accept Change Action | «acceptChangeAction» | None | Frames: LOCALPRECONDITION, LOCALPOSTCONDITION, VALUE and EVENT. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. | |
Accept Signal Action | «acceptSignalAction» | «signal» | Frames: LOCALPRECONDITION, LOCALPOSTCONDITION, VALUE and GUARD. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. The elements are linked together using the item reference relationship. | |
Send Signal Action | «sendSignalAction» | «signal» | Frames: LOCALPRECONDITION, LOCALPOSTCONDITION, VALUE and GUARD. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. The elements are linked together using the item reference relationship. | |
Data Store | «dataStore» | «block» «valueType» «signal» | Frames: ASPECTS, STATE. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. The elements are linked together using the item reference relationship. | |
Activity Parameter | «activityParameter» | «block» «valueType» «enumeration» | Frames: ASPECTS, DIRECTION, STATE and VALUE. These frames have associated tags. @Ref can be used in any tag expression/value to specify an actual stereotype element in the tag expression. The elements are linked together using the item reference relationship. | |
Activity Parameter Set | «activityParameterSet» | None | None | |
Central Buffer | «centralBuffer» | «block» «valueType» «signal» | Frames: ASPECTS, STATE. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. The elements are linked together using the item reference relationship. | |
Decision | None | None | None | |
Merge | None | None | None | |
Initial | None | None | None | |
Final | None | None | None | |
Flow Final | None | None | None | |
Fork | None | None | None | |
Join | None | None | None | |
Interruptible Region | None | None | None | |
Interrupting Edge | «interruptingEdge» | None | None | |
Control Flow Edge | «controlFlowEdge» | None | Frames: GUARD and PROBABILITY. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. | |
Object Flow Edge | «objectFlowEdge» | None | Frames: GUARD and PROBABILITY. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. | |
Wait Time Action | «waitTimeAction» | None | Wait Time Action Tag frames: Local Precondition, Local Postcondition and Time. These frames have associated Tags. @Ref can be used in any Tag expression/value to specify an actual stereotype element in the Tag expression. |