Each Process Flow Diagram (PFD) shows a particular task or process that the system can perform, known as a flow. A system will provide many process flows, and indeed may perform many process flows simultaneously. Each process flow connects functions in the system model along a timeline, any manual operations performed by users, and operations performed by external systems.
The operation is the basic unit of a process flow, and is therefore the principal symbol used on a PFD. Remaining PFD symbols are used to describe the timeline that links the operations.
PFDs provide four types of operation:
An operation is a general, decomposable, operation in a process flow. It can contain a process sub-flow in a lower-level PFD, in which it will be allocated to either the system (as a system operation) or the user (as a user operation) or to another system that the system links to (as an agent operation). Operations are described by operation specifications.
It is usual for higher level PFDs to contain only operations. As these operations are decomposed into lower-level PFDs, the other types of operation appear. The bottom-level operations will all be system operations, user operations or agent operations, to reflect the allocation of parts of the process flow.
System operations correspond to functions in the system functional model shown in any of the following diagram types:
The primary role of a PFD is to define system operations that link to functions in other diagrams, so the PFD combines references to these functions into its process flow.
System operations have their own operation specifications to describe the role that the system function fulfils in the context of the process flow, and a reference to a function in the main system model. This reference is held in the Source Label field of the system operation symbol. Two or more PFD system operations can reference the same function (shown in a DFD, eFFBD, or IDEF0) in the main system model.
When the PFD is in Definitions mode the names of the referenced system functions’ function specifications are shown next to the number in the top of the System Operation symbol. If the symbol is wide enough, then all of the specification’s name is shown, otherwise as much of the name as will fit is shown, with the truncation shown by a trailing … ellipses.
If the PFD is project-owned, then the function name shown is taken from the project-owned specification in the most recently closed baseline, and if there is no such specification, then the highest version and draft of all non-project-owned instances of the specification is used.
If the PFD is not owned by the project, then the function name is taken from the highest version and draft of all non-project-owned instances of the referenced specification, and if there are none, the name is taken from the highest version in a project baseline.
User operations describe user involvement in process flows. In many approaches, the user is either not shown (eFFBDs), superficial (DFD Environments), or is mixed with descriptions of required system behaviour (UML Use Cases). User operations overcome these problems.
Agent operations describe external systems or equipments for which the system:
PFDs provide environment symbols that can contain user operations or agent operations. This allows the PFD to explicitly show which part of the environment, or which external system, is performing the specific user or agent operations in the process flow.
The operations in a PFD are connected along a timeline by nodes, similar to those in eFFBDs. The data required or produced by operations can be shown with the same data item symbols found on eFFBDs.
Cradle’s other modelling notations concentrate on the system being developed, rather than on the use of the system. That is, a system will perform many tasks simultaneously, but the functionality that performs an individual task may be distributed throughout the main system model.
PFDs are not hierarchical and they are available in both the Essential and Implementation Domain.
Each PFD has a name and an identifying number whose value is the same as the name. This numbering system emphasises the distinction between PFDs, with process-oriented names and numbers, from the main system functional model, where all diagrams and functions have a structured numbering system that ties them together into a single hierarchy.
An example PFD is:
The symbols available in PFDs are:
Symbol | Name | Description | Definition | Expansion |
---|---|---|---|---|
Comment | Makes a note anywhere in the diagram. Are always surrounded by * characters. Note: If you do not want Cradle to automatically add an * go to the Graphics Settings section of Project Setup and turn off the Automatically add asterisks to diagram's comment symbols option. | None | None | |
Discrete Item | An item at the lowest level of detail of interest. | Store data definition | None | |
Time Line Start | The start of a time sequence. | None | None | |
Time Line End | The end of a time sequence. | None | None | |
Parallel Node | Acts as the starting point for a set of concurrent operations. Has two or more outgoing branches, that may or may not have 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 | 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 | 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 | 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 | 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 | Causes a jump in the sequence of control along the Time Line to the Label Node in the same PFD that has the matching label. There may be many Goto Nodes with the same label. | None | None | |
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 | Causes all processing in the diagram to stop, and returns the flow of control to the exit of the PFDs’ parent function with the same name as the node’s incoming branch. | None | None | |
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 | Serves simply as a means of reporting timing statistics from the Time Line (when timing information is available for PFDs) where the information reported is identified by the node’s label. | None | None | |
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 | Represents an external system or environment to the system being modelled. | Environment | None | |
System Operation | Used to describe the particular role that the system function is fulfilling in the context of the process flow, and to provide a reference to a function (and its specification) in the main system model. It will therefore be possible for two or more System Operations to reference the same function (shown in a DFD or eFFBD) in the main system model. | Operation specification | None | |
User Operation | Used to describe user (human) intervention in process flows. In many modelling approaches, the involvement of the user is either not shown (e.g. eFFBDs), is superficial (environments in DFDs), or is intermingled with descriptions of required system behaviour (UML use cases in UCDs). | Operation specification | None | |
Agent Operation | Similar to User Operation, except that an agent is not a user, but an external system or equipment. This is intended to show the involvement of other systems or equipments in the process flow, and to allow a description of the interaction that is expected or required with the other system or equipment. This overcomes the similar problem to that solved by User Operation for user interaction. | Operation specification | None | |
Operation | Is the means to create a PFD hierarchy. | Operation specification | PFD | |
Environment | Allows user or agent operations to be enclosed inside it. This allows the PFD to show explicitly which user or agent in the environment is to be responsible for performing each of the user and agent operations. | Environment | None | |
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 | |
Timeline | Represents the flow of time from object to object. | None | None | |
Timeline Loop | Used in a loop or iteration structure to return to a Loop or Iteration Node and begin another repetition. | None | None | |
Data Link | Represents the flow of data both into and out of an operation. | None | None | |
Trigger Data Link | Represents the flow of data into an operation, which triggers the operation to execute. | Flow data definition | None | |
Item | Represents a requirement or system note in the diagram. | None | None | |
Context Item | Represents a requirement or system note in a diagram and is a container within which other object symbols can be drawn or attached. | None | None | |
Cross Reference Link | Represents a cross reference that exists between a pair of system notes/requirements. It can also represent a cross reference between a system note/requirement and a specification or data definition or system that describes the objects symbols that it connects. | None | None |