Enhanced Function Flow Block Diagram (EFFBD)

A variant of the traditional FFBD representation, the EFFBD and its SysML cousin activity diagram are the most complete representations of behavior. Part of the behavioral (logical architecture) representation set, they unambiguously represent the flow of control through sequencing of functions and constructs as well as the data interactions overlaid to present a more complete picture. EFFBDs also display resources - the third critical aspect of executable behavior.


The EFFBD 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.


The rounded rectangles on an EFFBD represent the items or the data interaction aspect of behavior. Whereas most behavioral representations focus on either the control or the data, the EFFBD and the activity diagram represent both to provide full context and understanding. The EFFBD clearly distinguishes between the two primary roles that items play:



Trigger and Input?

It is not necessary to connect an item to a function as both a trigger and a data store. It is implicitly understood that a trigger is also an input to the function.


Resources are also optionally displayed on EFFBDs. Resources are drawn with a double border to help distinguish them. Resources can be related to functions in three different ways:


A function begins execution when it has received all of its triggers and its necessary resources have been acquired. If the flow of control has reached a function but either the triggers or resources are not available, the function is said to be enabled but waiting. Obviously, this has notable impacts in the sequencing and synchronization of behavior as well as the overall performance (how quickly the process completes) and whether or not it can complete at all due to live-locks and deadlocks.


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.

Diagram Options

In addition to the classic diagram options, the EFFBD diagram settings include:

Diagram Palette

The constructs and key entities tabs allow you to quickly develop your EFFBD diagram, while the all entities tab enables you to relate your diagram elements to the remainder of your system definition.

Diagram Menu Commands

Tips and Tricks