Lect 6
Lect 6
Software Design
Prof. S. K. Swain
Dept. of SCE, KIIT,
Bhubaneswar
1
Introduction
●
Function-oriented design
techniques are very popular:
– Currently
in use in many software
development organizations.
●
Function-oriented design
techniques:
– Startwith the functional requirements
specified in the SRS document.
2
Introduction
●
During the design process:
– High-level
functions are
successively decomposed (top-
down decomposition):
●
Into more detailed functions.
– Finally
the detailed functions are
mapped to a module structure.
3
SA/SD (Structured
Analysis/Structured
Design)
●
SA/SD technique draws heavily from the
following methodologies:
– Constantine and Yourdon's methodology
– Hatley and Pirbhai's methodology
– Gane and Sarson's methodology
– DeMarco and Yourdon's methodology
●
SA/SD technique can be used to perform
– high-level design.
4
Overview of SA/SD
Methodology
●
SA/SD methodology consists of two
distinct activities:
– Structured Analysis (SA)
– Structured Design (SD)
●
During structured analysis:
– functional decomposition takes place.
●
During structured design:
– module structure is formalized.
5
Functional
Decomposition
●
Each function is analyzed:
– Hierarchically
decomposed into
more detailed functions.
– Simultaneous decomposition of
high-level data
●
Into more detailed data.
6
Structured Analysis
●
Transforms a textual problem
description into a graphic
model.
– Doneusing data flow diagrams
(DFDs).
– DFDs graphically represent the
results of structured analysis.
7
Structured
Design
●
All the functions represented in
the DFD:
– Mapped to a module structure.
●
The module structure:
– Alsocalled as the software
architecture:
8
Detailed Design
●
Software architecture:
– Refined through detailed
design.
– Detailed
design can be directly
implemented:
●
Using a conventional
programming language.
9
Structured Analysis
vs. Structured Design
●
Purpose of structured analysis:
– Capture the detailed structure of
the system as the user views it.
●
Purpose of structured design:
– Arrive
at a form that is suitable for
implementation in some
programming language.
10
Structured Analysis
vs. Structured Design
●
The results of structured analysis can be
easily understood even by ordinary
customers:
– Does not require computer knowledge.
– Directly represents customer’s perception of the
problem.
– Uses customer’s terminology for naming different
functions and data.
●
The results of structured analysis can be
reviewed by customers:
– To check whether it captures all their
requirements. 11
Structured Analysis
●
Based on principles of:
– Top-down decomposition approach.
– Divide and conquer principle:
●
Each function is considered individually (i.e.
isolated from other functions).
●
Decompose functions totally disregarding
what happens in other functions.
– Graphical representation of results using
●
Data flow diagrams (or bubble charts).
12
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:
– It is powerful and yet simple to
understand and use.
13
Data Flow Diagram
●
DFD is a hierarchical graphical model:
– Shows the different functions (or
processes) of the system and
– Data interchange among the processes.
●
It is useful to consider each function as
a processing station:
– Each function consumes some input data.
– Produces some output data.
14
Data Flow Model of a Car
Assembly Unit
Engine Store Door Store
Partly
Assemble
d Car
Fit Fit Fit Paint and
Engine Doors Wheels Test
Chassis Assemble
with d Car Car
Engine
15
Data Flow Diagrams
(DFDs)
●
A DFD model:
– Uses limited types of symbols.
– Simple set of rules
– Easy to understand:
●
It is a hierarchical model.
16
Data Flow Diagrams
(DFDs)
●
Primitive Symbols Used for Constructing
DFDs:
17
External Entity
Symbol
●
Represented by a rectangle
●
External entities are real Librarian
physical entities:
– input data to the system or
– consume data produced by the
system.
– Sometimes external entities are
called terminator, source, or sink.
18
Function Symbol
●
A function such as “search-book” is
represented using a circle: search
– This symbol is called a -book
process or bubble or transform.
– Bubbles are annotated with
corresponding function names.
– Functions represent some activity:
●
Function names should be verbs.
19
Data Flow Symbol
●
A directed arc or line. book-
name
– Represents data flow in the
direction of the arrow.
– Dataflow symbols are
annotated with names of data
they carry.
20
Data Store Symbol
●
Represents a logical file:
–A logical file can be:
book-
●
a data structure details
●
a physical file on disk.
– Eachdata store is connected to a
process:
●
By means of a data flow symbol.
21
Data Store Symbol
●
Direction of data flow arrow:
find-book
– Shows whether data is being read
from or written into it.
Books
●
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.
22
Output Symbol
●
Output produced by the system
23
Synchronous
Operation
●
If two bubbles are directly connected
by a data flow arrow:
– They are synchronous
24
Asynchronous
Operation
●
If two bubbles are connected via a
data store:
– They are not synchronous.
Read- Validate-
numbers numbers
0.1 number 0.2 Valid
Data- s number
items
25
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
26
How is Structured Analysis
Performed?
●
Initially represent the software
at the most abstract level:
– Called the context diagram.
– Theentire system is represented
as a single bubble,
– Thisbubble is labelled according
to the main function of the
system.
27
Tic-tac-toe: Context
Diagram
Tic-tac-
display toe
software
move
Human
Player
28
Context Diagram
●
A context diagram shows:
– Data input to the system,
– Output data generated by
the system,
– External entities.
29
Context Diagram
●
Context diagram captures:
– Various
entities external to the
system and interacting with it.
– Dataflow occurring between the
system and the external entities.
●
The context diagram is also called
as the level 0 DFD.
30
Level 1 DFD
●
Examine the SRS document:
– Representeach high-level function
as a bubble.
– Represent data input to every high-
level function.
– Represent data output from every
high-level function.
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.
32
Decomposition
●
Decomposition of a bubble:
– Also called factoring or
exploding.
●
Each bubble is decomposed
to
– Between 3 to 7 bubbles.
33
Decomposition
●
Too few bubbles make decomposition
superfluous:
– If a bubble is decomposed to just one or
two bubbles:
●
Then this decomposition is redundant.
●
Too many bubbles:
– More than 7 bubbles at any level of a DFD.
– Make the DFD model hard to understand.
34
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.
35
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.
36
Example 1: RMS
Calculating Software
●
The context diagram is
simple to develop:
– Thesystem accepts 3 integers
from the user
– Returns the result to him.
37
Example 1: RMS
Calculating Software
3 Data-
items Comput
e- RMS
0
User result
Context Diagram
38
Example 1: RMS
Calculating Software
●
Accept input numbers from
the user:
– Validate the numbers,
– Calculatethe root mean
square of the input numbers
– Display the result.
39
Example 1: RMS
Calculating Software
number
s
Read- Validate-
number numbers
s 0.2
Valid -
3 Data- 0.1 number
items error s
Display Comput
0.4 e-rms
0.3
result RMS
40
Example 1: RMS
Calculating Software
Square
Calculate d-sum
-squared- Calculate
sum -mean
0.3.1 0.3.2
Valid - Mean-
number square
s Calculate
-root
0.3.3
RMS
41
Example: RMS Calculating
Software
b
a c
Squar Squar Squar
e e e
0.3.1.1 0.3.1.2 0.3.1.3
bsq
asq csq
Sum
0.3.1.4
Squared-sum
42
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.
43
Balancing a DFD
●
Data flowing into or out of a bubble:
– Must match the data flows at the next level of
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.
44
Balancing a DFD
c
b c
c1
d1
a d
e
Level 1 d
e1
e
Level 2
45
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. 46
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 the
data items.
●
For example, a data dictionary entry may
be:
– grossPay = regularPay+overtimePay 47
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.
48
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.
49
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.
50
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).
51
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.
52
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.
53
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.
54
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*
55
Example 2: Tic-Tac-Toe
Computer Game
●
A human player and the computer make
alternate moves on a 3 X 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.
56
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.
57
Context Diagram for
Example
Tic-tac-
toe
display software
0
move
Human
Player
58
Level 1 DFD
game
Display
move -board
0.1 result
Validate Check-
-move winner
0.2 board 0.4
Play-
move
0.3
59
Data Dictionary
●
Display=game + result
●
move = integer
●
board = {integer}9
●
game = {integer}9
●
result=string
60