UNIT IV: Software Design: Fundamental Design Concepts Modules

Download UNIT IV: Software Design: Fundamental Design Concepts Modules

Preview text

UNIT IV: Software Design: Fundamental Design Concepts – Modules and Modularization Criteria – Design Notations – Design Techniques – Detailed Design Considerations – Real-Time and Distributed System Design – Test Plans – Milestones, Walkthroughs, and Inspections - Design Guidelines.

Prepared by S.Radha Priya



Software design – 3 distinct types of activities
a. External Design
b. Architectural Design
c. Detailed Design
The External design and architectural design typically span the period from software requirements review to preliminary design review. Detailed design spans the period from preliminary design review to critical design review. The situations are illustrated as below:

Phases Activities




Planning requirement definition

External Architecture Detailed

Coding Debugging Testing


SRR- Software Requirement review PDR-Preliminary design review CDR- Critical Design review

Prepared by S.Radha Priya


Fundamental Concepts of Software Design

1. Abstraction

Abstraction allows us to organize and channel our thought processes by postponing structural considerations and detailed algorithmic considerations, data stores.


FIFO- Queue(front, rear)

LIFO- Stack( push, pop, Top, new, empty)

3 widely used abstraction mechanisms in software design are

a. functional abstraction(parameterized subroutine)

b. data abstraction.

c. control abstraction.

 The above mechanisms control the complexity of design process.

Abstract Concrete


Prepared by S.Radha Priya


 Functional abstraction can be generalized to the collection of subprograms, called ‘groups’ (ex: packages in Ada, Clusters in CLU)
 In a group certain routines have visible property, which allows them to be used by other groups.
 Hidden routines can be used only within the containing group.
 Abstract data type are representation details of the data items and implementation details of the functions that manipulate the details of the functions that manipulate the data items are hidden within the group that implements the abstract type.
 Control abstraction is used to state a desired effect without stating the exact mechanism of control.
ex: IF statements and while statements
ex: for all I in S sort files I.
2. Information Hiding
Information hiding is a fundamental design concept for software.

Prepared by S.Radha Priya


When software system is designed using information hiding approach, each module in the system hides the internal details of its processing activities and modules communicate only through well-defined interfaces.

According to parnas, design should begin with a list of difficult design each module is designed to hide such a decision from other modules.

ex: format of control blocks(queues) character codes ordering of character sets.


The use of structure permits decomposition of large system into smaller, more manageable units with well-defined relationships to other units in the system.

The most general form of system structure is a network. It is a directed graph consisting of nodes and arcs.

nodes data stores



Prepared by S.Radha Priya


 A structure inside complex processing node might consist of concurrent processes executing in parallel and communicating through some combination of shared variables and synchronous and asynchronous message passing.

Prepared by S.Radha Priya


Prepared by S.Radha Priya


 The entire network might be complex abstraction that provides an information utility and in turn forms a node in more complex structure of people and machines.
 The “uses” relationships can be represented by a directed graph, where the notation A B means “A uses B” or “B is used by A”.
 Hierarchical ordering of abstractions is established by the following rule:
if A and B are distinct entities, and
if A uses B, then B is not permitted to use A or any entity that makes
use of A.  Hierarchical ordering relation can be represented as an acyclic, directed
graph with a distinguished node that represents a root entity.  The root uses other entities, but is not used by any entity.  Hierarchical structure may or may not form a tree structure. The following
figure illustrates directed acyclic graph and a tree structure respectively.
 The diagram is called structure charts depicts the structure of subroutines in a system.

Prepared by S.Radha Priya


Graph structure chart

A tree structure chart

 Recursive routines should be avoided (A B C A)  The chart reduces the complexity of iteration among software components  The tree structure reduces the complexity of interactions among the software
components.  In the diagram there are N(N-1)/2 interconnections among N nodes.

Prepared by S.Radha Priya


Illustrating N(N-1)/2 links among N nodes in a connected graph

 Only N-1 interconnections of N nodes connected in a tree structure. N-1 is the minimum number of interconnections for N nodes
(N-1) links among N nodes in a tree.

Hierarchical tree structure components and promotes ease of understanding, implementation, debugging, testing, integration and modification of a system.

Prepared by S.Radha Priya


Preparing to load PDF file. please wait...

0 of 0
UNIT IV: Software Design: Fundamental Design Concepts Modules