Cradle from 3SL, the complete Model Based Systems Engineering Toolsuite, specialising in requirements management, requirements capture, model based systems engineering and for systems engineering software, support and consultancy, the logical choice: Cradle from 3SL.
login Register forgot password or username?
Search:         

Welcome to 3SL Reference Section

Behaviour Diagram 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

Relationships with Other Diagrams

Within a hierarchy of DFDs and possibly extended Function Block Diagrams (FFBDs), eFFBDs may be used to provide detailed information on order-critical parts of the system. If much of the system relies on time-sequenced events, the complete diagram hierarchy could be made up of eFFBDs. In other cases, a particular sub-system, such as an electronic component, may be the only time order-critical section.

There is considerable flexibility in the choice of the overall structure of a diagram hierarchy for a system. The structure should be chosen based on the system aspects to be described.

Numbering of eFFBDs

They are numbered as are eFFBD symbols that can be expanded, e.g. objects on eFFBD 1 will have numbers 1.1, 1.2, 1.3 etc., which are the numbers of the eFFBDs into which they may be expanded.

Symbols

An example eFFBD is:

Screenshot of an eFFBD

The symbols available in an eFFBD are:

Symbol Name Description Definition Expansion
Comment Comment Makes a note anywhere in the diagram. Are always surrounded by * characters. None None
Time Function Time Function A series of functions occurring over time in a predefined order. A Time Function may contain lower level Time Functions in a lower level eFFBD. Function
specification
BD
DFD
IDEF0
Shared Function Shared Function A function that may be reused in this, or other, eFFBD and therefore considered to be off-the-shelf functionality. All uses of the shared function X on any eFFBD, reference the same definition and/or eFFBD for X. Function
specification
eFFBD
Reference Function Reference
Function
A function that references a user-specified function specification as well as having its own specification definition. This is to provide an alternative method to shared functions for providing reuse of functions within a model. Function
specification
None
Discrete Item Discrete Item An item at the lowest level of detail of interest. Data definition None
Time Line Start Time Line Start Represents the start of a time sequence. None None
Time Line End Time Line End Represents the end of a time sequence. None None
Parallel Node Parallel Node Acts as the starting point for a set of concurrent operations. Has two or more outgoing branches, none with a label. The set of operations distributed along each branch are, collectively, considered to occur in parallel with the operations along all other branches. Within a branch, the processing of individual operations is sequential, unless that branch itself contains other nodes. All branches converge at a matching Parallel Node. The processing along all branches is considered to be synchronised by this node, so that the processing along some branches may be held until the processing along other branches has completed. None None
Selection Node Selection Node Acts as an exclusive-OR operation. Has two or more outgoing Time Line branches, each with a label. The node effectively routes the flow of control along one of these outgoing branches, depending on the exit condition of the upstream operation. All the Time Line branches must subsequently converge at a matching destination Selection Node. As an alternative, an operation may have multiple, labelled, outgoing branches, which converge at a Selection Node. This effectively subsumes the first Selection Node within the operation. None None
Iteration Node Iteration Node Causes its outgoing branch to be processed iteratively. At the end of the iterative processing section of Time Line, there is another Iteration Node which may or may not have a label; if it does, this label must match that of the Iteration Node at the start of the loop. From this second Iteration Node, a Time Line Loop branches back to the first Iteration Node. This Time Line Loop contains the iteration condition, either at its start or at its end, depending on the type of loop that is required. None None
Replicate Node Replicate Node Creates a set of replicants of those of its outgoing branches that have a label. The number of these replicants is specified in the Replicate Node’s label. There must be one unlabelled outgoing branch containing operations that control the replicants. All the outgoing branches converge into a second Replicate Node that marks the end of the replication. None None
End Loop Node End Loop Node Causes a jump in the sequence of control to the outgoing branch of the loop node with the specified label, such that control continues after the specified loop. None None
Goto Node Goto Node Causes a jump in the sequence of control along the Time Line to the Label Node in the same eFFBD that has the matching label. Can be many Goto Nodes with the same label. None None
Label Node Label Node Marks the destination of a Goto Node with a matching label. There may not be more than one Label Node with the same label. None None
Exit Diagram Node Exit Diagram Node Causes all processing in the diagram to stop, and returns the flow of control to the exit of the eFFBD’s parent function with the same name as the node’s incoming branch. None None
Event (Run Diag) Node Event (Run Diag) Node Causes the flow of control to begin at the start of the Time Line in the eFFBD specified in the node’s label. None None
Validation Node Validation Node Serves simply as a means of reporting timing statistics from the Time Line (when timing information is available for eFFBDs) where the information reported is identified by the node’s label. None None
Join Node Join Node Rejoins two or more Time Lines that have been created by either an AND, OR or multiple exit node earlier in the processing. None None
Environment Environment Represents an external system or environment to the system being modelled. Environment None
Time Line Time Line Represents the flow of time from object to object. None None
Time Line Loop Time Line Loop Used in a loop or iteration structure to return to a Loop or Iteration Node and begin another repetition. None None
Data Link Data Link Represents the flow of data both into and out of functions. Data definition None
Trigger Data Link Trigger Data Link Represents the flow of data into a function, that triggers the function to execute. Data definition None
Picture Picture Allows you to choose the location of a GIF or JPEG image to be displayed as a diagram symbol or to be embedded in an existing diagram symbol. None None

Functions can have multiple exits for alternate conditions. Shared functions are identified by the name, not the number. They have a common definition and a common child diagram.

Trigger data links can be named, when they can link functions together, or link functions to the environment. This reduces the need for discrete items, reducing the diagrams’ complexity.