FFBDs have the classic features of logic structures and control flow. Part of the behavioral (logical architecture) representation set, they unambiguously represent the flow of control through sequencing of functions and constructs, focusing exclusively on structural control and ignoring the sequencing and synchronization aspects of the corresponding data flow. The FFBD is often used in conjunction with an N2 diagram to provide a more complete representation of behavior.
The FFBD is available for elements in the Function class (as well as any other subclasses of ProcessingUnit).
When drawn horizontally, the flow of control is left to right. Rectangular nodes represent functions. Circular nodes and branching structures represent control constructs - the building blocks of behavior. As a function completes execution, flow of control proceeds along the branch lines to the next function or control construct. Each construct has a precise definition that prescribes how control will be passed within the construct and when the construct itself will end. This combination is fully executable (not just animated) by COREsim.
CORE supports the standard hierarchical features of logical architectures. When the decomposition of an element has been specified, the icon representing that element has a black box in the upper-left corner as a visual cue.
A special aspect of CORE's FFBD and EFFBD representations are reference nodes. Reference nodes reflect the context immediately surrounding this behavior. The function shown in a gray box with a broken frame on the left edge represents the last function to complete before this decomposition begins (the source of control flow). The function shown in a gray box with a broken frame on the right edge represents the next function to enable when this decomposition completes (the sink of control flow). When there is no previous or next function, the boxes are simply labeled "Ref." When a function appears multiple times in a system model or when the previous / next construct is complex, reference nodes can begin to branch showing all of the paths into and out of a given function's decomposition. These reference nodes are automatically computed and updated by CORE. In this way, the reference nodes provide very valuable context information.
When reference nodes branch, there are always an equal number of branches on the source and sink of the diagram. These branches correspond - if you enter the decomposition by the first branch on the left, you will exit by the first branch on the right, and so on. |
In addition to the classic diagram options, the FFBD settings include:
Show Reference Nodes - controls whether reference nodes should be computed and shown at the beginning and end of the flow. Reference nodes indicate the source and sink of the control flow (what function completed immediately before this flow begins and what function will be enabled when this flow completes).
The constructs and key entities tabs allow you to quickly develop your FFBD diagram, while the all entities tab enables you to relate your functions to the remainder of your system definition.
Constructs
New Node - drop onto a branch to insert a new function as part of the diagram decomposition (decomposed by)
Nodes - drop onto the diagram background to insert an existing function as part of the diagram decomposition (decomposed by)
Parallel - drop onto a branch to insert a new parallel construct (concurrency) with two branches
Select - drop onto a branch to insert a new select construct (exclusive OR) with two branches
Branch - drop onto a parallel or select construct to add a new branch as the last branch
Loop - drop onto a branch to insert a new loop construct
Loop Exit - drop onto the end of a branch within a loop construct to insert a new exit from the enclosing loop
Iterate - drop onto a branch to insert a new iterate construct
Replicate - drop onto a branch to insert a new replicate construct
Exit - drop onto the end of a branch to insert a new exit from this decomposition
Exit Condition - drop onto a function node to add an exit branch
New Information Block - drop onto the diagram to insert an information block (a mini property sheet)
New Note - drop onto the diagram to insert a new note (descriptive text in a note icon)
New Shape - drop onto the diagram to insert a new shape (a rectangle, rounded rectangle, circle, or ellipse with text, if desired)
New Graphic - drop onto the diagram to insert a new picture
Key Entities
Exit - drop an existing exit onto a function node to assign the exit as an exit condition (exits by)
Function - drop an existing function onto the diagram background to it as part of the diagram decomposition (decomposed by)
All Entities - all classes and elements in the system model, allowing you to drag any element on top of a diagram node to establish relationships with the balance of your system model
Insert
Open Element view submenu
Double-clicking on constructs is a shortcut for editing their specific properties. Double-clicking on a branch allows you to edit the branch annotation. Double-clicking on an iterate or a replicate allows you to specify the corresponding domain set. Control double-clicking is a shortcut for adding a branch to a parallel or select construct.
To enter a multi-line annotation for a branch or a loop, specify line breaks with a single backslash "\". If a backslash is desired, enter a double backslash "\\".
When using commands to manipulate the diagram (or when double-clicking a construct on the palette for quick insertion), selecting the branch will insert at the end of the branch. To insert before a construct, have the construct selected.
When using drag-drop to manipulate the diagram, dropping a node or construct on the background adds the object to the end of the main branch. Dropping it on a branch inserts at the specific position on the branch.
You can use drag-drop to quickly move nodes and constructs positions, reallocate to a different branch, etc. If using the right mouse button to drag-drop, simply select "move" when you drop the construct. If using the left mouse button, release the control key after you have started your drag operation. The plus sign indicating a copy operation will disappear and the drop will be a move operation instead.
Nested logic is used when determining the color for a constructs. Therefore, setting the color scheme for a parallel construct affects all constructs within that construct that are set to use the default color scheme. This allows you to quickly apply color schemes to nested constructs.
By default, the function icon displays the component the function is allocated to as the bottom line. Maintaining this representation complements the logical architecture with the physical allocation.
While most users think of dragging objects from the palette onto the diagram, you can also drag objects from the diagram onto palette elements to establish relationships. This is particularly useful when allocating functions. Shift-click to select the functions of interest and then drop them onto the performing component on the All Entities tab to allocate several functions at once.