Академический Документы
Профессиональный Документы
Культура Документы
Software Design
INTRODUCTION
A design of a system is essentially a blueprint or a plan for a
solution for the system.
Here , we consider a system to be a set of modules with clearly
defined behavior which interact with each other in a defined
manner to produce some behavior or services for its
environment .
The design process for the software has two levels :
Top
level design
Detailed
design
SoftwareEngineering
SoftwareDesign
Slide2
Top
SoftwareEngineering
SoftwareDesign
Slide3
DESIGN METHODOLOGY
TYPES :
1) STRUCTURE DESIGN METHODOLOGY:
It focuses on function oriented method.
2) OBJECT ORIENTED DESIGN METHODOLOGY :
It focuses on object oriented method.
SoftwareEngineering
SoftwareDesign
Slide4
Stages of Design
Problem understanding
SoftwareEngineering
SoftwareDesign
Slide5
DESIGN PRINCIPLES
SoftwareEngineering
SoftwareDesign
Slide6
SoftwareEngineering
SoftwareDesign
Slide7
ABSTRACTION
SoftwareEngineering
SoftwareDesign
Slide8
Modularity
SoftwareEngineering
SoftwareDesign
Slide9
design
SoftwareEngineering
SoftwareDesign
Slide10
Bottom-up design
SoftwareEngineering
SoftwareDesign
Slide11
SoftwareEngineering
SoftwareDesign
Slide12
INTRODUCTION
SoftwareEngineering
SoftwareDesign
Slide13
Coupling
No dependencies
Loosely coupled
some dependencies
Highly coupled
many dependencies
14
SoftwareEngineering
SoftwareDesign
Slide14
Tight Coupling
Module A
Module B
Module C
Module D
Shared data
area
SoftwareEngineering
SoftwareDesign
Slide15
Loose Coupling
Module A
As data
Module B
Module C
Bs data
Cs data
Module D
Ds data
SoftwareEngineering
SoftwareDesign
Slide16
Type of Coupling
High Coupling
Loose
Content
Common
External
Control
Stamp
Data
Uncoupled
Low
SoftwareEngineering
Avoid
SoftwareDesign
Try to achieve
Slide17
Cohesion
Definition
SoftwareEngineering
SoftwareDesign
Slide18
Type of Cohesion
High Cohesion
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
Low
SoftwareEngineering
SoftwareDesign
Slide19
Coincidental Cohesion
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
SoftwareEngineering
SoftwareDesign
Slide20
Example
1.
2.
3.
4.
SoftwareEngineering
SoftwareDesign
Slide21
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
Logical Cohesion
SoftwareEngineering
SoftwareDesign
Slide22
Example
Improvement?
SoftwareEngineering
SoftwareDesign
Slide23
Temporal Cohesion
Notifies user
SoftwareEngineering
SoftwareDesign
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
Slide24
Example
SoftwareEngineering
SoftwareDesign
Slide25
Procedural Cohesion
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
...
Write output record
Read new input record
Pad input with spaces
Return new record
...
SoftwareEngineering
SoftwareDesign
Slide26
Communicational Cohesion
Examples:
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
SoftwareEngineering
SoftwareDesign
Slide27
Sequential Cohesion
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
Good situation
SoftwareEngineering
SoftwareDesign
Slide28
Functional Cohesion
Ideal situation
SoftwareEngineering
SoftwareDesign
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
Slide29
Examples of Cohesion
Function A
Function Function
B
C
Functio Function
n
E
D
Coincidental
Parts unrelated
logic
Function A
Time t0
Function A
Time t0 + X
Function A
Logical
Similar functions
Time t0 + 2X
Temporal
Related by time
Function A
Function B
Function C
Procedural
SoftwareDesign
Slide30
Function A
Function B
Function B
Function C
Function C
Communicational
Sequential
Functional
SoftwareDesign
Slide31
SoftwareEngineering
SoftwareDesign
Slide32
Step 4: Choose the alternative that helps you to best meet your
objectives.
SoftwareEngineering
SoftwareDesign
Slide33
THANKING
YOU
SoftwareEngineering
SoftwareDesign
Slide34