Software Design
Software Design
SOFTWARE DESIGN
Overview of the Design Process: Outcome of the Design Process – Classification of Design
Activities. – How to Characterize a good Software Design? Function-Oriented Software
Design:- Overview of SA/SD Methodology – Structured Analysis – Developing the DFD Model
of a System: Context Diagram – Structured Design – Detailed Design.
SOFTWARE DESIGN:
The activities carried out during the design phase (called as design process) transform the SRS
document into the design document.
The following items are designed and documented during the design phase.
Different modules required: The different modules in the solution should be clearly identified.
Each module is a collection of functions and the data shared by the functions of the module.
Each module should accomplish some well-defined task out of the overall responsibility of the
software. Each module should be named according to the task it performs. For example, in an
academic automation software, the module consisting of the functions and data necessary to
accomplish the task of registration of the students should be named handle student registration.
Control relationships among modules: A control relationship between two modules essentially
arises due to function calls across the two modules. The control relationships existing among
various modules should be identified in the design document.
Modularity
A modular design is an effective decomposition of a problem. It is a basic characteristic of
any good design solution.
A modular design, in simple words, implies that the problem has been decomposed into a set
of modules that have only limited interactions with each other.
Based on this classification, we would be able to easily judge the cohesion and coupling
existing in a design solution.
From a knowledge of the cohesion and coupling in a design, the modularity of the design
solution can be achieved.
Layered design
A layered design is one in which when the call relations among different modules are
represented graphically, it would result in a tree-like diagram with clear layering.
In a layered design solution, the modules are arranged in a hierarchy of layers.
A module can only invoke functions of the modules in the layer immediately below it.
The higher layer modules can be considered to be similar to managers that invoke (order) the
lower layer modules to get certain tasks done.
Software Engineering Page 5 Prepared By V.B.T.Shoba, Asst. Prof. GASC, Ngl.
A layered design can be considered to be implementing control abstraction, since a module at
a lower layer is unaware of (about how to call) the higher layer modules.
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. It
is important to understand that the purpose of structured analysis is to capture the detailed
structure of the system as perceived by the user, whereas the purpose of structured design is to
define the structure of the solution that is suitable for implementation in some programming
language.
5. 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.
Graphical representation of the analysis results using data flow diagrams (DFDs).
a) Context Diagram
The context diagram is the most abstract (highest level) data flow representation of a system. It
represents the entire system as a single bubble. The bubble in the context diagram is annotated
with the name of the software system being developed (usually a noun).
The context diagram establishes the context in which the system operates; that is, who are the
users, what data do they input to the system, and what data they received by the system.
7. STRUCTURED DESIGN
The aim of structured design is to transform the results of the structured analysis (that i s,
the DFD model) into a structure chart.
Selection: The diamond symbol represents the fact that one module of several modules
connected with the diamond symbol i s invoked depending on the outcome of the condition
attached with the diamond symbol.
8. DETAILED DESIGN
During detailed design the pseudo code description of the processing and the different
data structures are designed for the different modules of the structure chart.
These are usually described in the form of module specifications (MSPEC).
MSPEC is usually written using structured English.
The MSPEC for the non-leaf modules describe the different conditions under which the
responsibilities are delegated to the lower level modules.
The MSPEC for the leaf-level modules should describe in algorithmic form how the
primitive processing steps are carried out.
To develop the MSPEC of a module, it is usually necessary to refer to the DFD model
and the SRS document to determine the functionality of the module.