Rules of Data Flow Diagramming

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

Incorrect
DataFlow1

Correct
DataFlow3

Process1

Process1

DataFlow1

DataFlow2

DataFlow2

B

No process can have only inputs (a black hole). If an object has only inputs, then it must be a sink.

DataFlow3

Process1

DataFlow3

Process1

DataFlow1

DataFlow2

DataFlow2

C

A process has a verb phrase label. Inputs to a process are different from the outputs

Read HW Inventory
Discrepancy Hardware entry

Hardware record

Format Data

Hardware record

Hardware record

Format Data

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

DataStore1

DataStore1

DataFlow1

DataFlow1

DataStore2

Process1

DataFlow2

DataStore2

E

Data cannot move directly from an outside source to a data store. Data must be moved by a process that receives data from the source and places the data into the data store.

Interface1

Interface1

DataFlow1

DataFlow1

DataStore2

Process1

DataFlow2

DataStore2

F

Data cannot move directly to an outside sink from a data store. Data must be moved by a process.

DataStore2

DataStore2

DataFlow1

DataFlow1

Interface1

Process1

DataFlow2

Interface1

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 data are of any concern to our system. Otherwise, the data flow is not shown on the DFD.

Interface1

Interface1

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 between symbols. It may flow in both directions between a process and a data store to show a read before an update. 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 the same data go from a common location

Process2

DataFlow3

Process2

DataFlow3

DataStore1

DataFlow4

DataStore1

(we do not have fork in visio)

(we do not have fork in visio)

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 Data B

Process4

Process3

Data A Data A

Process4

Process5

Process5

L

A join in a data flow means that exactly the same data come from any of two or more different process, data stores, or sources/ sinks to a common location.

Fork has different data (wrong) (we do not have join in visio)

Fork has same data (correct) (we do not have join in visio)

Process3
B

Data A

Process4

Process3
A

Data A

Process4

Process5

Process5

Join is having different data goes together (wrong) M A data flow cannot go directly back to the same process it leaves. There must be at least one other process that handles the data flow, produces some other data flow, and returns the original data flow to the beginning process.
DataFlow5

Join should have same data goes together (correct)
Process7
Data C

Da ta

Da ta

Process8

Process6

Data C Data D Data E

Process9

Data C

Data C from P7 -> P8 -> P9 -> P7. N A data flow to a data store means update (delete or change)
Update HW Inventory

Hardware Record

Hardware Inventory

O

A data flow from a data store means retrieve or use.

Read HW Inventory

Hardware Record

Hardware Inventory

P

A data flow has a noun phrase label. More than one data flow noun phrase can appear on a single arrow as long as all of the flows on the same arrow move together as one package.

Hardware Record User Record Account Balance Exception Flag

General Q A composite data flow on one level can be split into component data flows at the next level, but no new data can be added and all data in the composite must be accounted for in one or more subflows.

Level-0

Level-1

1.0 Fetch Inventory

Hardware Data

Hardware Data
1.0 Fetch Inventory
Inventory Info

User Data
User Data

Inventory Data

2.0 Update Inventory
Inventory Data

2.3 Update User Data

User Data

User Data

2.1 Parse Inventory Data

Hardware Data
Hardware Data

Inventory Invo

R

The input to a process must be sufficient to produce the outputs (including data placed in data stores) from the process. Thus, all outputs can be produced, all all data in inputs move, somewhere either to another process or to a data store outside the process or on a more detailed DFD showing a decomposition of that process.

2.2 Update Hardware Data

Hardware record

Inventory data

Update Inventory

Update Inventory

User record

User record

Hardware record does not contains anything about User record 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?”) To avoid having data flow lines cross each other, you may repeat data store or sources/ sinks on a DFD. Use an additional symbol, like a double line or the middle vertical line of a data store symbol, or a diagonal line in a corner of a sink/ source square, to indicate a repeated symbol.

Part of the Inventory data is user information. In turns, the process can get the user record from its data store.

T

Update Inventory

DataFlow13

User record

User record

DataFlow9 DataFlow13

Hardware record

DataFlow8

Interface4

DataFlow11 DataFlow7 DataFlow9 DataFlow12

Hardware record
DataFlow10

Update Inventory

DataFlow12

DataFlow8

Generate Report

Exception record

Interface4

DataFlow7

DataFlow10

Generate Report

Exception record

User record

DataFlow11

Hardware 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.