Show the other guides in this set
Table of Contents Previous section Next section

Data Flow Diagram (DFD)

Introduction

The data flow diagram (DFD) is an OMT diagram that is added to the UML suite when you activate the OMT module.

WARNING: Information specified in the DFD will be lost during future upgrades.

Purpose

In OMT, you use DFDs to model what happens with data. You model the system as a network of processes that transform and exchange data.

The DFDs show the flow of data values from their sources in objects through the processes that transform them to their destination in other objects. Values can include input values, output values, and internal data stores. Control information is shown only in the form of control flows.

The following table lists the important elements of DFDs.

Symbol Stands For
Data process Data processing
Data flow Data flow or the exchange of data between processes
Data store Data storage
Actor Object producing and consuming data

Guidelines

You can follow certain guidelines to draw meaningful DFDs.

Decomposition

To specify what a high-level process does, break it down into smaller units in more DFDs. A high-level process is an entire DFD. Each high-level process is decomposed into other processes with data flows and data stores. Each decomposition is a DFD in itself. You can continue to break down processes until you reach a level on which further decomposition seems impossible or meaningless.

The data flows of the opened process are connected in the new diagram to the process related to the opened process. Vertices, and the flows and objects connected to them, are transferred with the flows that are connected to the decomposed process.

Example DFD

The following illustration shows a sample DFD.

Symbols

Introduction

This section describes the symbols used in the DFD. The following illustration shows the symbols as they appear in the diagram control panel.

Note: The Vertex, Select, Note and, Note connector symbols are common to all diagrams. They are described in Chapter 3, Working With Diagrams.

Data process

A data process transforms data values.

You can make a distinction between the following types of processes:

Process Type Indicates
High-level Process containing nonfunctional components such as data stores or external objects that cause side effects
Low-level Pure function without side effects, such as the sum of two numbers
Leaf or atomic processes Process that is not further decomposed

The name of a process is usually a description of the transformation it performs.

There are three sorts of transformation:

If you open a process, you can either create a new DFD or open an existing DFD in which the process is specified.

The data flows of the opened process are connected in the new diagram to the process with the name of the opened process. Vertices, and the flows and objects connected to them, are transferred with the flows that are connected to the decomposed process.

If a data process has a decomposition at a lower level, an asterisk is placed inside the ellipse. The data process can be opened only if it has a name.

Data store

A data store stores data passively for later access. A data store responds to requests to store and access data. It does not generate any operations. A data store allows values to be accessed in an order different from the order in which they were generated.

Input flows indicate information or operations that modify the stored data such as adding or deleting elements or changing values. Output flows indicate information retrieved from the store; this information can be an entire value or a component of a value.

Actor

An actor produces and consumes data, driving the DFD. Actors lie on the boundary of the diagram; they terminate the flow of data as sources and sinks of data. They are also known as terminators. Data flows between an actor and a diagram are inputs to and outputs of the diagram. The system interacts with people through the actor.

Anchor

A DFD anchor provides a start or end point. In decomposition diagrams, anchors represent the nodes connected to the decomposed process in the higher level diagram.

Data flow

A data flow moves data between processes or between processes and data stores. As such, it represents a data value at some point within a computation and an intermediate value within a computation if the flow is internal to the diagram. This value is not changed.

The names of input and output flows can indicate their roles in the computation or the type of the value they move. Data names are preferably nouns. The name of a typical piece of data, the data aspect, is written alongside the arrow.

See also Flow names and inheritance below.

Result flow

A result flow is a data flow that generates an object used as the target of another operation. The value of the flow is subsequently treated as an object, usually a data store.

See also Flow names and inheritance below.

Control flow

A control flow is a signal that carries out a command or indicates that something has occurred. A control flow occurs at a discrete point in time. The arrow indicates the direction of the control flow. The name of the event is written beside the arrow.

Control flows can correspond to messages in CCDs or events in STDs; however, because they duplicate information in the DFD, use them sparingly.

See also Flow names and inheritance below.

Update flow

Update (or bidirectional) flows are used to indicate an update of a data store, that is, a read, change, and store operation on a data flow.

See also Flow names and inheritance below.

Flow names and inheritance

Flows in DFDs must be named. However, flows can inherit the names of the objects they are connected to. The table below shows the rules for inheritance of names. These rules are applied in the order shown, until nothing more can be inherited. In some situations, the flow's inherited name causes an error when a Check command is carried out. The result of the inheritance is confusing in the diagram.

Original Situation Situation After Inheritance Explanation

Diverging flows without names inherit the name of an incoming flow with a name. If the incoming flow has several names, each diverging flow inherits all of them.

Converging flows without names inherit the name of an outgoing flow with a name. If the outgoing flow has several names, each converging flow inherits all of them.

Flows connected to a data store, control store, message queue, message box, event queue, or event flag inherit the name of that node.

A forked (converging or diverging) data flow is either a split or merging data flow, or a composite data flow. A composite data flow has one name for each branch. A composite flow can split into the original flows again. A split or a merging data flow has only one name.

The name of the flow is taken as type name if no data type is specified.



Table of Contents Previous section Next section


Copyright © 2000, Telelogic AB. All rights reserved.