Announcing Cradle-7.7 - start your free trial here

3SL Reference - Extended Functional Flow Block Diagram (eFFBD)

Extended Functional Flow Block Diagram (eFFBD)

eFFBDs show the interaction between system functions by distributing them along a timeline. A timeline consists of a set of directed arrows, connecting functions and nodes to depict a processing sequence. The timeline effectively constitutes a flow of control. No data flows along the timeline, it simply indicates the order in which functions are processed. The timeline may branch into two or more parts at a node, described below, which must subsequently converge. An eFFBD must have a single start point for its timeline and a single end point.

Individual parts of the timeline may be named or unnamed. Named arrows are used to label alternate time line branches, either to represent alternate exit conditions from a function (such as success or failure), or in relation to the action of nodes in the control flow.

Functions represent units of work. A function becomes executable when it is reached in the timeline. It will begin to execute immediately unless it receives triggering input data, when it waits for this input data to be available. A function can consume and/or produce data to/from data items. A function can have one or more exit timelines. If it has more than one, then the alternative exits represent different exit conditions from the work done by the function, such as an OK, Warning or Error exit condition. Other functions can be placed on these exit timelines, to perform corrective or exception handling behaviour. All functions are described in function specifications and can all be decomposed into lower-level diagrams.

There are three types of function:

  • Function - a unit of work, as above
  • Reference function - function that has its own description (in a function specification), but also has a reference to the number of another function specification. This can be used to have several reference functions all referring to a common function, which in turn can have its own description (in a function specification) and diagram (an eFFBD) and decomposition (lower-level diagram and/or function specifications).
  • Shared function - a function that has a single description (in a function specification) and possibly its own decomposition into a hierarchy of lower-level diagrams (as for a function), but unlike functions and reference functions, all shared function symbols with the same name have a single, shared description and decomposition. Therefore, all instances (on any number of diagrams) of a shared function called MyFunction will share the same description and decomposition.

Nodes are used to split the timeline into two or more branches. The processing along each branch is sequential unless that branch also contains nodes which instigate concurrent or other processing.

Nodes do not have a definition: their sole purpose is to define the manner in which eFFBD functions are connected, and their behaviour over time. Some of the nodes will, however, have a label, used either to specify conditional processing, or to link associated nodes or eFFBDs together.

The nodes are intended to be used to create sequential, conditional, concurrent, replicative and iterative processing constructs.

As DFDs and eFFBDs both show functions and data, there are inevitably similarities between them. DFDs are, by definition, inherently concurrent in that all functions without prompts (control flows such as E/D and T or TRIGGER) are concurrently executable. The order in which they execute is determined by:

  1. The order in which data and/or control signals arrive on diagram input flows
  2. The states and transition logic in the State Transition Diagram (STD) of any control processes on the diagram
  3. The order imposed by self-evident truths, such as a function cannot execute without its input data from the output of another function, or a store filled by another function

However, the intrinsic benefit of the eFFBD notation is the way that sequence, iteration, and concurrency are shown on the diagram by the arrangement of functions along a (possibly complex) timeline.

eFFBDs do not have an explicit concept of state as provided by the STD, nor do they provide the same degree of detail in the logic for transitioning between states. The DFD and STD combination therefore offers more expressive power in this respect.

Cradle provides the eFFBD in both Essential and Implementation Domains from two primary perspectives:

  1. To allow functionality to be represented completely in terms of eFFBDs: this approach is practicable provided that control signals and states are not significant in the system
  2. To allow an alternate view of functionality to be provided by allowing both DFD and eFFBD representations of the system

Where DFDs model the system as it is, eFFBDs model what the system does.

eFFBDs are hierarchical. Their connectivity is:

Diagram showing the hierarchical connectivity of FFBDs