Data flow diagram
(DFD) is a picture of the movement of data between external entities and the processes and data stores within a system
DFDs are an excellent illustration of modeling as the bridge between specification and implementation.
Shipping
Confirmation
Order In-Stock Request
CUSTOMER WAREHOUSE
Status
Message
1.0
2.0
Status Data
D1
Check
Status
Order
Data
Pending
Orders
3.0
Shipping
Order
Issue
Status
Messages
Order Data
Payment
4.0
Invoice
Order Data
Accounting Data
Manage
Accounts
Receivable
Accounts Receivable Data
D2
Accounts
Receivable
5.0
Generate
Shipping
Produce
Reports
Order
Inventory
Reports
ACCOUNTING
Process
Data Flow
Data Store
Source/Sink (External Entity)
1.0
Grade Report
Grade Detail
Produce
Grade
Report
Work or actions performed on data (inside the system)
Labels should be verb phrases
Receives input data and produces output
Can have more than one outgoing data flow or more than one incoming data flow
Submitted Work
1.0
Grade
Student
Work
Graded Work
Student Grade
Hours Worked
Pay Rate
3.0
Calculated
Gross
Pay
Gross Pay
Can connect to any other symbol (including another process symbol)
Order
1.0
Verify
Order
Accepted Order
2.0
Assemble
Order
Inventory
Change
5.0
Services Perfomed
Invoice
Create
Invoice
Policy Number
Payment Amount
Apply
Insurance
Premium
Hours Worked
2.1
Calculate
Gross
Pay
Pay Rate
Deposit
Is a path for data to move from one part of the
IS to another
Arrows depicting movement of data
Can represent flow between process and data store by two separate arrows
2.1
Post
Payment
Payment Detail
Invoice Detail
D1
Accounts
Receivable
5.0
Post
Payment
Courses Customer
Payment
Class
List
D2 Daily Payments
Students
Daily
Payment
6.0
Prepare
Deposit
D1
Students
Is used in a DFD to represent data that the system stores
Labels should be noun phrases
Must have at least one incoming and one outgoing data flow
Customer Payment
D1
Daily
Payments
Daily Payment
1.0
Order
CUSTOMER
Invoice Verify
Order
External entity that is origin or destination of data
(outside the system)
Is the singular form of a department, outside organization, other IS, or person
Labels should be noun phrases
Source – Entity that supplies data to the system
Sink – Entity that receives data from the system
Must be connected to a process by a data flow
BANK
Bank
Deposit
2.0
Prepare
Deposit
CUSTOMER CUSTOMER
PAYROLL
DEPARTMENT
Paycheck
Payment
EMPLOYEE
Payment
3.0
Apply
Payment
Accounts
Receivable
YES NO Data Flow That Connects
A process to another process
A process to an external entity
A process to a data store
An external entity to another external entity
An external entity to a data store
A data store to another data store
List the errors of this DFD
E1
DF5
DF2
DF1
E1
DS1
DF6
DF4
DF2
1.0
P2
DF3
2.0
P1
Level Of Details
Top-level view of IS
Shows the system boundaries, external entities that interact with the system, and major information flows between entities and the system.
Example: Order system that a company uses to enter orders and apply payments against a customer’s balance
Payment
Order
Context Diagram of Order System
CUSTOMER
Invoice
Order
Reject
Notice
Picking
List
0
Order
System
Completed
Order
WAREHOUSE
Commission
Bank
Deposit
Cash
Receipts
Entry
SALES
REP
ACCOUNTING
BANK
Hoosier Burger’s automated food
ordering system
Context Diagram (Figure 8-4) contains no data stores
Next step is to expand the context
diagram to show the breakdown of
processes (Figure 8-5)
Shows the system’s major processes, data flows, and data stores at a high level of abstraction
When the Context Diagram is expanded into DFD level-0, all the connections that flow into and out of process 0 needs to be retained.
Figure 8-5
Level-0 DFD of Hoosier Burger ’ s food ordering system
Payment
Order
Context Diagram of Order System
CUSTOMER
Invoice
Order
Reject
Notice
Picking
List
Order system that a company uses to enter orders and apply payments against a customer’s balance
Commission
0
Order
System
Bank
Deposit
Completed
Order
WAREHOUSE
Cash
Receipts
Entry
SALES
REP
ACCOUNTING
BANK
Order Picking List
Order system that a company uses to enter orders and apply payments against a customer’ s balance
Level-0 DFD of
Order System
CUSTOMER WAREHOUSE
1.0
Fill
Order
Order
Reject
Notice
Invoice
Payment
D1
Invoice
Accounts
Receivable
Payment
Detail
Invoice
Detail
2.0
Create
Invoice
3.0
Apply
Payment
Bank Deposit
SALES
REP
Commission
BANK
Completed
Order
Cash Receipts Entry
ACCOUNTING
Functional Decomposition
An iterative process of breaking a system description down into finer and finer detail
Uses a series of increasingly detailed DFDs to describe an IS
Balancing
The conservation of inputs and outputs to a data flow process when that process is decomposed to a lower level
Ensures that the input and output data flows of the parent DFD are maintained on the child DFD
Top-down strategy
Create the high-level diagrams (Context
Diagram), then low-level diagrams (Level-0 diagram), and so on
Bottom-up strategy
Create the low-level diagrams, then higherlevel diagrams
The following conditions are errors that occur when drawing a data flow diagram:
A process with only input data flow or only output data flow from it.
1
Add
New
Customer
2
Add
New
Customer
Data stores or external entities are connected directly to each other, in any combination.
Customer D1 Customer
D2 Vendor Master Vendor
Incorrectly labeling data flow or objects
Examples are:
Labels omitted from data flow or objects.
Data flow labeled with a verb.
Processes labeled with a noun.
Too many processes on a data flow diagram.
Nine is the suggested maximum.
Omitting data flow from the diagram
Unbalanced decomposition between a parent process and a child diagram
The data flow in and out of a parent process must be present on the child diagram.
There are two types of DFDs
Physical and Logical DFDs
In the early stages you'll build a current physical DFD. On these you'll be recording, warts and all, the ways things are presently
(often known as the "As-is").
It will have all sorts of un-logical things to show and will reflect how things are done currently. There will likely be processes that exist purely because things are done manually. Data stores (such as stick pins or copy orders file etc.) will exists because of how things are presently done.
shown as External Entities.
Clerical and temporary data stores will likely feature heavily
What you document on the DFD won't seem to be very logical
(I've even found processes that aren't actually needed, but still are done because no one told the staff they were no longer needed!).
Dataflow names will likely correspond to document names
There are sure to be process to process flows
Data flows between external entities will possibly feature
Logical data flow diagrams show how the business operates.
They have processes that would exist regardless of the type of system implemented.
In the current logical DFD variant, you start with the current physical and remove all aspects that are to do with "how" things are done presently you need to be showing only the "what" aspects.
The progression of creating data flow diagrams is:
Create current physical DFD
Create a logical DFD of the current system.
Next add all the data and processes not in the current system that must be present in the new system.
Finally derive the physical data flow diagram for the new system.
Advantages of logical DFDs are:
Better communication with users.
More stable systems, since the design is based on a business framework.
Increased understanding of the business by analysts.
The system will have increased flexibility and be easier to maintain.
Elimination of redundancy.
Physical data flow diagrams show how the system operates or how the new system will be implemented.
Physical data flow diagrams include:
Clarifying which processes are manual and which are automated.
Describing processes in greater detail.
Sequencing processes in the order they must be executed.
Physical data flow diagrams include
(continued):
Temporary data stores and transaction files.
Specifying actual document and file names.
Controls to ensure accuracy and completeness.
Advantages
Clarifying which processes are manual and which are automated
Describing processes in more detail than logical
DFDs
Sequencing processes that have to be done in a particular order
Identifying temporary data stores
WHAT the system does - Current
Physical DFD
HOW it does it - Current Logical DFD
WHAT it should do - Required Logical
DFD
HOW it should do it - Required Physical
DFD
Completeness
DFD must include all components necessary for system Each component must be fully described in the project dictionary or CASE repository.
Consistency
The extent to which information contained on one level of a set of nested DFDs is also included on other levels
Exercise:
Precision Tools sells a line of high-quality woodworking tools. When customers place orders on the company’s Web site, the system checks to see if the items are in stock, issues a status message to the customer, and generates a shipping order to the warehouse, which fills the order.
When the order is shipped, the customer is billed. The system also produces various reports.
Draw a context diagram for the order system
Draw DFD diagram 0 for the order system
Context
Diagram of
Order
System
CUSTOMER
Order
Payment
Status
Message
Invoice
In-Stock
Request
WAREHOUSE
0
Order
System
Inventory
Reports
Shipping
Order
Shipping Confirmation
ACCOUNTING
Entities
Customer
Warehouse
Accounting
Processes
1.0 Check Status
2.0 Issue Status Messages
3.0 Generate Shipping Order
4.0 Manage Accounts
Receivable
5.0 Produce Reports
Data Stores
D1 Pending Orders
D2 Accounts Receivable
Data Flows
Order
In-Stock Request
Order Data
Status Data
Status Message
Shipping Order
Order Data
Invoice
1.0
2.0
3.0
Shipping Confirmation
Payment
Accounting Data
Accounts Receivable Data
Order Data
4.0
5.0
Inventory Reports
Level-0 of
Order
System
Shipping
Confirmation
Order In-Stock Request
CUSTOMER WAREHOUSE
Status
Message
1.0
2.0
Status Data
D1
Check
Status
Order
Data
Pending
Orders
Issue
Status
Messages
Order Data
Payment
4.0
Order Data
Invoice
Accounting Data
Manage
Accounts
Receivable
Accounts Receivable Data
D2
Accounts
Receivable
5.0
Produce
Reports
3.0
Shipping
Order
Generate
Shipping
Order
Inventory
Reports
ACCOUNTING