The Data Flow Diagram
The Data Flow Diagram
1
The Data Flow Diagram
• A graphic tool used to portray the flow of
data through a system.
• For documenting the old system as well as
beginning to create the new one.
• Shows a highly useful partitioning of the
system into tasks (activities, functions) and
subtasks.
– Smaller problems are easier to handle.
– “Leveling” allows top down reasoning.
2
The Data Flow Diagram
• Looks at the system from point of view of a
single piece of data.
– Not reiterative -- no loops shown.
– As a result, we cannot program directly from a
DFD.
3
The Data Flow Diagram
• Four symbols:
– terminator
– data store
– process bubble
– data flow
4
Symbols
• Terminator
– Person or organization that lies
outside the system and that is a net EMPLOYEE
originator or receiver of data.
5
Symbols
– Source (originator of data) or sink (receiver
of data).
– Prime sources on the left side of the DFD,
prime sinks to right.
– Name inside box.
– Also called an external entity.
6
Symbols
EMPLOYEE
• Data store (file)
– Same as the data store in the data
dictionary.
– Could be a computer file, card file, file
cabinet, etc.
– Note that EMPLOYEES here is the data
store that contains the employee
information, while EMPLOYEE (the
terminator) is the actual person.
7
Symbols
1
PRODUCE-
EMPLOYEE-
• Process (bubble, transform) PAYCHECK
– An activity, task, function, etc.
– Shows work being done against the data.
• Transforms incoming data into outgoing data.
• Changes status (logical) or content, format, or
medium (physical)
8
Symbols
– Each bubble has a unique number and name.
• The name must be an active verb followed by
object clause:
» EDIT-CUSTOMER-PAYMENT
» WRITE-PAYMENT-REPORT
• If no active verb, it’s not a process!
9
Symbols
– Partitioning:
• Breaking into smaller bubbles.
• Hard to choose bubble boundaries.
• Black box--a process for which we know the net
inputs, net outputs, and general function, but we
don't know exactly how that function is
accomplished.
– Highly useful--can be fully exploited without knowledge
of what is inside the black box, since it behaves
predictably.
10
Symbols
DATA-FLOW-NAME
• Data flow
– The data interface between bubbles, terminators,
and data stores.
– Should be a packet of logically related data items.
• good--CUSTOMER-PAYMENT-TRANSACTION
• bad--MISCELLANEOUS-STUFF
– No excess data passed around.
• Tramp data is not acceptable.
• Data flows should be lean and mean.
11
Symbols
– Arrows show direction of data movement.
– Into and out of a data store...
EMPLOYEES
13
Context Level DFD
• Upper-most level, most abstract view of
system.
• The “outside” view of the system.
• Shows a single process bubble, the net
inputs and outputs of entire system, and the
terminators with which they communicate.
• Purpose is to delineate the domain (scope)
of the system.
14
Context Diagram
PAYROLL-AUDIT-TRAIL
EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION EMPLOYEE-PAY-RATE-
TRANSACTION
EMPLOYEE PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
15
15
Clearly labeled Context Diagram
“Context Diagram”
Terminator
Process bubble
PAYROLL-AUDIT-TRAIL
Terminator EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION EMPLOYEE-PAY-RATE-
EMPLOYEE-PAY-RATE
TRANSACTION
EMPLOYEE PAYROLL
Terminator
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
Data flows... PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
16
16
Context Level DFD
• We will go through each of the four
components (bubble, data flow, data store,
terminator) with each diagram.
17
Context Diagram
• Process bubbles
• Here, just one, which represents the
entire system.
• Numbered 0, or number is omitted.
PAYROLL-AUDIT-TRAIL
• Anything wrong here? EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION EMPLOYEE-PAY-RATE-
TRANSACTION
EMPLOYEE PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
18
18
• Terminators Context Diagram
• Remember, they are outside of our control.
• In this case, each terminator is both a source
and a sink.
• Prime sources on the left and prime sinks on
PAYROLL-AUDIT-TRAIL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
19
19
• Data stores Context Diagram
• Internal to our system, so none on
this level ever.
PAYROLL-AUDIT-TRAIL
EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION EMPLOYEE-PAY-RATE-
TRANSACTION
EMPLOYEE PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
20
20
• Data flows Context Diagram
• Long, descriptive, singular names.
• A "packet" of logically related
data.
PAYROLL-AUDIT-TRAIL
EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION EMPLOYEE-PAY-RATE-
TRANSACTION
EMPLOYEE PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
21
21
Context Diagram
• Anything wrong?
PAYROLL-AUDIT-TRAIL
EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION EMPLOYEE-PAY-RATE-
TRANSACTION
EMPLOYEE PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
22
22
Context Level DFD
• Duplicate data flow names acceptable if
two or more identical copies of the same
item going to two or more destinations.
– To show how the system relates to the world,
we must show each copy.
– On level below, treat as a single data flow.
• Whether one or multiple copies is irrelevant except
to outside world; we process the same regardless.
23
Leveling
• If a system is too large to be shown on a
single diagram, break into subsystems and
sub-subsystems.
• Called leveling or top-down partitioning.
• Each partitioning (breaking up) of a bubble
to a lower level is done to show more
detail.
– Called an explosion in engineering terminology.
24
Leveling
• Parent/child relationship
– A parent bubble can have a child diagram.
• How do we decide upon partitioning
boundaries?
– Use the same techniques as when partitioning
programs into subroutines.
25
Overview Diagram
• Child of the single bubble on the Context
Diagram.
• Shows major functions, major data stores
and major data flows.
26
Overview Diagram
PAYROLL-AUDIT-TRAIL
EMPLOYEE-HOURS-WORKED-TRANSACTION
1
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
EMPLOYEES
EMPLOYEE-MAINTENANCE-TRANSACTION
2
EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
MAINTAIN-
EMPLOYEE-PAY-RATE-TRANSACTION EMPLOYEE-
RECORD
27
27
Overview Diagram
PAYROLL-AUDIT-TRAIL
EMPLOYEE-HOURS-WORKED-TRANSACTION
1
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
• Process bubbles
• Here, two major
EMPLOYEES
functions (bubbles).
• May have up to seven
bubbles on a diagram.
• What about 1 bubble?
EMPLOYEE-MAINTENANCE-TRANSACTION
• Numbered 1, 2, 3, etc.
2
MAINTAIN-
• EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
Names have an active
EMPLOYEE-PAY-RATE-TRANSACTION EMPLOYEE-
RECORD
verb & object clause.
• Avoid vague verbs like
PROCESS. 28
28
Overview Diagram
• Partition the Overview Diagram based on:
– Different major functions.
• Don’t put trivial functions (like EDIT, FORMAT,
WRITE, etc.) on Overview.
– Different major inputs.
– Different time frames.
– Different equipment.
PAYROLL-AUDIT-TRAIL
EMPLOYEE-HOURS-WORKED-TRANSACTION
1
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
EMPLOYEES
• Terminators
• Shown only on
Context, so not here.
EMPLOYEE-MAINTENANCE-TRANSACTION
2
EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
MAINTAIN-
EMPLOYEE-PAY-RATE-TRANSACTION EMPLOYEE-
RECORD
30
30
Overview Diagram
PAYROLL-AUDIT-TRAIL
EMPLOYEE-HOURS-WORKED-TRANSACTION
1
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
Read
EMPLOYEES
• Data flows
• Unique, descriptive
Write names, generally long.
EMPLOYEE-MAINTENANCE-TRANSACTION
• No reiteration, flags,
2
MAINTAIN-
or decisions.
EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
EMPLOYEE-PAY-RATE-TRANSACTION EMPLOYEE-
RECORD
• Show direction of data
flow into/out of data
stores. 31
31
Overview Diagram
• No labels on data flows into and out of
data stores when using the entire record.
– Always need to use the entire record on a
write, so writes are never labeled.
– On reads, if using just one or two fields, then
label as such.
32
Overview Diagram
• Placement of data flows
– Try to move left to right, top to bottom if
possible.
– Inputs and outputs to edge of page.
– Avoid line crossings by rearranging.
• Stop Here
33