0% found this document useful (0 votes)
4 views24 pages

SoftwareDesign Design Process

Uploaded by

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

SoftwareDesign Design Process

Uploaded by

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

Design Concepts and Principles

1
Design Concepts

 Design is a meaningful representation of


software to be built, which can be traced to a
customer requirements & assessed for quality
against a set of predefined criteria

 It focuses on 4 major areas,


 Data
 Architecture
 Interfaces
 Components

Dr.D.M.D.Preethi,ASP/CSE 2
Design Concepts

 Need of Software Design


 Steps Involved for the design of Software
 Design begins with the requirement model which has to be
transformed into 4 levels of design
 Data Structure
 System Architecture
 Interface representation
 Component level detail
 During each design activity, the standard principle has to
be applied to extract good quality across the product

Dr.D.M.D.Preethi,ASP/CSE 3
Design Concepts

 2 phases of Design Process


 Diversification & Convergence
 Elimination

 Note: The objective of software design can be perceived


thro’ the use of Design Principles & its concepts in the
entire software process

Dr.D.M.D.Preethi,ASP/CSE 4
Design Concepts

 The set of design concepts which provides


needed validation to a software are,

1. Abstraction
2. Refinement
3. Modularity
4. Software Architecture
5. Control Hierarchy
6. Structural Partioning
7. Data Structure
8. Software Procedure
9. Information Hiding

Dr.D.M.D.Preethi,ASP/CSE 5
Design Concepts

 Abstraction
 Process of extracting needed data
objects & eliminating the unnecessary
details for the software to be built

 Initially, a software design is represented


as high level of abstraction. As the design
iteration occurs, the subsequent refinement
leads to a representation @ lowest level
with the needed solution.

Dr.D.M.D.Preethi,ASP/CSE 6
Design Concepts

 Abstraction (Cont…)

 Software Design process has 3 types of


Abstraction

• Procedural Abstraction
• Data Abstraction
• Control Abstraction

Dr.D.M.D.Preethi,ASP/CSE 7
Design Concepts

 Abstraction (Cont…)
 Procedural Abstraction – It is the named
sequence of instructions that has a specific and
limited function
 For Ex: Problem “Drive a car”
 From this statement, a word “drive” implies a long
sequence of procedural steps such as
 Walk into a car
 Open & close the car door
 Insert a key
 Turn a key to start
 Start a car
 Press clutch & Apply Gear
 Release gear slowly & drive a car

Dr.D.M.D.Preethi,ASP/CSE 8
Design Concepts

 Abstraction (Cont…)
 Data Abstraction – It is the named collection of
data that describes a data object
 For Ex: Problem “Drive a car”
 From this statement, data abstraction is “car” cos’
it comprises of attributes that describe the car such
as
 Structure of a car
 Type of a car
 Running mechanism etc.,
 Control Abstraction – It implies the program
control mechanism without specifying internal detail

Dr.D.M.D.Preethi,ASP/CSE 9
Design Concepts

 Refinement (Process of Elaboration)


 It is a top-down approach
 Program is developed by refining each levels in
detail

Dr.D.M.D.Preethi,ASP/CSE 10
Effective Modular Design

 With reference to the concept of modularity, the


overall complexity of the software implementation
will be minimized.

 Effective modular design can be obtained thro’ the


concept “Functional Independence”

 Functional Independence is the direct growth of


modularity, abstraction and Information hiding

Dr.D.M.D.Preethi,ASP/CSE 11
Effective Modular Design

 Benefits of Independent modules


 Easy to implement
 Easy to test
 Easy to maintain
 Side effects can be minimized if there is a changes
in requirements

 Functional independence can be measured by 2


criteria's
1. Cohesion
2. Coupling

Dr.D.M.D.Preethi,ASP/CSE 12
Effective Modular Design

 Cohesion
 It is a relative functional strength of a module that
must perform a task with in a software procedure

 Cohesion can be categorized into 5 levels, which can


be represented as a “Spectrum” and pictured as

Logical Temporal Procedural


Coincidental Communicational

Dr.D.M.D.Preethi,ASP/CSE 13
Effective Modular Design

 Cohesion (Cont…)
 Coincidental cohesion – When a module performs set
of tasks loosely to each other
 Logical Cohesion – When a module performs the task
logically
 Temporal Cohesion – If a module performs its task
with in some span of time
 Procedural Cohesion – If a processing elements of a
module executes in some specific order
 Communicational Cohesion – When all the processing
elements of a module concentrates on a specific data
structure

Dr.D.M.D.Preethi,ASP/CSE 14
Effective Modular Design

 Coupling
 It is a measure of Interdependence of a module that
depends on interface complexity between modules and
data processed across this interface

 Coupling can be categorized into


a) No direct Coupling
b) Data Coupling
c) Stamp Coupling a b c d e f
d) Control Coupling
e) Common Coupling
f) Content Coupling

Dr.D.M.D.Preethi,ASP/CSE 15
Effective Modular Design

 Coupling (Cont…)
a) No direct Coupling – The primary sub modules of
the given problem are different modules. It yields
no direct coupling.
b) Data Coupling – If a data is passed as an argument
to a sub-module then it is referred as data coupling
c) Stamp coupling – If a data structure is passed via
argument list
d) Control Coupling – If a control / Boolean flag is
passed
e) Common Coupling – If many modules references
global data
f) Content Coupling – If any one module makes use of
data or control information with in the boundary of
other module

Dr.D.M.D.Preethi,ASP/CSE 16
Design Heuristics for
Effective Modularity
 The objective of Software design can be achieved
thro’ the standard design concepts & its principles.
 After developing program structure, it can be
manipulated using design heuristics
a) First iteration of program structure should be
evaluated to reduce coupling & improve cohesion.
b) Program structure must be minimized with high
Fan-out & Fan-in as depth increases.
 At the mean time following program structure must
be avoided
Problem

1 2 3 4 5 6
Dr.D.M.D.Preethi,ASP/CSE 17
Design Heuristics for
Effective Modularity
c) Evaluate the module interface to reduce complexity
& redundancy. Else it leads to software errors.
Software must be designed to pass the data simply
& consistent with in that module.
d) Keep the scope effect of a module with in the
control of that module
e) Define module whose function is predictable
f) Provide valid pathological connection from one
module to other module

Dr.D.M.D.Preethi,ASP/CSE 18
Design Documentation

 Design is a meaningful representation of software to


be built, which can be traced to a customer
requirements that should focus on Data,
Architecture, Interface & component level design.

 Design documentation is the specification of data


design, architectural design, interface and
component level design
 It provides 2 purposes
 To establish all requirements that are satisfied by the
software design
 To indicate the initial component to the implementation

Dr.D.M.D.Preethi,ASP/CSE 19
Architectural Design

 Architectural Design represents the structure of


data & needed program components to build a
computer based system

 This design considers


 Architectural style of a system
 Structure and properties of a system
 Inter relationship that occurs among the components

Dr.D.M.D.Preethi,ASP/CSE 20
Architectural Design

 Steps involved
 It begins with data design and proceeds to one or more
representation of architectural structure of the system
suited to customer requirements.
 Later this architecture is elaborated using architectural
design method
 Software Architecture - ?

 Effective software architecture provides 3 purposes


 To analyze the effectiveness of the design in meeting
customer requirements
 To consider alternatives in architecture during the changes
in requirement
 To reduce the risk associated during the construction of the
software

Dr.D.M.D.Preethi,ASP/CSE 21
Architectural Design

 Software Architecture – provides 2 levels of design


 Data Design
 Architectural Design

 Importance of Software Architecture


 It enables the communication between all the parties who
involved in the development of software
 It constitutes small & intellectual model that should
exhibit how a system is structured

Dr.D.M.D.Preethi,ASP/CSE 22
Architectural Design

 Data Design
 It creates a model for a data that is represented
from the user view of data which is in higher level
of abstraction later it can be implemented into a
representation

 Primary activity of this design is to select logical


representation of data objects identified during
requirement definition

 Later appropriate problem module must be


identified based on a logical function

Dr.D.M.D.Preethi,ASP/CSE 23
Architectural Design

 Principles of Data Design


 The systematic analysis principles must be applied
to each functions & its behavior must be applied to
its data objects
 All the needed data structure & its operations on
different objects must be identified
 A data dictionary must be established & used to
define data and program design
 The representation of data structure should be
known to specific modules
 Library of useful data structure & operation must be
applied
 Software design and the selected programming
language must support the specification of ADT

Dr.D.M.D.Preethi,ASP/CSE 24

You might also like