Professional Documents
Culture Documents
Structured Analysis
• Introduced by DeMarco (1978)
• Derived from the ideas of structured
programming
• Tools
– Data flow diagrams
– Data dictionaries
– Structured English
Data Flow Diagrams
• A graphical technique to understand the data
flow, data transformation and data stores in an
information system
or
A Data Store
A Data Flow or
A Process or Data
Transformation
An External Entity
DFD for a Customer Order Receipt
Customer
Order File
Verified Order
Customer Order
Customer Clerk
Verifies
Acknowledgement
Order
Hierarchical Organization of DFD
• Context Level Diagram
– Identifies external entities, major data flow across the
boundary separating system from external entities,
and thus defines the context in which the system
operates.
– Normally has only one process bearing the name of
the task done by the system.
• Overview Diagram (Level-Zero/ Zero-Level
Diagram)
– Explosion of the context level DFD
– Gives overview of the major functions of the system
– Shows major data stores used in the system
• Exploded Bottom-Level Diagram
– Depending on the need a higher level DFD can
explode to many lower level one.
Area of
Investigation
Accounts
payable
Vendor
Invoice
Mailing Address
Accounts
Vendor
Payable
Check
Vendor Data
Overview Diagram
(Zero-Level DFD)
Purchase Vendor Accounts
Orders accounts Payable Vendor Data
Purchase Mailing
Account Payable Address
Orders Details Balance Balance
Checking
Accounts
Process Hierarchy Chart
A/Cs
Payable
Payment
vouchers
Payable
Invoices
Logical Association Among
Data Flows
• Multiple data inflows or outflows to or from
a process may have some logical
operational association among them
• Symbols used for this are
–* AND Connection
–° Inclusive OR
–⊕ Exclusive OR
Tra
nsa
Rec ction
ord
* Update
ec ord Master
te rR
Mas
as te r
Master File M
dated rd
Up Reco
ac tion
Tr ans
d
Vali
Transaction
Check ⊕
for
error Inva
lid Tran
sact
ion
e
s pons
Re
ine
Onl
°
Process
Inquiry
Inquiry
Prin
ted R
espo
nce
General Guidelines for drawing
DFDs
• Identify all inputs and outputs
• Work your way from inputs to outputs
• Label all the data flows carefully and descriptively
• Label all transforms (processes) by means of a specific transitive
verb of non-plural object.
• Classify the association of data streams to a transform in detailed
DFDs by indicating the appropriate logical connection.
• Ignore initialization and termination
• Omit the details of the error paths in the generalized levels of
DFD
• Do not show control logic such as control loop and associated
decision making.
• Do not show the flows of copies of document to various
departments
• Use levels of DFD if required
Guideline for creating
Multilevel DFDs
• Number each process within the overview DFD.
• Identify if any process requires more detailed breakdown
of function.
• Draw lower level DFD, number it.
• Make sure inputs and outputs are matched between
parent and associated child diagrams, except for the
error path that may be present in child but absent in
parent diagram
• Repeat the procedure for every process in the DFD.
Guideline for Deriving Logical DFD
from Physical DFD
• Show the actual data in a process, not the documents
that contain them
• Remove routing information (Show the flow between
procedures not between people, offices, or locations)
• Remove tools and devices (File cabinets, folders)
• Consolidate redundant data stores.
• Remove unnecessary processes that do not change the
data or data flows or are device- dependent data
preparation or data entry activities, or duplicate other
processes.
Guideline for Drawing Logical DFD
• Only data needed to perform the process
should be input to the process.
• Any data leaving a process must be based
on data inputted to the process
Guidelines for Explosion
• The process explosion may proceed to an extent
that ensures that a process in the lowest level
DFD has only one outflow.
• Maintain consistency between processes. New
inputs or outputs that were not identified in a
higher level may be introduced at lower level.
• Data stores and data flow that are relevant only
to inside a process are concealed until the
process is exploded into a greater detail.
• Add control on lower level diagrams only:
– Handling errors and exceptions should be done in
lower level diagrams only
– Avoid document copy description
– Avoid time description of logic or control description
– Avoid procedure control descriptions
• Assign meaningful labels
– Dataflow naming
• Name should reflect the data not the document.
• Outbound data flow should be named differently
from the inbound one
– Process Naming
• Names should contain transitive verbs and non-
plural objects
• Names should fully describe a process
• Should explain the linkage between inflows and
out flows
• Avoid vague names
• Lower processes should be much more specific
and descriptive than the higher level ones.
• Must be unique to the activities they describe.
Evaluating DFD for Correctness
• Unnamed Components
• Processes without input / output
• Processes with multiple inputs / outputs (should
be exploded)
• Adequacy/ inadequacy of input dataflow for
performing a process
• Unreferenced data source
• Unnecessary storage of data
• Presence of aliases
• Independence of a process from other
processes and dependence only on data
Common Mistakes in Drawing DFDs
1. Exclusion of Flowchart Symbols
Pass
Marks
List
Tabulate
Marks Fail
List
(Splitting Data flows) Actual No.
of Defects Actual < desired
Check
Quality
Maximum Actual > desired
Desired No.of
Defects
(Control signal from a process)
Common Mistakes in Drawing DFDs
1. Exclusion of Flowchart Symbols
Master Transaction
Record log
Get master Process
Record Transaction Transaction
Request for
master Record
(Loop)
End of
Month Status
Prepare Record
Status
Inventory Record
Master
Record
(Input signal to activate the process)
Common Mistakes in Drawing DFDs
2. Conservation of data
Sales Transaction
Record
Sales Transaction
Record Payment to Salesman
Update
Inventory Inventory
Master Record Master
Update Inventory Master
To: Process 1
Data Structure:
Cust_Order_Record = Customer_Order_No+
Date+ Cust_Name + Cust_Address +
1{Prod_Name+ Prod_Specification}n +
Ackn_Date+ Comments_by_Clerk