Data Flow Diagrams

Data Flow Diagrams:
more details
Source: Bertrand Portier, IBM,
http://www.ibm.com/developerworks/webservices/library/ws-soa-term2/
Recall: Specifications
What are specs?
Why are they important?
Today we look more carefully at:
Specs and UP
UP has requirements which includes specs
UP also handles specs by iterative feedback
Data Flow Diagrams
Used in “Structured Systems Analysis”
A way to specify
Remember the diagram-drawing exercise?
So UP doesn’t go all out to put all detailed specs on
a single paper document
Remember the diagram-drawing exercise
So why should we discuss specs at all?
‘cuz they’re important
But back to specs for a bit…
Brief Review:
Specs
An early phase of a typical waterfall model
De-stressed in UP
Things to recall about specs
Enterprise Unified Process and Agile Unified Process
They’re of the same genre)
Specs must be (per Schach)
RUP does have “supplementary specifications” artifact
For example let’s see a RUP diagram
(I also noticed EUP and AUP diagrams on Web
However they’re done
Whatever they’re called
Understandable by a client
Correct and detailed enough to lead to a correct
product
Remember the diagram-drawing exercise?
"The specification document is a contract
between client and developer"
- (Schach, 5th ed. section 11.1, 4th section 10.1)
Some things that can be in the specs (see next slide)
1
What’s in Specs?
"The specification document is a contract
between client and developer"
What is systems analysis?
- (Schach, 5th ed. section 11.1, 4th section 10.1)
Some things that can be in the specs (see next slide)
delivery deadline
reliability (e.g. frequency of crashes)
acceptance criteria
administrative specs
functional specs
More about specs
Clarity is important:
"All dogs must be kept on a leash in the park"
Some Definitions
Data Flow Diagrams
Used for specs but not using that term
Used for systems analysis
…which are similar to specifications
Since Data Flow discussions call it “systems
analysis,” let’s do that here too
An MIS term (MIS?)
"A process followed to determine what the system
does . . ." (Introduction to Systems Analysis and
Design, I. T. Hawryszkiewycz, Prentice Hall,
1994, p. 14.)
"Once systems analysis is completed, system
design commences." (Hawryszkiewycz)
Definitions vary from source to source
Definitions do vary from source to source
Corresponds roughly to specs
"Data flow diagrams (DFD) are widely used
by systems analysts to graphically illustrate
information systems." (C. Parker and T.
Case, Management Information Systems,
1993, p. 90.)
Another characterization
"Data flow diagrams (DFD) are widely
used by systems analysts to graphically
illustrate information systems."
- (C. Parker and T. Case, Management
Information Systems, 1993, p. 90.)
2
The Four Building Blocks
of a DFD
What are DFDs like?
DFD's are a "semi-formal" technique
Techniques may be
informal
semi-formal
formal
Data Source or Destination
informal - written documents
semi-formal - based on graphical languages
formal - math (e.g. Z)
What is UML?
(or "external entities" - Hawryskiewycz)
Data Flow
Data Transforming Process
Data Store
(part of the system, not an input or output)
What is a method? Hard drive? Flash drive?
Message? Web hyperlink?
Examples of the Four
Building Blocks
Systems Analysis Using Data
Flow Diagrams
Make bubbles showing
Make arrows showing data flows between
Let’s take a retail sales example
Data sources and destinations
data stores, sources, and destinations, and
transformers
They are outside the system
Ebay’s sellers’ inventory descriptions
Ebay’s customers
Anything else?
stores,
sources,
destinations, and
transformers
(See e.g. Schach, 5th ed. Figures 11.1, 11.2, 4th ed. 10.1 and 10.2)
(which are which?)
Examples of the Four
Building Blocks
… a retail sales example
Data flows
an order
a receipt
credit-worthiness of a customer
an order
a receipt
credit-worthiness of a customer
information about a product information about a product
3
Examples of the Four
Building Blocks
… a retail sales example
Data transformation processes
square root function
order processing software
anything else?
Please write down a
transformation or two for later
Examples of the Four
Building Blocks
Connecting the Building
Blocks Together
… a retail sales example
Data stores
What is the difference:
Data stores, vs. data sources and destinations?
Inventory database
File of customer credit ratings?
Customer addresses?
Customer credit card numbers?
Anything else?
Let’s look at the above things again, but
this time let’s draw symbols and label them
(with the things)
on the next slide
This is a basic Data Flow Diagram (DFD)
Structured Systems
Analysis Using DFD
(among stores, sources, destinations, and
transformers)
Now redo it, simplifying as needed so there
is just one transformer
Being semi-formal
(semi-formal: using a welldefined graphical language)
(See e.g. Schach, Fig. 11.2, or 10.2 in 4th ed.)
Make bubbles for data stores, sources, and
destinations, and transformers
Make arrows showing where data flows
Do-it-yourself...in 9 easy steps!
Step 1: Draw the basic DFD
. . . then, elaborate more and more until
"done"
. . . resulting in a much more elaborate DFD
(Later steps e.g. define the data structures to
use)
(So, systems analysis can include design)
4
Step 1 again: draw
the basic DFD
Do a DFD, using
Building from the top level DFD
(cont.)
– only one (1) transformation process
(Later, “elaborate” more and more until
"done"
e.g. redraw it with more transformers)
E.g. Schach Figs 11.3 & 11.4 (4th ed. 10.3 and 10.4)
Result is a more detailed DFD
Elaboration process is called leveling
Recall: Top level DFD has
One (1) data transformation process
(rounded rectangle)
Top level DFD is also called a context
diagram
One part may be replaced by a more
complex diagram
Number the new elements 4.1, 4.2, etc. if
you replaced 4
The DFD can get quite large
What then?
What Next?
Leveling: elaborate DFD until done
"Elaborate"
One part may be replaced by a more
complex diagram
- provide details about; make more complex
See Figure 11.3 (4th ed. 10.3)
- parts of Fig. 11.2 correspond to sections of Fig. 11.3
Thus, one part may be replaced by a more
complex diagram
But the process must eventually end
Why?
Building from the top level DFD
(cont.)
Building from the top level DFD
(& draw a new DFD diagram)
Number the new elements 4.1, 4.2, etc. if you replaced 4
The DFD can get quite large
(much bigger than one 8 1/2 x 11 sheet of paper)
Building from the top level DFD
(cont.)
The Top Level DFD - notes
One part may be replaced by a more complex diagram
Any part may be replaced (including data flows)
This process can continue e.g. Fig. 11.4 (10.4 4th ed.)
Number the elements in the base (“context”) diagram
Now, take the transformer and replace it with more stuff
But the process must eventually end
Why?
(otherwise the DFDs would get to the level of e.g.
adding numbers)
5
"Leveling" of DFDs II
Leveling: convert a DFD into a more detailed
DFD
How to Level
Expand by using DFD to explain details of one
block with more than one block
…includes replacing >1 block with more detailed
blocks
Start with the top level DFD
Describe a process in English
Use the parts of the description to identify parts of the expansion
You could try it on an example
Example: process is called "Process an Order"
Description:
"After getting the order from the customer, collect the payment and give a
receipt, and package the order"
Subprocesses might then be:
Get order from customer, Process payment, Produce receipt for customer,
Package product for customer
(we could try an example)
Make sure to number the parts
Leveling process 5.3 yields processes 5.3.1, 5.3.2, etc.
(You could try your own now…)
Has one data transformation process
Subsequent Steps in
Systems Analysis
"Leveling" of DFDs II
Start with the top level DFD
A primary leveling activity is to level a
process (rounded rectangle)
Has one data transformation process
#
That’s where the complexities tend to lie
Give the high level boxes a number N
Step 2: Determine what to computerize
Note that the DFD makes no assumptions
about computerization
Give its lower level constituent boxes numbers
N.x
(E.g. a data store could be on dvd or in a
pile of papers!)
Example?
#
Subsequent Steps in
Systems Analysis
The Lowest Level
How detailed does it have to get?
Point 1: The number scheme breaks down if
you get too detailed
Step 3: Describe the data that flows in detail
No need to write actual declarations though
Example?
(What use is section 10.3.2.6.1.7.5.3 ??!)
Point 2: Useless to model simple arithmetic
operations (add, multiply, etc.)
You could do it, but it would make the analysis
less understandable, not more
6
Subsequent Steps in
Systems Analysis
Step 4: Describe the processes
Give the control flow, for example
Use e.g. a decision tree, decision table, or
flow chart
Example?
(consider the need for conditionals, such as
for quantity discount)
(If in doubt on example, go with the decision
tree)
Subsequent Steps in
Systems Analysis
Step 7: Describe I/O
Input screens, printouts, etc.
Could try an example
Subsequent Steps in
Systems Analysis
Step 5: Describe the Data Stores
Note that the DFD makes no assumptions about
computerization!
(E.g. a data store could be on dvd or in a pile of
papers)
Give data declaration, box names on a paper form,
etc.
(it's pretty close to declarations in actual code but
not quite)
Could try an example
Subsequent Steps in
Systems Analysis
Subsequent Steps in
Systems Analysis
Step 6: Describe the "Physical Resources"
File names
What kind of storage medium (disk, tape
drive, paper...)
File format
Could try an example
Do it now for something in your diagram
Step 8: Describe quantities
Frequencies of reports
How often data is input, how much data
Could try an example or two
Subsequent Steps in
Systems Analysis
Step 9: Hardware Requirements
How big the hard disk must be
How powerful the computer
Could try an example
7
More Comments
Name one step that's more like design than
specs
(Possible Supplementary
Material)
DFD's -- for Specs and Design
Data Flow analysis deals with specs and design
For specifications: Use "logical DFDs"
For designs: Use "physical DFDs"
See Hawryszkiewycz Fig 7.8
Exercise:
For some of the DFD's we have seen/made:
are their logical components there?
are their physical components?
Note: the specifications phase should use
- logical DFDs, not physical DFDs
How could a tool help make DFDs?
8