SlideShare a Scribd company logo
1 of 53
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
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
What is external 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.

More Related Content

Similar to "Design Phase: A Deep Dive into Software Design and Development"

4 B-Coupling and Cohesion-1.pptx
4 B-Coupling and Cohesion-1.pptx4 B-Coupling and Cohesion-1.pptx
4 B-Coupling and Cohesion-1.pptxzeenatparveen24
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basicsghayour abbas
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9Dhairya Joshi
 
Unit3 Software engineering UPTU
Unit3 Software engineering UPTUUnit3 Software engineering UPTU
Unit3 Software engineering UPTUMohammad Faizan
 
Software Design abtic.pptx
Software Design abtic.pptxSoftware Design abtic.pptx
Software Design abtic.pptxssuser8c0d24
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesionSutha31
 
software engineering
software engineeringsoftware engineering
software engineeringAbinaya B
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and ModularityDanyal Ahmad
 
Software Engineering Unit 3 PPT Software Design
Software Engineering Unit 3 PPT Software DesignSoftware Engineering Unit 3 PPT Software Design
Software Engineering Unit 3 PPT Software Designmayanksingh678141
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
 
what is the relationship between information hiding as an attribute .pdf
what is the relationship between information hiding as an attribute .pdfwhat is the relationship between information hiding as an attribute .pdf
what is the relationship between information hiding as an attribute .pdfinfo309708
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software EngineeringPurvik Rana
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxmccormicknadine86
 

Similar to "Design Phase: A Deep Dive into Software Design and Development" (20)

software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
4 B-Coupling and Cohesion-1.pptx
4 B-Coupling and Cohesion-1.pptx4 B-Coupling and Cohesion-1.pptx
4 B-Coupling and Cohesion-1.pptx
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Unit 3
Unit 3Unit 3
Unit 3
 
software engineering
software engineeringsoftware engineering
software engineering
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basics
 
Design1
Design1Design1
Design1
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
 
Unit 2
Unit 2Unit 2
Unit 2
 
SE UNIT-3.pdf
SE UNIT-3.pdfSE UNIT-3.pdf
SE UNIT-3.pdf
 
Unit3 Software engineering UPTU
Unit3 Software engineering UPTUUnit3 Software engineering UPTU
Unit3 Software engineering UPTU
 
Software Design abtic.pptx
Software Design abtic.pptxSoftware Design abtic.pptx
Software Design abtic.pptx
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesion
 
software engineering
software engineeringsoftware engineering
software engineering
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 
Software Engineering Unit 3 PPT Software Design
Software Engineering Unit 3 PPT Software DesignSoftware Engineering Unit 3 PPT Software Design
Software Engineering Unit 3 PPT Software Design
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
what is the relationship between information hiding as an attribute .pdf
what is the relationship between information hiding as an attribute .pdfwhat is the relationship between information hiding as an attribute .pdf
what is the relationship between information hiding as an attribute .pdf
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docx
 

Recently uploaded

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
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
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
 
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
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesPrabhanshu Chaturvedi
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
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
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
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
 
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
 

Recently uploaded (20)

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
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
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
 
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...
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and Properties
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
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
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
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...
 
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...
 

"Design Phase: A Deep Dive into Software Design and Development"

  • 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
  • 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.
  • 32. Classes of coupling content common stamp control data Degree of coupling What is external coupling?
  • 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.