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

Lect 6

Software engineering

Uploaded by

rajputaslok143
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Lect 6

Software engineering

Uploaded by

rajputaslok143
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 60

Function-Oriented

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

Chassis Store Wheel


Store

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

Read- number Validate-


numbers numbers Valid
Data- 0.1 0.2 number
items

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

You might also like