Function-Oriented Software Design (lecture 5)
Prof. R. Mall
Dept. of CSE, IIT, Kharagpur
Function-oriented design techniques are very popular:
Currently
Introduction
in use in many software development organizations.
Function-oriented design techniques:
Start
with the functional requirements specified in the SRS document.
Introduction
During the design process:
High-level
functions are successively decomposed:
Into more detailed functions.
Finally
the detailed functions are mapped to a module structure.
Introduction
Successive decomposition of high-level functions:
Into
more detailed functions.
Technically
known as topdown decomposition.
Introduction
SA/SD methodology:
has
essential features of several important function-oriented design methodologies:
If you need to use any specific design methodology later on,
You can do so easily with small additional effort.
5
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 high-level design.
SA/SD technique can be used to perform
Overview of SA/SD Methodology
SA/SD methodology consists of two distinct activities:
Structured Analysis (SA) Structured Design (SD)
During structured analysis:
During structured design:
functional decomposition takes place.
module structure is formalized.
7
Functional Decomposition
Each function is analyzed:
Hierarchically Simultaneous
decomposed into more detailed functions. decomposition of high-level data
Into more detailed data.
8
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.
Structured Design
All the functions represented in the DFD:
Mapped
to a module structure.
The module structure:
Also
called as the software architecture:
10
Detailed Design
Software architecture:
Refined Detailed
through detailed design.
design can be directly implemented:
Using a conventional programming language.
11
Purpose of structured analysis:
Capture
Structured Analysis vs. Structured Design
the detailed structure of the system as the user views it.
at a form that is suitable for implementation in some programming language.
12
Purpose of structured design:
Arrive
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 customers perception of the problem.
Uses customers 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.
13
Structured Analysis
Based on principles of:
Top-down
decomposition approach. Divide and conquer principle:
Graphical
Each function is considered individually (i.e. isolated from other functions). Decompose functions totally disregarding what happens in other functions. Data flow diagrams (or bubble charts).
representation of results using
14
Data Flow Diagrams
DFD is an elegant modelling technique:
Useful
not only to represent the results of structured analysis. Applicable to other areas also:
DFD technique is very popular:
It
e.g. for showing the flow of documents or items in an organization,
is powerful and yet simple to understand and use.
15
Data Flow Diagram
DFD is a hierarchical graphical model:
Shows Data
the different functions (or processes) of the system and interchange among the processes.
16
DFD Concepts
It is useful to consider each function as a processing station:
Each
function consumes some input data. some output data.
Produces
17
Data Flow Model of a Car Assembly Unit
Engine Store
Door
Store
Partly Assembled Car
Fit Engine
Chassis with Engine
Fit Doors
Fit Wheels
Assembled Car
Paint and Test
Car
Chassis Store
Wheel Store
18
Data Flow Diagrams (DFDs)
A DFD model:
Uses Simple
limited types of symbols.
set of rules
Easy
to understand:
It is a hierarchical model.
19
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.
20
Hierarchical Model
21
Data Flow Diagrams (DFDs)
Primitive Symbols Used for Constructing DFDs:
22
External Entity Symbol
Represented by a rectangle External entities are real physical entities:
Librarian
input data to the system or
consume data produced by the system.
Sometimes external entities are called terminator, source, or sink.
23
Function Symbol
A function such as search-book is represented using a circle: search
This symbol is called a process or bubble or transform.
book
Bubbles are annotated with corresponding function names.
Functions represent some activity:
Function names should be verbs.
24
Data Flow Symbol
A directed arc or line.
Represents
Data
book-name
data flow in the direction of the arrow. flow symbols are annotated with names of data they carry.
25
Data Store Symbol
Represents a logical file:
A
logical file can be:
Each
data store is connected to a process:
By means of a data flow symbol.
26
a data structure a physical file on disk.
book-details
Data Store Symbol
Direction of data flow arrow:
Shows whether data is being read from or written into it.
find-book
An arrow into or out of a data store:
Books
Implicitly represents the entire data of the data store Arrows connecting to a data store need not be annotated with any data name.
27
Output Symbol
Output produced by the system
28
Synchronous Operation
If two bubbles are directly connected by a data flow arrow:
They are synchronous
Dataitems
Read- number numbers 0.1
Validatenumbers 0.2
Valid number
29
Asynchronous Operation
If two bubbles are connected via a data store:
They
are not synchronous.
Readnumbers 0.1
Dataitems
numbers
Validatenumbers 0.2 Valid
number
30
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
Yourdon's vs. Gane Sarson Notations
example, the data store may look like a box with one end closed
31
How is Structured Analysis Performed?
Initially represent the software at the most abstract level:
Called The
the context diagram.
entire system is represented as a single bubble, bubble is labelled according to the main function of the system.
32
This
Tic-tac-toe: Context Diagram
display Tic-tactoe software
Human Player
move
33
Context Diagram
A context diagram shows:
Data
input to the system,
Output
data generated by the system, entities.
External
34
Context Diagram
Context diagram captures:
Various Data
entities external to the system and interacting with it. flow occurring between the system and the external entities.
The context diagram is also called as the level 0 DFD.
35
Context Diagram
Establishes the context of the system, i.e.
Represents:
Data sources
Data sinks.
36
Level 1 DFD
Examine the SRS document:
Represent
bubble.
each high-level function as a
Represent Represent
data input to every highlevel function. data output from every high-level function.
37
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.
38
Decomposition
Decomposition of a bubble: Also called factoring or
exploding.
Each bubble is decomposed to
Between 3 to 7 bubbles.
39
Decomposition
Too few bubbles make decomposition superfluous:
If
a bubble is decomposed to just one or two bubbles:
Then this decomposition is redundant.
40
Decomposition
Too many bubbles:
More Make
than 7 bubbles at any level of a DFD.
the DFD model hard to understand.
41
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.
42
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.
43
Example 1: RMS Calculating Software
The context diagram is simple to develop:
The
system accepts 3 integers from the user the result to him.
Returns
44
Example 1: RMS Calculating Software
Dataitems
ComputeRMS 0
result
User
Context Diagram
45
Example 1: RMS Calculating Software
From a cursory analysis of the problem description:
We
can see that the system needs to perform several things.
46
Example 1: RMS Calculating Software
Accept input numbers from the user:
Validate
the numbers,
Calculate
Display
the root mean square of the input numbers the result.
47
Example 1: RMS Calculating Software
numbers
Dataitems
Readnumbers 0.1
error Display 0.4
Validatenumbers 0.2
Valid numbers
Computerms 0.3 RMS
result
48
Example 1: RMS Calculating Software
Calculatesquaredsum 0.3.1 Valid numbers Squaredsum Calculatemean 0.3.2
Calculateroot 0.3.3
Meansquare
RMS
49
Example: RMS Calculating Software
a Square 0.3.1.1 asq b
Square 0.3.1.2
bsq
Square 0.3.1.3
csq
Sum 0.3.1.4
Squared-sum
50
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.
51
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. grossPay = regularPay+overtimePay
For example, a data dictionary entry may be:
52
Provides all engineers in a project with standard terminology for all data:
Importance of Data Dictionary
A consistent vocabulary for data is very important
Different engineers tend to use different terms to refer to the same data,
Causes unnecessary confusion.
53
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.
54
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.
55
Data Dictionary
CASE tools support queries:
About definition and usage of data items. Which data item affects which processes,
For example, queries may be made to find:
A process affects which data items,
The definition and usage of specific data items, etc. If data dictionary is stored in a relational database management system (RDBMS).
56
Query handling is facilitated:
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.
57
Data Definition
( ): contents inside the bracket represent optional data
which may or may not appear.
a+(b) represents either a or a+b occurs. e.g. {name}5 represents five name data.
{}: represents iterative data definition,
58
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 * considered as comment.
* is
59
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*
60
Balancing a DFD
Data flowing into or out of a bubble:
Must match the data flows at the next level of DFD. Data item c flows into the bubble P3 and the data item d and e flow out. The decomposition is balanced as data item c flows into the level 2 diagram and d and e flow out.
61
In the level 1 of the DFD,
In the next level, bubble P3 is decomposed.
Balancing a DFD
c
c
d1 c1
e
d e1 e
Level 1
Level 2
62
Numbering of Bubbles
Number the bubbles in a DFD:
Numbers help in uniquely identifying any bubble from its bubble number. Assigned number 0.
The bubble at context level:
Bubbles at level 1:
Numbered 0.1, 0.2, 0.3, etc Its children bubble are numbered x.1, x.2, x.3, etc.
63
When a bubble numbered x is decomposed,
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.
64
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.
65
Context Diagram for Example
display
Tic-tactoe software 0 move
Human Player
66
Level 1 DFD
move Validatemove 0.2 Displayboard 0.1 game result Checkwinner 0.4
board
Playmove
0.3
67
Data Dictionary
Display=game + result move = integer board = {integer}9 game = {integer}9 result=string
68
Summary
We discussed a sample function-oriented software design methodology:
Structured Analysis/Structured
Design(SA/SD)
Incorporates features from some important design methodologies. Structured analysis Structured design.
69
SA/SD consists of two parts:
Summary
The goal of structured analysis:
functional decomposition of the system. represented using Data Flow Diagrams (DFDs).
Results of structured analysis:
We examined why any hierarchical model is easy to understand.
Number 7 is called the magic number.
70
Summary
During structured design,
The
DFD representation is transformed to a structure chart representation.
DFDs are very popular:
Because
it is a very simple technique.
71
Summary
A DFD model:
Difficult Structure
to implement using a programming language:
chart representation can be easily implemented using a programming language.
72
Summary
We discussed structured analysis of two small examples:
RMS
calculating software
Tic-tac-toe
software
computer game
73
Summary
Several CASE tools are available:
Support
design.
structured analysis and the data dictionary,
Maintain Check
or not.
whether DFDs are balanced
74