SlideShare a Scribd company logo
1 of 55
Software Design
Introduction
Design phase transforms SRS
document:
into a form easily implementable in
some programming language.
SRS Document
Design Activities
Design Documents
Items Designed During
Design Phase
1. module structure,
2. control relationship among the modules
3. interface among different modules,
data items exchanged among different
modules,
4. data structures of individual modules,
5. algorithms for individual modules.
Module Structure
Introduction
A module consists of:
1. several functions
2. associated data structures.
Data
Functions
D1 ..
D2 ..
D3 ..
F1 ..
F2 ..
F3 ..
F4 ..
F5 ..
Introduction
Design activities are usually classified into
two stages:
1. preliminary (or high-level) design
2. detailed design.
High-level design
Identify:
1. modules
2. control relationships among modules
3. interfaces among modules.
d1 d2
d3 d1 d4
High-level design
The outcome of high-level design:
program structure (or software
architecture).
Detailed design
For each module, design:
1. data structure
2. algorithms
Outcome of detailed design:
module specification.
What Is Good Software
Design?
Correctness: Should implement all
functionalities of the system correctly.
Understandable: Should be easily
understandable.
Should be efficient.
Maintainability: Should be easily
able to change
What Is Good Software
Design?
Understandability of a design
is a major issue:
determines goodness of design:
a design that is easy to
understand: also easy to
maintain and change.
What Is Good Software
Design?
Unless a design is easy to understand,
tremendous effort needed to maintain it.
We already know that about 60% effort is
spent in maintenance.
If the software is not easy to understand:
maintenance effort would increase many
times.
Understandability
--Use consistent and meaningful names
for various design components,
--Design solution should consist of:
a cleanly decomposed set of modules
(modularity),
--Different modules should be neatly
arranged in a hierarchy:
in a neat tree-like diagram.
*** Means understandable design is modular
and layered
Modularity
Modularity is a fundamental attribute
of any good design.
Decomposition of a problem cleanly into
modules:
1. Modules are almost independent of
each other
2. divide and conquer principle.
Modularity
If modules are independent:
modules can be understood
separately.
reduces the complexity greatly.
Example of Cleanly and
Non-cleanly Decomposed
Modules
Modularity
In technical terms, modules should
display:
1. high cohesion
2. low coupling.
Cohesion and Coupling
Cohesion is a measure of:
functional strength of a module.
A cohesive module performs a single
task or function.
Coupling between two modules:
a measure of the degree of
interdependence or interaction
between the two modules.
Cohesion and Coupling
A module having high cohesion
and low coupling:
functionally independent of other
modules:
A functionally independent module
has minimal interaction with other
modules.
Advantages of Functional
Independence
Better understandability and good
design:
Complexity of design is reduced,
Different modules easily understood
in isolation:
modules are independent
Advantages of Functional
Independence
Functional independence reduces
error propagation.
degree of interaction between
modules is low.
an error existing in one module does
not directly affect other modules.
Reuse of modules is possible.
Classification of
Cohesiveness
coincidental
logical
temporal
procedural
sequential
communicational
functional
Degree of
cohesion
Coincidental cohesion
The module performs a set of tasks:
which relate to each other very loosely,
if at all.
the module contains a random collection
of functions.
functions have been put in the module
out of pure coincidence without any
thought or design.
Example of coincidental
cohesion
Module Name: Random-operations
Functions:
Issue-book
create member
request librarian leave
Logical cohesion
All elements of the module perform
similar operations such as error
handling, data input, data output,
etc.
Example: a module containing set of
print functions for generating
reports such as grade sheet, salary
slip, annual reports etc.
Temporal cohesion
The module contains functions that are
related by the fact that all the functions
must be executed in the same time span.
Example: Booting process of system, start-up
and shut-down of system
Procedural cohesion
If the set of functions of the module all
part of a procedure (algorithm) in which
certain sequence of steps have to be
carried out in a certain order for achieving
an objective. These functions may work
towards different purpose and operate on
different data.
e.g. 1. algorithm for decoding a message.
2. order processing module by sales clerk
containing login(), check-order(), print-bill(),
place-order-to-vendor(), update-inventory().
Communicational
cohesion
If All functions of the module
Refer-to or update the same data
structure.
Example:
the set of functions defined on an
array or a stack. Admit-students,
enter-marks, printgradesheet etc
Sequential cohesion
If the Elements of a module forms
different parts of a sequence,
output from one element of the
sequence is input to the next.
Example: sort
search
display
Functional cohesion
If the Different elements of a
module cooperate to achieve a
single task.
Example: 1. a module containing all the
functions required to manage employees’s
payroll shows functional cohesion
2. Module-name: managing-book-lending
Functions: issue-book, return-book, query-
book
Coupling
Coupling indicates:
how closely two modules interact
or how interdependent they are.
The degree of coupling between
two modules depends on their
interface complexity.
Classes of coupling
content
common
stamp
control
data
Degree of
coupling
Data coupling
Two modules are data coupled,
if they communicate by an
elementary data item that is
passed as a parameter between
the two, eg an integer, a float,
character etc.
Stamp coupling
Two modules are stamp coupled,
if they communicate via a
composite data item:
such as a record in PASCAL
or a structure in C.
Control coupling
It exists between two modules.
If Data from one module is used
to direct order of instruction
execution in another.
Example of control coupling:
a flag set in one module and tested
in another module.
Common Coupling
Two modules are common
coupled, if they share some
global data items.
Content coupling
Content coupling exists between two
modules:
if they share code,
e.g, jump from one module into the
code of another module.
The degree of coupling increases
from data coupling to content coupling.
Neat Hierarchy
Control hierarchy represents organization of
modules. control hierarchy is also called
program structure.
Characteristics of
Module Structure
Depth:
number of levels of control
Fan-out:
a measure of the number of modules
directly controlled by given module.
Module Structure
Fan out=2
Fan out=1
Fan in=2
Fan out=0
Goodness of Design
A design having modules:
with high fan-out numbers is not a
good design:
a module having high fan-out lacks
cohesion.
Visibility and Layering
A module A is said to be visible by
another module B,
if A directly or indirectly calls B.
The layering principle requires
modules at a layer can call only the
modules immediately below it.
Bad Design
Abstraction
The principle of abstraction
requires:
lower-level modules do not invoke
functions of higher level modules.
Also known as layered design.
High-level Design
High-level design maps functions into
modules {fi} {mj} such that:
1. Each module has high cohesion
2. Coupling among modules is as low as
possible
3. Modules are organized in a neat
hierarchy
Design Approaches
Two fundamentally different
software design approaches:
Function-oriented design
Object-oriented design
Function-Oriented
Design
A system is looked upon as something
that performs a set of functions.
Starting at this high-level view of the
system:
each function is successively refined into
more detailed functions.
Functions are mapped to a module
structure.
Function-Oriented
Design
Each subfunction:
split into more detailed subfunctions
and so on.
Object-Oriented Design
System is viewed as a collection
of objects (i.e. entities).
each object manages its own state
information.
Object-Oriented Design
Example
Library Automation Software:
each library member is a
separate object with its own
data and functions.
Functions defined for one
object:
cannot directly refer to or change
data of other objects.
Object-Oriented Design
Objects have their own internal data:
defines their state.
Similar objects constitute a class.
each object is a member of some
class.
Classes may inherit features from
a super class.
Conceptually, objects communicate
by message passing.
Object-Oriented versus
Function-Oriented Design
Unlike function-oriented design,
in OOD the basic abstraction is not
functions such as “sort”,
“display”, “track”, etc.,
but real-world entities such as
“employee”, “picture”, “machine”,
“radar system”, etc.
Object-Oriented versus
Function-Oriented Design
In OOD:
software is not developed by
designing functions such as:
1. update-employee-record,
2. get-employee-address, etc.
but by designing objects such as:
1. employees,
2. departments, etc.
Summary
We characterized the features of a
good software design by
introducing the concepts of:
fan-in, fan-out,
cohesion, coupling,
abstraction, etc.
Summary
Two fundamentally different
approaches to software design:
function-oriented approach
object-oriented approach

More Related Content

Similar to 5.Software Design.ppt

UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxLeahRachael
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesionSutha31
 
System software design1
System software design1System software design1
System software design1PrityRawat2
 
software engineering
software engineeringsoftware engineering
software engineeringAbinaya B
 
Software Design abtic.pptx
Software Design abtic.pptxSoftware Design abtic.pptx
Software Design abtic.pptxssuser8c0d24
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Cohesion and coupling in software design
Cohesion and coupling in software designCohesion and coupling in software design
Cohesion and coupling in software designAhmed Saad Khames
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basicsghayour abbas
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteriaUmaselvi_R
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 

Similar to 5.Software Design.ppt (20)

UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesion
 
System software design1
System software design1System software design1
System software design1
 
software engineering
software engineeringsoftware engineering
software engineering
 
Unit 2
Unit 2Unit 2
Unit 2
 
software engineering
software engineeringsoftware engineering
software engineering
 
Software Design abtic.pptx
Software Design abtic.pptxSoftware Design abtic.pptx
Software Design abtic.pptx
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
PMSE pdf
PMSE pdfPMSE pdf
PMSE pdf
 
Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
 
Unit 3
Unit 3Unit 3
Unit 3
 
Cohesion and coupling in software design
Cohesion and coupling in software designCohesion and coupling in software design
Cohesion and coupling in software design
 
Encapsulation
EncapsulationEncapsulation
Encapsulation
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basics
 
6-Design.ppt
6-Design.ppt6-Design.ppt
6-Design.ppt
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
6&8-Design.ppt
6&8-Design.ppt6&8-Design.ppt
6&8-Design.ppt
 
Slides chapter 11
Slides chapter 11Slides chapter 11
Slides chapter 11
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 

Recently uploaded

Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 

Recently uploaded (20)

Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 

5.Software Design.ppt

  • 2. Introduction Design phase transforms SRS document: into a form easily implementable in some programming language. SRS Document Design Activities Design Documents
  • 3. Items Designed During Design Phase 1. module structure, 2. control relationship among the modules 3. interface among different modules, data items exchanged among different modules, 4. data structures of individual modules, 5. algorithms for individual modules.
  • 5. Introduction A module consists of: 1. several functions 2. associated data structures. Data Functions D1 .. D2 .. D3 .. F1 .. F2 .. F3 .. F4 .. F5 ..
  • 6. Introduction Design activities are usually classified into two stages: 1. preliminary (or high-level) design 2. detailed design.
  • 7. High-level design Identify: 1. modules 2. control relationships among modules 3. interfaces among modules. d1 d2 d3 d1 d4
  • 8. High-level design The outcome of high-level design: program structure (or software architecture).
  • 9. Detailed design For each module, design: 1. data structure 2. algorithms Outcome of detailed design: module specification.
  • 10. What Is Good Software Design? Correctness: Should implement all functionalities of the system correctly. Understandable: Should be easily understandable. Should be efficient. Maintainability: Should be easily able to change
  • 11. What Is Good Software Design? Understandability of a design is a major issue: determines goodness of design: a design that is easy to understand: also easy to maintain and change.
  • 12. What Is Good Software Design? Unless a design is easy to understand, tremendous effort needed to maintain it. We already know that about 60% effort is spent in maintenance. If the software is not easy to understand: maintenance effort would increase many times.
  • 13. Understandability --Use consistent and meaningful names for various design components, --Design solution should consist of: a cleanly decomposed set of modules (modularity), --Different modules should be neatly arranged in a hierarchy: in a neat tree-like diagram. *** Means understandable design is modular and layered
  • 14. Modularity Modularity is a fundamental attribute of any good design. Decomposition of a problem cleanly into modules: 1. Modules are almost independent of each other 2. divide and conquer principle.
  • 15. Modularity If modules are independent: modules can be understood separately. reduces the complexity greatly.
  • 16. Example of Cleanly and Non-cleanly Decomposed Modules
  • 17. Modularity In technical terms, modules should display: 1. high cohesion 2. low coupling.
  • 18. Cohesion and Coupling Cohesion is a measure of: functional strength of a module. A cohesive module performs a single task or function. Coupling between two modules: a measure of the degree of interdependence or interaction between the two modules.
  • 19. Cohesion and Coupling A module having high cohesion and low coupling: functionally independent of other modules: A functionally independent module has minimal interaction with other modules.
  • 20. Advantages of Functional Independence Better understandability and good design: Complexity of design is reduced, Different modules easily understood in isolation: modules are independent
  • 21. Advantages of Functional Independence Functional independence reduces error propagation. degree of interaction between modules is low. an error existing in one module does not directly affect other modules. Reuse of modules is possible.
  • 23. Coincidental cohesion The module performs a set of tasks: which relate to each other very loosely, if at all. the module contains a random collection of functions. functions have been put in the module out of pure coincidence without any thought or design.
  • 24. Example of coincidental cohesion Module Name: Random-operations Functions: Issue-book create member request librarian leave
  • 25. Logical cohesion All elements of the module perform similar operations such as error handling, data input, data output, etc. Example: a module containing set of print functions for generating reports such as grade sheet, salary slip, annual reports etc.
  • 26. Temporal cohesion The module contains functions that are related by the fact that all the functions must be executed in the same time span. Example: Booting process of system, start-up and shut-down of system
  • 27. Procedural cohesion If the set of functions of the module all part of a procedure (algorithm) in which certain sequence of steps have to be carried out in a certain order for achieving an objective. These functions may work towards different purpose and operate on different data. e.g. 1. algorithm for decoding a message. 2. order processing module by sales clerk containing login(), check-order(), print-bill(), place-order-to-vendor(), update-inventory().
  • 28. Communicational cohesion If All functions of the module Refer-to or update the same data structure. Example: the set of functions defined on an array or a stack. Admit-students, enter-marks, printgradesheet etc
  • 29. Sequential cohesion If the Elements of a module forms different parts of a sequence, output from one element of the sequence is input to the next. Example: sort search display
  • 30. Functional cohesion If the Different elements of a module cooperate to achieve a single task. Example: 1. a module containing all the functions required to manage employees’s payroll shows functional cohesion 2. Module-name: managing-book-lending Functions: issue-book, return-book, query- book
  • 31. Coupling Coupling indicates: how closely two modules interact or how interdependent they are. The degree of coupling between two modules depends on their interface complexity.
  • 33. Data coupling Two modules are data coupled, if they communicate by an elementary data item that is passed as a parameter between the two, eg an integer, a float, character etc.
  • 34. Stamp coupling Two modules are stamp coupled, if they communicate via a composite data item: such as a record in PASCAL or a structure in C.
  • 35. Control coupling It exists between two modules. If Data from one module is used to direct order of instruction execution in another. Example of control coupling: a flag set in one module and tested in another module.
  • 36. Common Coupling Two modules are common coupled, if they share some global data items.
  • 37. Content coupling Content coupling exists between two modules: if they share code, e.g, jump from one module into the code of another module. The degree of coupling increases from data coupling to content coupling.
  • 38. Neat Hierarchy Control hierarchy represents organization of modules. control hierarchy is also called program structure.
  • 39. Characteristics of Module Structure Depth: number of levels of control Fan-out: a measure of the number of modules directly controlled by given module.
  • 40. Module Structure Fan out=2 Fan out=1 Fan in=2 Fan out=0
  • 41. Goodness of Design A design having modules: with high fan-out numbers is not a good design: a module having high fan-out lacks cohesion.
  • 42. Visibility and Layering A module A is said to be visible by another module B, if A directly or indirectly calls B. The layering principle requires modules at a layer can call only the modules immediately below it.
  • 44. Abstraction The principle of abstraction requires: lower-level modules do not invoke functions of higher level modules. Also known as layered design.
  • 45. High-level Design High-level design maps functions into modules {fi} {mj} such that: 1. Each module has high cohesion 2. Coupling among modules is as low as possible 3. Modules are organized in a neat hierarchy
  • 46. Design Approaches Two fundamentally different software design approaches: Function-oriented design Object-oriented design
  • 47. Function-Oriented Design A system is looked upon as something that performs a set of functions. Starting at this high-level view of the system: each function is successively refined into more detailed functions. Functions are mapped to a module structure.
  • 48. Function-Oriented Design Each subfunction: split into more detailed subfunctions and so on.
  • 49. Object-Oriented Design System is viewed as a collection of objects (i.e. entities). each object manages its own state information.
  • 50. Object-Oriented Design Example Library Automation Software: each library member is a separate object with its own data and functions. Functions defined for one object: cannot directly refer to or change data of other objects.
  • 51. Object-Oriented Design Objects have their own internal data: defines their state. Similar objects constitute a class. each object is a member of some class. Classes may inherit features from a super class. Conceptually, objects communicate by message passing.
  • 52. Object-Oriented versus Function-Oriented Design Unlike function-oriented design, in OOD the basic abstraction is not functions such as “sort”, “display”, “track”, etc., but real-world entities such as “employee”, “picture”, “machine”, “radar system”, etc.
  • 53. Object-Oriented versus Function-Oriented Design In OOD: software is not developed by designing functions such as: 1. update-employee-record, 2. get-employee-address, etc. but by designing objects such as: 1. employees, 2. departments, etc.
  • 54. Summary We characterized the features of a good software design by introducing the concepts of: fan-in, fan-out, cohesion, coupling, abstraction, etc.
  • 55. Summary Two fundamentally different approaches to software design: function-oriented approach object-oriented approach