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

Function-Oriented Software Design

Function-oriented software design techniques, established nearly four decades ago, remain popular in current software development projects by viewing systems as black boxes that provide high-level functions. The SA/SD methodology involves structured analysis and design, transforming the software requirements specification into data flow diagrams and structure charts. Data flow diagrams represent system processes and data interchange, utilizing various symbols to depict functions, external entities, data flows, and data stores, while a data dictionary supports standard terminology and impact analysis.

Uploaded by

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

Function-Oriented Software Design

Function-oriented software design techniques, established nearly four decades ago, remain popular in current software development projects by viewing systems as black boxes that provide high-level functions. The SA/SD methodology involves structured analysis and design, transforming the software requirements specification into data flow diagrams and structure charts. Data flow diagrams represent system processes and data interchange, utilizing various symbols to depict functions, external entities, data flows, and data stores, while a data dictionary supports standard terminology and impact analysis.

Uploaded by

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

FUNCTION-ORIENTED

SOFTWARE DESIGN
 Function-oriented design techniques were proposed nearly
four decades ago.
 These techniques are at the present time still very popular
and are currently being used in many software development
projects.
 These techniques, to start with, view a system as a black-box
that provides a set of services to the users of the software.
 These services provided by a software to its users are also
known as the high-level functions supported by the
software.
 During the design process, these high level functions are
successively decomposed into more detailed functions.

 The SA/SD technique can be used to perform the high


level design of a software
OVERVIEW OF SA/SD METHODOLOGY
 As the name itself implies, SA/SD methodology involves
carrying out two distinct activities:

Structured analysis (SA) „


Structured design (SD)

 During structured analysis, the SRS document is transformed


into a data flow diagram (DFD) model. „

 During structured design, the DFD model is transformed into


a Structure chart.
The structured analysis activity transforms the SRS
document into a graphic model called the DFD model.
During structured analysis, functional decomposition of
the system is achieved. That is, each function that the
system needs to perform is analyzed and hierarchically
decomposed into more detailed functions.

On the other hand, during structured design, all functions


identified during structured analysis are mapped to a
module structure. This module structure is also called
the high-level design or the software architecture for the
given problem. This is represented using a Structure
chart.
STRUCTURED ANALYSIS

The structured analysis technique is based on the following


underlying principles: „

 Top-down decomposition approach.

„ Application of divide and conquer principle. Through


this each high-level function is independently
decomposed into detailed functions. „

 Graphicalrepresentation of the analysis results using data


flow diagrams (DFDs)
Data Flow Diagrams (DFDs)

The DFD (also known as the bubble chart) is a simple


graphical formalism that can be used to represent a
system in terms of the input data to the system, various
processing carried out on those data, and the output data
generated by the system.

Starting with a set of high-level functions that a system


performs, a DFD model represents the sub functions
performed by the functions using a hierarchy of
diagrams.
 A DFD is a hierarchical graphical model of a system that shows
the different processing activities or functions that the system
performs and the data interchange among those functions.

 In the DFD terminology, each function is called a Process or a


Bubble.

 It is useful to consider each function as a processing station (or


process) that consumes some input data and produces some
output data.

 DFD is an elegant modeling technique that can be used not only


to represent the results of structured analysis of a software
problem, but also useful for several other applications such as
showing the flow of documents or items in an organization.
Primitive symbols used for constructing DFDs
There are essentially five different types of symbols used for
constructing DFDs. These primitive symbols are depicted in
Figure 6.2. The meaning of these symbols are explained as
follows:
Function symbol: A function is represented using a circle. This
symbol is called a process or a bubble.

External entity symbol: An external entity such as a librarian, a


library member, etc. is represented by a rectangle.

Data flow symbol: A directed arc (or an arrow) is used as a data flow
symbol. A data flow symbol represents the data flow occurring
between two processes or between an external entity and a process in
the direction of the data flow arrow

Data store symbol: A data store is represented using two parallel lines.
It represents a logical file.

Output symbol: The output symbol is as shown in Figure The


output symbol is used when a hard copy is produced.
Synchronous and asynchronous operations

 If two bubbles are directly connected by a data flow arrow, then


they are synchronous. This means that they operate at the same
speed.
 However, if two bubbles are connected through a data store, as in

Figure then the speed of operation of the bubbles are independent.


The dictionary plays a very important role in any
software development process, especially for the
following reasons:

„ A data dictionary provides a standard terminology for all


relevant data for use by the developers working in a project.

 „ The data dictionary helps the developers to determine the


definition of different data structures in terms of their
component elements while implementing the design. „

 The data dictionary helps to perform impact analysis. That is,


it is possible to determine the effect of some data on various
processing activities and vice versa.
Data Dictionary
 Every DFD model of a system must be accompanied by a data
dictionary.
 A data dictionary lists all data items that appear in a DFD

model.
 The data items listed include all data flows and the contents of

all data stores appearing on all the DFDs in a DFD model.


 For large systems, the data dictionary can become extremely

complex and voluminous.


 Even moderate-sized projects can have thousands of entries in

the data dictionary.


 It becomes extremely difficult to maintain a voluminous

dictionary manually. Computer-aided software engineering


(CASE) tools come handy to overcome this problem
Data Definition
Composite data items can be defined in terms of primitive data items
using the following data definition operators.
 + denotes composition of two 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.
 () the 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. {name}* represents zero or more instances of name


data.
 = represents equivalence, e.g. a=b+c means that a is a composite

data item comprising of both b and c.


 /**/ Anything appearing within /* and */ is considered as comment

You might also like