0% found this document useful (0 votes)
58 views

Unit 3 - DFD

The document discusses data flow diagrams (DFDs) and structured analysis. It provides an overview of developing DFD models, including defining functions, data flows, and data stores. It also discusses hierarchical decomposition, where high-level functions are broken down into more detailed subfunctions. The goal is to model the data flows of a system at increasing levels of granularity.

Uploaded by

persis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views

Unit 3 - DFD

The document discusses data flow diagrams (DFDs) and structured analysis. It provides an overview of developing DFD models, including defining functions, data flows, and data stores. It also discusses hierarchical decomposition, where high-level functions are broken down into more detailed subfunctions. The goal is to model the data flows of a system at increasing levels of granularity.

Uploaded by

persis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 71

DFD

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 1


Developing the DFD model of a
system
 Data flow diagrams (DFDs)
 A major objective of this lecture is to make you develop
DFD model for any problem.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 2


Structured analysis

 Transforms a textual problem


description into a graphic model.
 done using data flow diagrams (DFDs).
 DFDs graphically represent the results
of structured analysis.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 3


Structured design

 All the functions represented in the DFD:


 mapped to a module structure.
 The module structure:
 also called as the software architecture

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 4


Detailed Design

 Software architecture:
 refined through detailed design.
 Detailed design can be directly
implemented:
 using a conventional programming language.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 5


Data flow diagrams

 DFD is an elegant modelling technique:


 useful not only to represent the results of
structured analysis
 applicable to other areas also:
 e.g. for showing the flow of documents or items in an
organization,
 DFD technique is very popular because
 it is simple to understand and use.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 6


Data flow diagram

 DFD is a hierarchical graphical model:


 shows the different functions (or
processes) of the system and
 data interchange among the processes.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 7


DFD Concepts

 It is useful to consider each


function as a processing station:
 each function consumes some input
data and
 produces some output data.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 8


Data Flow Model of a Car Assembly
Unit
Engine Store Door Store

Chassis with Partly


Engine Assembled
Fit Fit Car Fit Paint and
Engine Doors Wheels Test
Assembled
Car Car

Chassis Store Wheel Store

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 9


Data Flow Diagrams (DFDs)

 A DFD model:
 uses limited types of symbols.
 simple set of rules
 easy to understand:
 it is a hierarchical model.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 10


Hierarchical model

 Human mind can easily understand any


hierarchical model:
 in a hierarchical model:
 we start with a very simple and abstract model of a
system,
 details are slowly introduced through the hierarchies.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 11


Hierarchical Model

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 12


How does the human mind work?
(Digression)

search store

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 13


How does the human mind work?
(Digression)

 Short term memory can hold upto 7 items:


 In Software Engineering the number 7 is called as the
magic number.
 An item is any set of related information (called a
chunk):
 an integer
 a character
 a word
 a story
 a picture, etc

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 14


How does the human mind work?
(Digression)

 To store 1,9,6,5 requires 4 item spaces:


 but requires only one storage space when I recognize it as my year of
birth.
 It is not surprising that large numbers::
 usually broken down into several 3 or 4 digit numbers
 e.g. 61-9266-2948

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 15


Data Flow Diagrams (DFDs)
 Primitive Symbols Used for Constructing DFDs:

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 16


External Entity Symbol Librarian

 Represented by a rectangle
 External entities are real
physical entities:
 input data to the system or
 consume data produced by the system.
 Sometimes external entities are called
terminator, source, or sink.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 17


search-
Function Symbol book

 A function such as “search-book” is represented using a circle:


 This symbol is called a
process or bubble or transform.
 Bubbles are annotated with corresponding function names.
 Functions represent some activity:
 function names should be verbs.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 18


Data Flow Symbol book-name

 A directed arc or line.


 represents data flow in the direction
of the arrow.
 Data flow symbols are annotated
with names of data they carry.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 19


Data Store Symbol book-details

 Represents a logical file:


 A logical file can be:
 a data structure
 a physical file on disk.
 Each data store is connected to a
process:
 by means of a data flow symbol.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 20


Data Store Symbol find-book

Books

 Direction of data flow arrow:


 shows whether data is being read
from or written into it.
 An arrow into or out of a data store:
 implicitly represents the entire data of the data store
 arrows connecting to a data store need not be annotated with any data
name.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 21


Output Symbol
 Output produced by the system

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 22


Synchronous operation

 If two bubbles are directly connected by a data flow arrow:


 they are synchronous

Read- number Validate-


numbers numbers
0.1 0.2 Valid
Data- number
items

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 23


Asynchronous operation

 If two bubbles are connected via a data store:


 they are not synchronous.

Read- Validate-
numbers numbers
0.1 0.2
numbers Valid
Data- number
items

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 24


Yourdon's vs. Gane Sarson
Notations
 The notations that we would be following are closer to the Yourdon's
notations
 You may sometimes find notations in books that are slightly different
 For example, the data store may look like a box with one end closed

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 25


How is Structured Analysis Performed?

 Initially represent the software at the


most abstract level:
 called the context diagram.
 the entire system is represented as a
single bubble,
 this bubble is labelled according to the
main function of the system.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 26


Tic-tac-toe: Context Diagram

Tic-tac-toe
display software

move
Human Player

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 27


Context Diagram

 A context diagram shows:


 data input to the system,
 output data generated by the
system,
 external entities.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 28


Context Diagram

 Context diagram captures:


 various entities external to the system
and interacting with it.
 data flow occurring between the system
and the external entities.
 The context diagram is also called as
the level 0 DFD.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 29


Context Diagram

 Context diagram
 establishes the context of the
system, i.e.
 represents:
 Data sources
 Data sinks.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 30


Level 1 DFD

 Examine the SRS document:


 Represent each high-level function as a
bubble.
 Represent data input to every high-level
function.
 Represent data output from every high-
level function.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 31


Higher level DFDs

 Each high-level function is separately decomposed into


subfunctions:
 identify the subfunctions of the function
 identify the data input to each subfunction
 identify the data output from each subfunction
 These are represented as DFDs.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 32


Decomposition

 Decomposition of a bubble:
 also called factoring or exploding.
 Each bubble is decomposed to
 between 3 to 7 bubbles.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 33


Decomposition

 Too few bubbles make


decomposition superfluous:
 if a bubble is decomposed to just one
or two bubbles:
 then this decomposition is redundant.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 34


Decomposition

 Too many bubbles:


 more than 7 bubbles at any level
of a DFD
 make the DFD model hard to
understand.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 35


Decompose how long?

 Decomposition of a bubble should


be carried on until:
 a level at which the function of the
bubble can be described using a
simple algorithm.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 36


Example 1: RMS Calculating Software

 Consider a software called RMS


calculating software:
 reads three integers in the range of
-1000 and +1000
 finds out the root mean square (rms) of
the three input numbers
 displays the result.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 37


Example 1: RMS Calculating Software

 The context diagram is simple


to develop:
 The system accepts 3 integers
from the user
 returns the result to him.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 38


Example 1: RMS Calculating Software

Data- Compute-
items RMS
0

User result

Context Diagram

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 39


Example 1: RMS Calculating Software

 From a cursory analysis of the


problem description:
 we can see that the system
needs to perform several things.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 40


Example 1: RMS Calculating Software

 Accept input numbers from the


user:
 validate the numbers,
 calculate the root mean square of
the input numbers
 display the result.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 41


Example 1: RMS Calculating Software

numbers
Read- Validate-
numbers numbers
0.1 0.2
Valid
Data- -numbers
items error

Compute-
Display rms
0.4 0.3

result RMS

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 42


Example 1: RMS Calculating Software

Squared-
Calculate- sum Calculate-
squared- mean
sum 0.3.2
0.3.1

Valid Mean-
-numbers square
Calculate-
root
0.3.3

RMS

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS


Example: RMS Calculating Software
a b
c
Square Square Square
0.3.1.1 0.3.1.2 0.3.1.3

bsq
asq csq
Sum
0.3.1.4

Squared-sum

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS


Example: RMS Calculating Software

 Decomposition is never carried on


up to basic instruction level:
 a bubble is not decomposed any
further:
 if it can be represented by a simple set of
instructions.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 45


Data Dictionary
 A DFD is always accompanied by a data dictionary.
 A data dictionary lists all data items appearing in a DFD:
 definition of all composite data items in terms of their
component data items.
 all data names along with the purpose of data items.
 For example, a data dictionary entry may be:
 grossPay = regularPay+overtimePay

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 46


Importance of Data Dictionary

 Provides all engineers in a project with standard


terminology for all data:
 A consistent vocabulary for data is very
important
 different engineers tend to use different terms
to refer to the same data,
 causes unnecessary confusion.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 47


Importance of Data Dictionary

 Data dictionary provides the definition of different data:


 in terms of their component elements.
 For large systems,
 the data dictionary grows rapidly in size and
complexity.
 Typical projects can have thousands of data
dictionary entries.
 It is extremely difficult to maintain such a dictionary
manually.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 48


Data Dictionary

 CASE (Computer Aided Software


Engineering) tools come handy:
 CASE tools capture the data items
appearing in a DFD automatically to
generate the data dictionary.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 49


Data Dictionary
 CASE tools support queries:
 about definition and usage of data items.
 For example, queries may be made to find:
 which data item affects which processes,
 a process affects which data items,
 the definition and usage of specific data items, etc.
 Query handling is facilitated:
 if data dictionary is stored in a relational database
management system (RDBMS).

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 50


Data Definition
 Composite data are defined in terms of primitive
data items using following operators:
 +: denotes composition of data items, e.g
 a+b represents data a and b.
 [,,,]: represents selection,
 i.e. any one of the data items listed inside the square
bracket can occur.
 For example, [a,b] represents either a occurs or b occurs.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 51


Data Definition

 ( ): contents inside the bracket represent optional data


 which may or may not appear.
 a+(b) represents either a or a+b occurs.
 {}: represents iterative data definition,
 e.g. {name}5 represents five name data.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 52


Data Definition

 {name}* represents
 zero or more instances of name data.
 = represents equivalence,
 e.g. a=b+c means that a represents b and c.
 * *: Anything appearing within * * is considered as comment.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 53


Data dictionary for RMS
Software
 numbers=valid-numbers=a+b+c
 a:integer * input number *
 b:integer * input number *
 c:integer * input number *
 asq:integer
 bsq:integer
 csq:integer
 squared-sum: integer
 Result=[RMS,error]
 RMS: integer * root mean square value*
 error:string * error message*

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 54


Balancing a DFD

 Data flowing into or out of a bubble:


 must match the data flows at the next level of DFD.
 This is known as balancing a DFD
 In the level 1 of the DFD,
 data item c flows into the bubble P3 and the data item
d and e flow out.
 In the next level, bubble P3 is decomposed.
 The decomposition is balanced as data item c flows
into the level 2 diagram and d and e flow out.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 55


Balancing a DFD
c
b c

c1
d1

a d
e
Level 1 d
e1
e
Level 2
Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS
Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 57
Balancing DFD :
Parent DFD having inflow and out flow of data should match
data flow at next child level. This is known as balancing a DFD.
Concept is illustrated in figure :

        
Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 58
In Level 1 DFD, data items D1 flow out of bubble 2 and item D2
flows into bubble 2. In next level, bubble 2 is decomposed into three
sub process(2.1, 2.2, 2.3). It has data item D1 flowing out and D2
flowing in. So DFD is balanced here.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 59


A bubble representing a process should have minimum one input
and one output flow.

When a bubble has input flow without any output flow, it is known
as “black hole”.

When a process has output flows but no input flows, it is called a


“miracle”.

A processing step may have outputs that are greater than sum of its
inputs is called Grey holes.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 60


Common mistakes to avoid while constructing DFDs :

•DFDs should always represent data flow and there should be no


control flow.
•All external entities should be represented at context level.
•All functionality of system must be captured in DFD and none
should be overlooked. Also, only those functions specified in SRS
should be represented.
•Arrows connecting to data store need not be annotated with any
data name.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 61


Numbering of Bubbles:

 Number the bubbles in a DFD:


 numbers help in uniquely identifying any bubble from
its bubble number.
 The bubble at context level:
 assigned number 0.
 Bubbles at level 1:
 numbered 0.1, 0.2, 0.3, etc
 When a bubble numbered x is decomposed,
 its children bubble are numbered x.1, x.2, x.3, etc.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 62


Example 2: Tic-Tac-Toe Computer
Game

 A human player and the computer make


alternate moves on a 3 3 square.
 A move consists of marking a previously
unmarked square.
 The user inputs a number between 1 and 9 to
mark a square
 Whoever is first to place three consecutive marks
along a straight line (i.e., along a row, column, or
diagonal) on the square wins.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 63


Example: Tic-Tac-Toe Computer
Game

 As soon as either of the human player or the


computer wins,
 a message announcing the winner should be displayed.
 If neither player manages to get three
consecutive marks along a straight line,
 and all the squares on the board are filled up,
 then the game is drawn.
 The computer always tries to win a game.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 64


Context Diagram for
Example
Tic-tac-toe
software
display 0

move
Human Player

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS


Level 1 DFD
Display- game
board
move 0.1 result

Validate- Check-
move board winner
0.2 0.4

Play-
move
0.3

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS


Data dictionary

 Display=game + result
 move = integer
 board = {integer}9
 game = {integer}9
 result=string

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 67


Summary
 We discussed a sample function-oriented software design
methodology:
 Structured Analysis/Structured Design(SA/SD)
 incorporates features from some important design
methodologies.
 SA/SD consists of two parts:
 structured analysis
 structured design.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 68


Summary
 The goal of structured analysis:
 functional decomposition of the system.
 Results of structured analysis:
 represented using Data Flow Diagrams (DFDs).
 We examined why any hierarchical model is easy to
understand.
 Number 7 is called the magic number.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 69


Summary

 We discussed structured
analysis of two small examples:
 RMS calculating software
 tic-tac-toe computer game
software

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 70


Summary
 Several CASE tools are available:
 support structured analysis and design.
 maintain the data dictionary,
 check whether DFDs are balanced or not.

Tuesday, March 23, 2021 LECTURE NOTES - DR. P. PERSIS 71

You might also like