You are on page 1of 3

Rules of Data Flow Diagramming

Incorrect Correct
Process
A No process can have only outputs. It is
DataFlow1 DataFlow3 DataFlow1
making data from nothing. Process1 Process1
If an object has only outputs (miracle), then it
must be a source.
DataFlow2 DataFlow2

B No process can have only inputs (a black


DataFlow3 DataFlow3 DataFlow1
hole). Process1 Process1
If an object has only inputs, then it must be a
sink.
DataFlow2 DataFlow2

C A process has a verb phrase label. Read HW


Inventory

Inputs to a process are different from the


Discrepancy
outputs Hardware record Format Data Hardware record Hardware record Format Data Hardware entry

Data Store
D Data cannot move directly from one data DataStore1 DataStore1
source to another data store. Data must be
moved by a process.
DataFlow1

DataFlow1 DataStore2 Process1 DataFlow2 DataStore2

E Data cannot move directly from an outside


source to a data store. Data must be moved Interface1 Interface1
by a process that receives data from the
source and places the data into the data
store. DataFlow1

DataFlow1 DataStore2
Process1 DataFlow2 DataStore2

F Data cannot move directly to an outside sink DataStore2 DataStore2


from a data store. Data must be moved by a
process.
DataFlow1

DataFlow1 Interface1 Interface1


Process1 DataFlow2

G A data store has a noun phrase label. Hardware


Inventory

Source/Sink
H Data cannot move directly from a source to a
sink. They must be moved by a process if the Interface1 Interface1

data are of any concern to our system.


Otherwise, the data flow is not shown on the
DFD. DataFlow1

DataFlow1 Interface2
Process1 DataFlow2 Interface2

I A source/ sink has a noun phrase label


Technology
Administrator

Data Flow
J A data flow has only one direction of flow Process2 DataFlow3 Process2 DataFlow3
between symbols. It may flow in both
directions between a process and a data
store to show a read before an update.
DataStore1 DataFlow4 DataStore1
The latter is usually indicated, however, by
two separate arrows because these
happen at different times.
K A fork in a data flow means that exactly (we do not have fork in visio) (we do not have fork in visio)
the same data go from a common location
to two or more different processes, data
stores, or sources/ sinks (this usually
indicates different copies of the same data
going to different locations). Process3 Data A Process4 Process3 Data A Process4

Data B Data A

Process5 Process5

Fork has different data (wrong) Fork has same data (correct)
L A join in a data flow means that exactly (we do not have join in visio) (we do not have join in visio)
the same data come from any of two or
more different process, data stores, or
sources/ sinks to a common location. Process3 Data A
Process4 Process3 Data A
Process4

A
B

ta
ta
Da

Da
Process5 Process5

Join is having different data goes Join should have same data goes

together (wrong) together (correct)


M A data flow cannot go directly back to the DataFlow5
Process7 Data C Process8
same process it leaves. There must be at
least one other process that handles the
Process6
data flow, produces some other data flow, Data C
Data D
and returns the original data flow to the
beginning process. Data E Process9 Data C

Data C from P7 -> P8 -> P9 ->

P7.
N A data flow to a data store means update Update HW
(delete or change) Inventory

Hardware
Hardware Record
Inventory

O A data flow from a data store means Read HW


Hardware Record
retrieve or use. Inventory

Hardware
Inventory

P A data flow has a noun phrase label. More Hardware Record


User Record
than one data flow noun phrase can Account Balance
appear on a single arrow as long as all of Exception Flag
the flows on the same arrow move
together as one package.
General
Q A composite data flow on one level can be Level-0 Level-1
split into component data flows at the
next level, but no new data can be added
and all data in the composite must be 1.0
Hardware User Data
accounted for in one or more subflows. Fetch
Data
Inventory Hardware Data
1.0 User Data
Fetch
Inventory
2.3
Inventory Data 2.0 Inventory Info Update User
Update Data
Inventory
Inventory Data
2.1
Parse Hardware
User Data Inventory Data
User Data
Data

Hardware Data

2.2
Update
Inventory Invo
Hardware
Data
R The input to a process must be sufficient Hardware record Inventory data

to produce the outputs (including data


placed in data stores) from the process. Update Update
Thus, all outputs can be produced, all all Inventory Inventory

data in inputs move, somewhere either to


another process or to a data store outside User record User record
the process or on a more detailed DFD
showing a decomposition of that process.
Hardware record does not Part of the Inventory data is user

contains anything about User information. In turns, the process

record can get the user record from its

data store.
S At the lowest level of DFDs, new data
flows may be added to represent data that
are transmitted under exceptional
conditions; these data flows typically
represent error messages (e.g.,
“Customer not known; do you want to
create a new customers?”) or confirmation
notices (e.g., “Do you want to delete this
record?”)
T To avoid having data flow lines cross each Update
DataFlow13
User record User record DataFlow9
Hardware
record
Inventory
other, you may repeat data store or DataFlow13

sources/ sinks on a DFD. Use an additional DataFlow8


symbol, like a double line or the middle Interface4
DataFlow11
DataFlow7 Hardware
Update
Inventory DataFlow12

vertical line of a data store symbol, or a DataFlow9 record


DataFlow12
DataFlow10

diagonal line in a corner of a sink/ source DataFlow8

square, to indicate a repeated symbol. Generate Exception Interface4 DataFlow7


Report record

Generate Exception
DataFlow10 Report record

Hardware
User record DataFlow11
record

Objects on a DFD have unique names;


otherwise they represent the same
objects.

Reference
Valacich, J., George, J., Hoffer, J. (2004). Chapter 5, Structuring System Requirements: Process
Modeling, Essentials of Systems Analysis and Design. New Jersey: Prentice Hall.

You might also like