Action Diagram

Introduction to Action entities with the Action Diagram in Innoslate.

 Using Action Diagrams

Function Description
Creating Action Diagrams Using ‘Diagrams View’ in Innoslate, you can create a new ‘Action Diagram’.
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.
Adding a Resource ‘Resource’ 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 Action Diagrams Within Innoslate, you can ‘Simulate Action Diagrams.’

 

The ‘Action Diagram’, traditionally known as a functional flow diagram, is a method of displaying Action entities, their interactions via Input/Output and Resource entities, and logical flow. This diagram conforms to the LML Specification 1.4 definition of an ‘Action Diagram’, which requires a diagram representation of the functional components of a system model.

action diagram overview
 Note, if you want to use any subclass of Action (such as Task, Test Case or any other modification made to the schema to your project that makes a class a subclass of Action) there is a dropdown to change any of the below constructs into that class on the left sidebar as indicated with the red box in the image below.
class options action diagram

Creating Action Diagrams

Within the Diagrams Dashboard, users can create a new diagram by clicking the ‘ Create Diagram’ button in the top right corner of the page. Users can choose whether to create the diagram from a new root entity (default) or create the diagram from an existing entity by clicking the dropdown arrow on the right side.

CreateActionDiagrams

 

Clicking the ‘Create Diagram’ button will open the New Diagram dialog where you will be directed through the process of creating a new root entity for the diagram.

Create an Action Diagram

  1. Choose Which Type of Diagram to Create

    In step 1, select ‘Action Diagram,’ under LML as your diagram type.

                   action_step1

     

    Click the ‘Next’ button.

                   action_next

  2. Specify New Root Action Information

    In step 2, users will be prompted to input a diagram ‘Number,’ ‘Name,’ and ‘Description’ (optional) (users must provide at least a Name). Then, click the ‘Finish’ button and Innoslate will direct users to the new Action Diagram.

                   action_step2

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.

    serial action construct action diagram

  • 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 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.

    parallel action construct action diagram

  • 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.

    or action construct action diagram

  • 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.

    sync construct action diagram

  • 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.

    loop action construct action diagram

  • Input/Output

    This construct is a functional representation of data that is passed between Action  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.

     
    input/output constructs action diagram
  • 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 Action 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’.

    branch asset construct action diagram

  • 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.

    resource constructs action diagram

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

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

    adding_action_step2

  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

     

    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-1

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

    adding_action_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.

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

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

    adding_parallel_step2

  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

  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

  5. To add another branch, select the blue ‘Parallel’ construct signified with the blue bar then select ‘Add Branch’ and another branch will appear. Add as many as desired by repeatedly clicking the 'Add Branch' button.

    adding_parallel_step5_1

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

    adding_parallel_step6

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

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

    adding_or_step2

  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. Note, more branches may be added with the 'Add Branch' button on the top toolbar frame.

    adding_or_step4

     

    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-1

  5. Users may change the branch name by clicking on the label above the line.
    adding_or_step5
  6. Click the ‘Save’ button located on the toolbar to persist your changes to your project’s database.

    adding_or_step5

* 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.

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

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

    adding_sync_step2

  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

     

    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

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

    adding_sync_step5

* 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.

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

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

    adding_loop_step2

  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

     

    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

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

    adding_loop_step5

* 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.

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-1

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

    adding_IO_step2

  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

  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

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

    adding_IO_step5

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

    adding_IO_step6

  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

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

    adding_IO_step8

  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

  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.

    adding_IO_step10

  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

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

    adding_IO_step12

Using the canvas and entity's green dots to connect two action entities together in an Action Diagram will also generate an 'Input/Output' as shown below.

create i.o action ent act diag view

I/O Decomposition

Action diagrams’ ‘Input/Output’ parents 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


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

    IO_decomp_step4

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

    IO_decomp_step5

Adding a Branch Asset

‘Branch Asset’ construct can be added to an ‘Action Diagram‘ via drag-and-drop on a parallel action branch.

  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

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

    adding_branch_asset_step2

  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

     

    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.

  4. 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

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

    adding_branch_asset_step5

     

    * 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.

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. Drag the ‘Resource’ icon over to the adjacent diagram canvas.

    adding_resource_step2

  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

    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

  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

  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

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

    adding_resource_step9

* 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.

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

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

    removing_step2

    * 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
Click to open the ‘Simulate’ drop-down and select either the 'Monte Carlo' or the 'Discrete Event' to be navigated to the respective simulation tool where you can simulate your model.

simulating_action_step2

Tutorial Video


 

To continue learning about LML Diagrams, Click Here.

(Next Article: Activity Diagram Modifications & Settings)