Data Flow Diagrams
A structured analysis technique that employs a set of visual representations of the data that moves through the organization, the paths through which the data moves, and the processes that produce, use, and transform data.
Why Data Flow Diagrams?
• • • • • Can diagram the organization or the system Can diagram the current or proposed situation Can facilitate analysis or design Provides a good bridge from analysis to design Facilitates communication with the user at all stages
2
Types of DFDs
• Current - how data flows now • Proposed - how we’d like it to flow
Levels of Detail
• Context level diagram - shows just the inputs and outputs of the system • Level 0 diagram - decomposes the process into the major subprocesses and identifies what data flows between them • Child diagrams - increasing levels of detail • Primitive diagrams - lowest level of decomposition
Recommended Progression
• Write your Narrative of Existing System/Process Description • Identify important elements • Create Level 0 Diagram (Existing) • Create Context Level Diagram (Existing) • Create Level 0 Diagram (Proposed) • Create Context Level Diagram (Proposed)
Four Basic Symbols
Source/ Sink
Data Flow
#
# Data Store Process
Context Level Diagram
• Just one process • All sources and sinks that provide data to or receive data from the process • Major data flows between the process and all sources/sinks • No data stores
Running Example
Course Registration: Context level Diagram
Class roster
Class Request 0 Course Registration System Enrollment Statistics
Professor
Student
Payment Receipt
Student Schedule
Registrar
Level 0 Diagram
• Process is “exploded” • Sources, sinks, and data flows repeated from context diagram • Process broken down into subprocesses, numbered sequentially • Lower-level data flows and data stores added
Running Example
Course Registration: Current Level 0 Diagram
Class Request
Student
Payment Receipt
1.0
2.0
D1 Student Class Records Student and Course Data
Register Student for Course
Collect Student Fee Student Class Record Payment
Payment Information D2 Student Payments Student Class Record
Student Class Record
Student Class Record
3.0 Produce Student Schedule
Student Schedule
4.0 Produce Class Roster
Class Roster
5.0 Produce Enrollment Report
Enrollment Statistics
Student
Professor
Registrar
Child Diagrams
• “Explode” one process in level 0 diagram • Break down into lower-level processes, using numbering scheme • Must include all data flow into and out of “parent” process in level 0 diagram • Don’t include sources and sinks • May add lower-level data flows and data stores
Running Example
Course Registration: Current Child Diagram
D3
Semester Schedule
Available Seats
Available Seats
1.1
Class Request
1.2
Valid Class Request Feasible Class Check Request for Availability
1.3 Enroll Student in Class
Student and Course Data
Check Prerequisites Met
Student Record
Course Record
D4
Student Transcripts
D5
Course Catalogue
D1 Student Class Records
Another Example
Perfect Pizza: Context Level Diagram
Weekly Report
Phone Number Customer Order 0 Customer Order System
Management
Customer
Customer Info
Order Information
Delivery Person
Delivery Information
Cook
Another Example
Perfect Pizza: Current Level 0 Diagram
Customer Order
Customer
Phone Number 1.0 Find Customer Record Customer Information 2.0 Take Customer Order
Order Information
Cook
Order Information
3.0 Print Delivery Order Sales Information D3 Sales Records
Delivery Information
Delivery Person
Customer Customer Record Info D1 Customer Master Customer Record 5.0 Add Customer Record
Customer History D2 Customer History
Sales Information details
7.0 Print Weekly Totals
Weekly Report
Management
Data Flow Diagramming Rules
• Processes
– a process must have at least one input – a process must have at least one output – a process name (except for the context level process) should be a verb phrase
• usually three words: verb, modifier, noun • on a physical DFD, could be a complete sentence
1.0
2.0
Gather Data
Demographic Data
Compile Statistics
3.0
Survey Responses
Analyze Responses
Final Report
2.0
Visa Authorization
2.0
BETTER
Check Customer Credit
2.0
2.0
Total Records
BETTER
Compute Total Sales
2.0
2.0
QA Process
BETTER
Inspect Finished Products
Data Flow Diagramming Rules
• Data stores and sources/sinks
– no data flows between two data stores; must be a process in between – no data flows between a data store and a source or sink; must be a process in between – no data flows between two sources/sinks
• such a data flow is not of interest, or • there is a process that moves that data
2.1 Customer Information Store Customer Data Customer Data Customer Information
2.1 Store Customer Data
Customer Data
Customer Preferences
D1 Customer Data
D1 Customer Data
Customer Preferences
D2 Customer Preferences
D2 Customer Preferences
2.1 Customer Information Store Customer Data Customer Data Customer Information Customer Data D1 Customer Data D1 Customer Data Customer Data
2.1 Store Customer Data
2.2 Extract Customer Preferences
Customer Preferences
Customer Preferences
D2 Customer Preferences
D2 Customer Preferences
Customer Customer Information 2.0 Customer Data Store Customer Data Customer Data D1 Customer Data
Customer
D1 Customer Data
Doctor
Service Information
0
Diagnosis Medical Billing System
Patient
Bill
Data Flow Diagramming Rules
• Data flows
– data flows are unidirectional – a data flow may fork, delivering exactly the same data to two different destinations – two data flows may join to form one only if the original two are exactly the same – no recursive data flows – data flows (and data stores and sources/sinks) are labelled with noun phrases
1.0 Take Customer Order
1.0 Take Customer Order
Customer Order
Order Total 2.0 Total Daily Sales Order Information Order Total 2.0 Total Daily Sales Order Information
3.0
Print Delivery Instructions
3.0
Print Delivery Instructions
1.0 Take Customer Order
2.0 Lookup Customer Record
1.0 Take Customer Order
2.0 Lookup Customer Record
Customer Order
Customer Address
Customer Information 3.0
Customer Order
Customer Address
3.0 Print Delivery Instructions
Print Delivery Instructions
1.0 Daily Sales
Calculate Weekly Sales
Cumulative To-Date Sales
Data Flow Diagramming Guidelines
• The inputs to a process are different from the outputs • Every object in a DFD has a unique name
1.0 Customer Data Validate Customer Data Customer Data
1.0 Customer Data Validate Customer Data Valid Customer Data
1.0 Get Customer Data Customer Data
2.0 Take Customer Order
Order Customer Data
3.0 Process Customer Order
1.0 Get Customer Data Customer Data
2.0 Take Customer Order Order
3.0 Process Customer Order
2.0
Customer Data
1.0
Take Customer Order
Get Customer Data
Customer Data
3.0 Validate Customer Data
Only if these are exactly the same
Data Flow Diagramming Guidelines
• A data flow at one level may be decomposed at a lower level • All data coming into and out of a process must be accounted for • On low-level DFDs, new data flows can be added to represent exceptional situations
Sales Information
1.0 Generate Report
Sales Report
Inventory Information
Inventroy Report
1.1 Sales Information Print Sales Report Sales Report
1.2 Inventory Information
Inventory Print Inventory Report Report
Data Elements
• Indivisible pieces of data • Data flows and data stores are made up of data elements • Like attributes on an ER diagram • The data elements of a data flow flowing in or out of a data store must be a subset of the data elements in that data store
Employee Hours Worked
D1 Employee Master
Employee Record
Employee Time Record 1.0 Calculate Gross Pay Gross Pay 2.0 Calculate Withholding Amount Withholding
D2 Employee Time File
D1 Employee Master Check Reconciliation Record D3 Check Reconciliation
Employee Record
4.0 Print Employee Paycheck
Net Pay
3.0 Calculate Net Pay
Employee Paycheck Employee
Employee Hours Worked 5.0 Create Time Record Employee Time Record D2 Employee Time File D1 Employee Master 6.0 Reconcile Pay Check
D4 Withholding Tables Number of D1 Employee Master Dependents Withholding Rates Employee Record 1.0 Calculate Gross Pay Gross Pay Gross Pay Gross Pay 2.0 Calculate Withholding Amount Withholding Amount
Employee Time Record
Employee Record Paycheck Information
4.0 Print Employee Paycheck
Net Pay
3.0 Calculate Net Pay
Withholding Amount
Check Reconciliation Record D3 Check Reconciliation
Employee Paycheck Employee
DFDs and ERDs
• DFDs and ERDs are both used to model systems, but they show two very different perspectives on the system • A DFD shows what the system does as well as the data that the system manipulates • An ERD shows only the data that the system manipulates.
DFDs and ERDs (cont.)
• Entities on an ERD often (but not always) correspond to data stores on a DFD • Attributes on an ERD usually correspond to data elements (listed in the data dictionary) that make up the data store and data flows on a DFD • Relationships on an ERD do not correspond to processes on a DFD. • Sources and sinks on a DFD usually do not show up as entities on an ERD
Example DFD and ERD
OrderId
Customer
Order
Time Date
DFD
1.0 Take Order
Contains
ItemQuantity
Includes
Ingredient
2.0 Convert Order to Cooking Instructions Cooking Instructions D1 Order Log Cook Processed Order
3.0 Convert Order to Ingredient List
Item
Ingredient Quantity
Description
Requires ItemId ItemName Index
Cooking Instructions
Ingredients
StepId
Description
Inventory Processing
Correct ERD
Create an ERD and Map the ERD into Relation Perfect Pizza: Current Level 0 Diagram
Customer Order
Customer
Phone Number 1.0 Find Customer Record Customer Information 2.0 Take Customer Order
Order Information
Cook
Order Information
3.0 Print Delivery Order Sales Information D3 Sales Records
Delivery Information
Delivery Person
Customer Customer Record Info D1 Customer Master Customer Record 5.0 Add Customer Record
Customer History D2 Customer History
Sales Information details
7.0 Print Weekly Totals
Weekly Report
Management
Employee Hours Worked 5.0 Create Time Record Employee Time Record D2 Employee Time File D1 Employee Master 6.0 Reconcile Pay Check
Create an ERD and Map the ERD into Relation Payroll Management System: Current Level 0 Diagram
D4 Withholding Tables Number of D1 Employee Master Dependents Withholding Rates Employee Record 1.0 Calculate Gross Pay Gross Pay Gross Pay Gross Pay 2.0 Calculate Withholding Amount Withholding Amount
Employee Time Record
Employee Record Paycheck Information
4.0 Print Employee Paycheck
Net Pay
3.0 Calculate Net Pay
Withholding Amount
Check Reconciliation Record D3 Check Reconciliation
Employee Paycheck Employee
Create an ERD and Map the ERD into Relations Course Registration: Current Level 0 Diagram
Class Request
Student
Payment Receipt
1.0
2.0
D1 Student Class Records Student and Course Data
Register Student for Course
Collect Student Fee Student Class Record Payment
Payment Information D2 Student Payments Student Class Record
Student Class Record
Student Class Record
3.0 Produce Student Schedule
Student Schedule
4.0 Produce Class Roster
Class Roster
5.0 Produce Enrollment Report
Enrollment Statistics
Student
Professor
Registrar
Course Registration: Current Child Diagram of Process 1.0
D3
Semester Schedule
Available Seats
Available Seats
1.1
Class Request
1.2
Valid Class Request Feasible Class Check Request for Availability
1.3 Enroll Student in Class
Student and Course Data