Action Diagram (Sopatra)

Sopatra's Action Diagram is a method of displaying Action entities (and their subclasses such as Procedure), their interactions via Input/Output entities, and logic flow.

Sections Available in this article:

Applying Time Distributions: An ‘Action’ construct can have its duration set using an upload Time Distribution file.

Action Diagram Constructs: The ‘Action Diagram’ supports eight unique diagram constructs: an ‘Action’, a ‘Parallel’, an ‘OR’, a ‘SYNC’, a ‘LOOP’, an ‘Input/Output’, a ‘Branch Asset’, and a ‘Resource.’

Adding a Serial:‘Serial’ construct can be added to an ‘Action Diagram’ via drag-and-drop.

Adding a Parallel:‘Parallel’ construct can be added to an ‘Action Diagram’ via drag-and-drop.

Adding an OR: An ‘OR’ construct can be added to an ‘Action Diagram’ via drag-and-drop.

Adding a SYNC:‘SYNC’ construct can be added to an ‘Action Diagram’ via drag-and-drop.

Adding a LOOP:‘LOOP’ construct can be added to an ‘Action Diagram’ via drag-and-drop.

Adding an Input/Output: An ‘Input/Output’ construct can be added to an ‘Action Diagram’ via drag-and-drop.

Adding a Branch Asset:‘Branch Asset’ construct can be added to an ‘Action Diagram’ via drag-and-drop.

Removing a Construct: A construct can be easily removed from an ‘Action Diagram.’

Simulating Diagrams: Within Sopatra, you can ‘Simulate Action Diagrams.’

 

The ‘Action Diagram’, which is traditionally known as an activity diagram or a functional flow diagram, is a method of displaying Action entities (and their subclasses such as Procedure), their interactions via Input/Output entities, and logic flow. This diagram conforms to the LML Specification 1.2 definition of an ‘Action Diagram’, which requires a diagram representation of the functional components of a system model.

action-diagram-sopatra-model

 

Applying Time Distributions

Due to the complex nature of procedures within their environments, setting the duration Allowable Operational Time Windows (AOTW), Time of Procedures (ToP), or simple Events can be simplified using time distributions. After a time distribution file is imported and applied using the import analyzer, on an open diagram, select an Action entity to apply the proper time distribution to.

modifying-action-diagram-sopatra

 

In the example above, a ToP Action entity was selected with an invalid duration set to 0 seconds. When an entity is selected, focus your attention on the toolbar and locate the button labeled Time Dist. Upon clicking it, the Time Distributions popup will appear.

time-distribution-modification-action-diagram-sopatra
time-distribution-window-action-diagram-sopatra

 

With the Time Distributions popup open, you may be able to find a dropdown allowing you to select a time distribution applicable to the selected entity. If no distributions appear, this can be a result of either not having an applicable time distribution in the time distribution file uploaded, your time distribution not being loaded, or simply never having uploaded one in the first place.

existing-time-distribution-action-diagram-sopatra

 

When a time distribution has been selected, a description of which action the time distribution will be applied to, its parameters as well as the duration to be set. If the settings are to your satisfaction, you can confirm them by clicking the Confirm button, otherwise, you may select another applicable time distribution or cancel altogether.

time-distribution-confirmation-sopatra

After clicking confirm, you can see the changes being made immediately in the attributes column of the selected entity with the duration attribute set to what was defined in the time distribution.

time-distribution-duration-attribute

 

Action Diagram Constructs

The ‘Action Diagram’ supports eight unique diagram constructs: a ‘Serial’, a ‘Parallel’, an ‘OR’, a ‘SYNC’, a ‘LOOP’, an ‘Input/Output’, a ‘Branch Asset’, and a ‘Resource’. Each diagram construct is described in more detail below:

  • Serial

    This construct is used to represent the classic systems engineering activity, function or task.

    In the system model, an ‘Action’ entity is used to represent a ‘Serial’ construct with a decomposes/decomposed by relationship to the diagram’s root ‘Action’ entity. Innoslate‘s default database schema includes labels to specify the type of ‘Action’ entity as a(n) Activity, Capability, Function, Mission, Process, Program, Project, Task, and/or Use Case.

    In the diagram, this construct is represented as a rounded block containing the number and name of the ‘Serial’ construct.

    ActionConstruct

  • Parallel

    This construct allows two or more ‘Serial’ constructs to perform simultaneously. Each parallel branch is unique and all branches execute at the same time during the simulation. No changes are made to the system model in the database. In the diagram, the point where the arrow lines diverge is the start of the individual ‘Parallel’ branches and the point where the arrow lines converge is the end of the ‘Parallel’ branches.

    ParallelConstruct

  • OR

    This construct is used to represent a function that has two or more potential exit branches and allows ‘Serial’ constructs to be performed only under certain conditions. Each ‘OR’ exit branch is unique and only one of the many branches will execute during simulation.

    In the system model, an Action entity is used to represent an ‘OR’ construct with a decomposes/decomposed by relationship to the diagram’s root Action entity. Innoslate‘s default database schema includes labels to specify the type of this Action entity as a(n) Activity, Capability, Function, Mission, Process, Program, Project, Task, and/or Use Case.

    In the diagram, this construct is represented as a rounded block with a diamond shape entry point making up the left-hand side. This block contains the number and name of the ‘OR’. The point where the arrow lines diverge out from the right of the block is the start of the individual ‘OR’ exit branches and the point where the arrow lines converge is the end of the ‘OR’ exit branches.

    ORConstruct

  • SYNC

    This construct is used to control timeouts of the ‘Serial’ constructs inside the ‘SYNC’ construct’s parallel branches. Each parallel branch is unique and all branches execute at the same time during the simulation.

    In the system model, an Action entity is used to represent a ‘SYNC’ construct with a decomposes/decomposed by relationship to the diagram’s root Action entity. Innoslate‘s default database schema includes labels to specify the type of this Action entity as a(n) Activity, Capability, Function, Mission, Process, Program, Project, Task, and/or Use Case.

    In the diagram, this construct is represented as a rounded block with a diamond shape exit point making up the right-hand side. This block contains the number and name of the ‘SYNC’. The point where the arrow lines diverge is the start of the individual ‘SYNC’ branches and the point where the arrow lines converge back into the block is the end of the ‘SYNC’ branches.

    SYNCConstruct

  • LOOP

    This construct allows a ‘Serial’ construct or a set of ‘Serial’ constructs to be repeated multiple times. During a simulation, the number of ‘LOOP’ executions can be automated or you can be prompted for the number.

    In the system model, an Action entity is used to represent a ‘LOOP’ construct with a decomposes/decomposed by relationship to the diagram’s root Action entity. Innoslate‘s default database schema includes labels to specify the type of this Action entity as a(n) Activity, Capability, Function, Mission, Process, Program, Project, Task, and/or Use Case.

    In the diagram, this construct is represented as a rounded block with a diamond shape entry point making up the left-hand side. This block contains the number and name of the ‘LOOP’. The arrow line that points back to the top of the block is the ‘LOOP’ construct’s “Continue” branch and the arrow line leaving the bottom of the block is the ‘LOOP’ construct’s “Exit” branch.

    LoopConstruct

  • Input/Output

    This construct is a functional representation of data that is passed between ‘Serial’ constructs.

    In the system model, an Input/Output entity is used to represent an ‘Input/Output’ construct with at least one generated by/generates relationship to an Action entity representing a ‘Serial’ construct and at least one received by/receives relationship to another Action entity representing a ‘Serial’ construct in the diagram. The received by/receives relationship has an attribute named ‘Trigger’ which is used to specify whether the passed data is required before the next ‘Action’ can be performed or if it is optional. Innoslate‘s default database schema includes labels to specify the type of this Input/Output entity as Analog, Digital, Event, Mixed, Physical, Product, Response, and/or Verbal.

    In the diagram, this construct is represented as either a bright green or a muted grey parallelogram with dashed arrow lines between itself and the ‘Serial’ constructs which have relationships to the ‘Input/Output’. If the ‘Trigger’ attribute is set to true on the received by/receives relationship, the ‘Input/Output’ will display as bright green, otherwise, if the ‘Trigger’ attribute is set to false, it will display as muted grey in the diagram.

    TriggerInputOutputConstruct1
    optionalInputOutputConstruct
  • Branch Asset

    This construct provides a way to visualize swim lanes by specifying who performs the functions on a particular ‘Parallel’ construct’s branch.

    In the system model, an Asset entity is used to represent a ‘Branch Asset’ construct with a performs/performed by relationship to each of the Action entities representing the ‘Serial’ constructs on the ‘Parallel’ branch. Innoslate‘s default database schema includes labels to specify the type of this Asset entity as a(n) Architecture, Context, Environment, External System, Facility, Infrastructure, Materiale, Organization, Package, Personnel, Segment, Service, Subsystem, and/or System.

    In the diagram, this construct is represented as a line label on a ‘Parallel’ branch, containing the name of the ‘Branch Asset’.

    BranchAssetConstruct

  • Resource

    This construct provides a visual representation of a physical object that is consumed, produced, or seized by a function. The usage of each ‘Resource’ is monitored during the simulation and graphically displayed in the simulation results.

    In the system model, a Resource entity is used to represent a ‘Resource’ construct with either a consumed by/consumesproduced by/produces or a seized by/seizes relationship to an Action entity representing a ‘Serial’ construct in the diagram.

    In the diagram, this construct is represented as either a bright purple or a muted purple elongated hexagon with a dashed arrow line between itself and the ‘Serial’ construct which has relationships to the ‘Resource’. If the ‘Resource’ is consumed or produced, it will display as bright purple, otherwise, if the ‘Resource’ is seized, it will display as muted purple in the diagram.

    ConsumingResourceConstruct
    ProducingResourceConstruct
    SeizingResourceConstruct
 
Adding a Serial

‘Serial’ construct can be added to an ‘Action Diagram‘ via drag-and-drop.

  1. Within an ‘Action Diagram,’ click the ‘Serial’ icon in the ‘New’ tab of the left sidebar and continue to hold down the left mouse button.

    adding_action_step1-1

  2. Drag the ‘Serial’ icon over to the arrow line between the Start and End nodes.

    adding_action_step2-1

  3. When the line between the Start and End nodes is highlighted in green, release the left mouse button to drop the new ‘Serial’ and add it to the diagram.

    adding_action_step3-1

     

    Note the ‘Serial’ stays selected once it has been dropped in place. Since it is selected, the toolbar changes to include buttons for functions that can be used on the construct. The sidebar also changes to include additional ‘Metadata,’ ‘Attributes’ and ‘Relationships’ tabs.

  4. Once added to the diagram, enter a meaningful ‘Name’ for your new ‘Serial’ via the ‘Attributes’ tab of the left sidebar (focused automatically for convenience).

    adding_action_step4-2

  5. Click the ‘Save’ button located on the toolbar to persist your changes to your project’s database.

    adding_action_step5-2

* Note: The above process describes using the ‘New’ tab of the left sidebar, which automatically generates a new entity to represent each new diagram construct. If you would like to reuse existing entities from your database to represent a new construct, use the ‘Existing’ tab instead.

For more information on this construct and how it is represented in the database model, see Action Diagram Constructs.

 

Adding a Parallel

‘Parallel’ construct can be added to an ‘Action Diagram‘ via drag-and-drop.

  1. Within an ‘Action Diagram,’ click the ‘Parallel’ icon in the ‘New’ tab of the left sidebar and continue to hold down the left mouse button.

    adding_parallel_step1-1

  2. Drag the ‘Parallel’ icon over to the arrow line between the Start and End nodes.

    adding_parallel_step2-1

  3. When the line between the Start and End nodes highlights green, release the left mouse button to drop the new ‘Parallel’ and add it to the diagram.

    adding_parallel_step3-1

  4. The ‘Parallel’ does not remain selected once it has been dropped. You can now begin to add other diagram constructs to the new parallel branches.

    adding_parallel_step4_1-1

  5. To add another branch, select the ‘Parallel’ construct, then select ‘Add Branch’ and you will see another branch appear. Add as many as desired by repeatedly clicking the button.

    adding_parallel_step5_1-1

  6. Click the ‘Save’ button located on the toolbar to persist your changes to your project’s database.

    adding_parallel_step6-1

* Note: For more information on this construct and how it is represented in the database model, see Action Diagram Constructs.

 

Adding an OR

An ‘Or’ construct can be added to an ‘Action Diagram‘ via drag-and-drop.

  1. Within an ‘Action Diagram’, click the ‘Or’ icon in the ‘New’ tab of the left sidebar and continue to hold down the left mouse button.

    adding_or_step1-1

  2. Drag the ‘Or’ icon over to the arrow line between the Start and End nodes.

    adding_or_step2-1

  3. When the line between the Start and End nodes highlights green, release the left mouse button to drop the new ‘Or’ and add it to the diagram.

    adding_or_step3

     

    Notice the ‘Or’ stays selected once it has been dropped. Since it is selected, the toolbar changes to include buttons for functions that can be used on the construct. The sidebar also changes to include additional ‘Metadata,’ ‘Attributes’ and ‘Relationships’ tabs.

  4. Once added to the diagram, enter a meaningful ‘Name’ for your new ‘Or’ via the ‘Attributes’ tab of the left sidebar (focused automatically for convenience).

    adding_or_step4-2

  5. Click the ‘Save’ button located on the toolbar to persist your changes to your project’s database.

    adding_or_step5-1

* Note: The above process describes using the ‘New’ tab of the left sidebar, which automatically generates a new entity to represent each new diagram construct. If you would like to reuse existing entities from your database to represent a new construct, use the ‘Existing’ tab instead.

For more information on this construct and how it is represented in the database model, see Action Diagram Constructs.

Adding a Sync

‘Sync’ construct can be added to an ‘Action Diagram‘ via drag-and-drop.

  1. Within an ‘Action Diagram,’ click the ‘Sync’ icon in the ‘New’ tab of the left sidebar and continue to hold down the left mouse button.

    adding_sync_step1-1

  2. Drag the ‘Sync’ icon over to the arrow line between the Start and End nodes.

    adding_sync_step2-1

  3. When the line between the Start and End nodes highlights green, release the left mouse button to drop the new ‘Sync’ and add it to the diagram.

    adding_sync_step3-2

     

    Notice the ‘Sync’ stays selected once it has been dropped. Since it is selected, the toolbar changes to include buttons for functions that can be used on the construct. The sidebar also changes to include additional ‘Metadata,’ ‘Attributes’ and ‘Relationships’ tabs.

  4. Once added to the diagram, enter a meaningful ‘Name’ for your new ‘Sync’ via the ‘Attributes’ tab of the left sidebar (focused automatically for convenience).

    adding_sync_step4-1

  5. Click the ‘Save’ button located on the toolbar to persist your changes to your project’s database.

    adding_sync_step5-1

* Note: The above process describes using the ‘New’ tab of the left sidebar, which automatically generates a new entity to represent each new diagram construct. If you would like to reuse existing entities from your database to represent a new construct, use the ‘Existing’ tab instead.

For more information on this construct and how it is represented in the database model, see Action Diagram Constructs.

Adding a Loop

‘Loop’ construct can be added to an ‘Action Diagram‘ via drag-and-drop.

  1. Within an ‘Action Diagram’, click the ‘Loop’ icon in the ‘New’ tab of the left sidebar and continue to hold down the left mouse button.

    adding_loop_step1-1

  2. Drag the ‘Loop’ icon over to the arrow line between the Start and End nodes.

    adding_loop_step2-1

  3. When the line between the Start and End nodes highlights green, release the left mouse button to drop the new ‘Loop’ and add it to the diagram.

    adding_loop_step3-1

     

    Notice the ‘Loop’ stays selected once it has been dropped. Since it is selected, the toolbar changes to include buttons for functions that can be used on the construct. The sidebar also changes to include additional ‘Metadata,’ ‘Attributes’ and ‘Relationships’ tabs.

  4. Once added to the diagram, enter a meaningful ‘Name’ for your new ‘Loop’ via the ‘Attributes’ tab of the left sidebar (focused automatically for convenience).

    adding_loop_step4-1

  5. Click the ‘Save’ button located on the toolbar to persist your changes to your project’s database.

    adding_loop_step5-1

* Note: The above process describes using the ‘New’ tab of the left sidebar, which automatically generates a new entity to represent each new diagram construct. If you would like to reuse existing entities from your database to represent a new construct, use the ‘Existing’ tab instead.

For more information on this construct and how it is represented in the database model, see Action Diagram Constructs.

Adding an Input/Output

An ‘Input/Output’ construct can be added to an ‘Action Diagram‘ via drag-and-drop.

  1. Within an ‘Action Diagram,’ click the ‘Input/Output’ icon in the ‘New’ tab of the left sidebar and continue to hold down the left mouse button.

    adding_IO_step1-2

  2. Drag the ‘Input/Output’ icon over to the adjacent diagram canvas.

    adding_IO_step2-1

  3. Release the left mouse button while over the diagram canvas to drop the new ‘Input/Output’ and add it to the diagram.

    adding_IO_step3-1

  4. Select the generating ‘Action’ construct, then click one of the green circles and continue to hold down the left mouse button.

    adding_IO_step4-1

  5. Drag the green circle to your newly created ‘Input/Output’ construct.

    adding_IO_step5-1

  6. When the ‘Input/Output’ highlights bright green, release the left mouse button to add a generated by/generates relationship.

    adding_IO_step6-1

  7. Select your newly created ‘Input/Output’ construct, then click one of the green circles and continue to hold down the left mouse button.

    adding_IO_step7-1

  8. Drag the green circle to the receiving ‘Action’ construct of your choice.

    adding_IO_step8-1

  9. When the receiving ‘Action’ highlights green, release the left mouse button to add the appropriate relationship. Releasing over the “Trigger” section will automatically add the received by/receives relationship with the Trigger relationship attribute set to “Yes,” while releasing over the “Optional” section will automatically add the received by/receives relationship with the Trigger relationship attribute set to “No.”

    adding_IO_step9-1

  10. Once added to the diagram with the proper relationship, enter a meaningful ‘Name’ for your new ‘Input/Output’ via the ‘Attributes’ tab of the left sidebar (focused automatically for convenience).

    adding_IO_step10-1

  11. Click on one of the lines. Position the lines by selecting the blue dots and moving them to the desired location around the shape.

    adding_IO_step11-1

  12. Click the ‘Save’ button located on the toolbar to persist your changes to your project’s database.

    adding_IO_step12-1

Note: The above process describes using the ‘New’ tab of the left sidebar, which automatically generates a new entity to represent each new diagram construct. If you would like to reuse existing entities from your database to represent a new construct, use the ‘Existing’ tab instead.

I/O Decomposition

Action diagrams’ ‘Input/Output’ parents now can support I/O decomposition which will display children ‘Input/Outputs’ and display the relationship between them when inside a decomposed Action diagram.

  1. Enter a decomposed Action diagram by clicking the ‘Decomposed’ button on a parent ‘Action’ in an Action diagram.

    IO_decomp_step1-1-1

  2. Once inside the decomposed Action diagram, when a parent ‘Input/Outputs’ has children Input/Outputs, selecting the Parent ‘Input/Outputs’ will cause the ‘Decomposed Parent IO’ button to appear.

    IO_decomp_step4-1

  3. Click on the ‘Decomposed Parent IO’ button to generate the Child ‘Input/Outputs.’

    IO_decomp_step5-1

For more information on this construct and how it is represented in the database model, see Action Diagram Constructs.

Adding a Branch Asset

‘Branch Asset’ construct can be added to an ‘Action Diagram‘ via drag-and-drop.

  1. Within an ‘Action Diagram,’ with a Parallel construct already in place, click the ‘Branch Asset’ icon in the ‘New’ tab of the left sidebar and continue to hold down the left mouse button.

    adding_branch_asset_step1-1

  2. Drag the ‘Branch Asset’ icon over to a branch of a ‘Parallel’ of your choice.

    adding_branch_asset_step2-1

  3. When the branch highlights green and the green ‘+’ appears, release the left mouse button to drop the new ‘Branch Asset’ and add it to the diagram.

    adding_branch_asset_step3-1

     

  4. Notice the ‘Branch Asset’ stays selected once it has been dropped. Since it is selected, the toolbar changes to include buttons for functions that can be used on the construct. The sidebar also changes to include additional ‘Metadata,’ ‘Attributes’ and ‘Relationships’ tabs.

  5. Once added to the diagram, enter a meaningful ‘Name’ for your new ‘Branch Asset’ via the ‘Attributes’ tab of the left sidebar (focused automatically for convenience).

    adding_branch_asset_step4-1

  6. Click the ‘Save’ button located on the toolbar to persist your changes to your project’s database.

    adding_branch_asset_step5-1

     

    * Note: The above process describes using the ‘New’ tab of the left sidebar, which automatically generates a new entity to represent each new diagram construct. If you would like to reuse existing entities from your database to represent a new construct, use the ‘Existing’ tab instead.

    For more information on this construct and how it is represented in the database model, see Action Diagram Constructs.

 

Adding a Resource

‘Resource’ construct can be added to an ‘Action Diagram’ via drag-and-drop.

  1. Within an ‘Action Diagram,’ click the ‘Resource’ icon in the ‘New’ tab of the left sidebar and continue to hold down the left mouse button.

    adding_resource_step1-2

  2. Drag the ‘Resource’ icon over to the adjacent diagram canvas.

    adding_resource_step2-2

  3. Release the left mouse button while over the diagram canvas to drop the new ‘Resource’ and add it to the diagram.

    adding_resource_step3-2
    Note the ‘Resource’ stays selected once it has been dropped in place. Since it is selected, the toolbar changes to include buttons for functions that can be used on the construct. The sidebar also changes to include additional ‘Metadata,’ ‘Attributes’ and ‘Relationships’ tabs.
  4. With the ‘Resource’ selected, green dots on the top, left, bottom, and right are shown. Click one of the green circles and continue to hold down the left mouse button.

    adding_resource_step4-3

  5. Drag the green circle to the destination ‘Action’ of your choice.

    adding_resource_step5

  6. When the destination ‘Action’ highlights purple, release the left mouse button to add the appropriate relationship. Releasing over the “Consumes” section will automatically add the consumed by/consumes relationship, while releasing over the “Seizes” section will automatically add the seized by/seizes relationship.

    adding_resource_step6

  7. Once added to the diagram with the proper relationship, enter a meaningful ‘Name’ for your new ‘Resource’ via the ‘Attributes’ tab of the left sidebar (focused automatically for convenience).

    adding_resource_step7-2

  8. Click on one of the lines. Position the lines by selecting the blue dots and moving them to the desired location around the shape.

    adding_resource_step8-1

  9. Click the ‘Save’ button located on the toolbar to persist your changes to your project’s database.

    adding_resource_step9-1

* Note: The above process describes using the ‘New’ tab of the left sidebar, which automatically generates a new entity to represent each new diagram construct. If you would like to reuse existing entities from your database to represent a new construct, use the ‘Existing’ tab instead.

For more information on this construct and how it is represented in the database model, see Action Diagram Constructs.

 

Removing a Construct

A construct can be easily removed from an ‘Action Diagram.’

  1. Within an ‘Action Diagram,’ select the construct you wish to remove. This will make the toolbar appear with applicable functions which can be used on the selected construct.

    removing_step1-1

  2. Click the ‘Remove’ button to remove the construct from the diagram (as the default action).

    removing_step2-1

     

    * Note: The ‘Remove’ button also includes a drop-down menu where you can select ‘Delete from Database’ or the default option of ‘Remove from Diagram.’

 

Simulating Action Diagrams

  1. Within an ‘Action Diagram‘ locate the ‘Simulate’ drop-down in the toolbar.

    simulating_action_step1-1

  2. Click to open the ‘Simulate’ drop-down and select either the ‘Monte Carlo‘ or ‘Discrete Event‘ menu item to be navigated to the respective simulation tool where you can simulate your model.

    simulating_action_step2-1

 

To continue learning about Sopatra Diagrams, Click Here.

(Next Article: Generate Diagram Reports)