Fundamental Design Concepts (PSE SE)
Fundamental Design Concepts (PSE SE)
Fundamental Design Concepts (PSE SE)
DFD
Data
DOD ERD dictionary
STD
CSPEC
Component-
level design
Interface design
Architectural design
Quality
Translate
customer
requirements
Representations
of SW
Design Process
External
requirements Requirements
1. Identify
nature of specification
requirement
2. Analyse
& build
model of
Functional problem
specification
3.postulate
Functional
a design
solution specification
Seek new
4.validate Mismatches
solution
Designer’s solution between
model model &
requirement
Design
6.implement ‘blueprints Designer’s
’ 5.refine
solution model
design
solution
Design Guidelines
Abstraction –
Information
data, procedure,
hiding– controlled
control
interfaces
Refinement – Procedure –
elaboration of detail algorithms that
for all abstractions achieve function
1. Abstraction
2. Refinement
3. Modularity
• system is decomposed into a number of modules
• software architecture and design patterns embody modularity
• 5 criteria to evaluate a design method with respect to its ability to
define effective modular system [meyer,88]
i. modular decomposability
- provides a systematic approach for decomposing the problem
into subproblems
ii. modular composability
- enables existing(reusable) design components to be
assembled into a new system
o
Design Concepts…cont
4. Architecture
SW architecture
Control
Data
hierarchy
structure
Structural
partitioning
SW Architecture-
Control Hierarchy
o horizontal partitioning
§ defines separate branches of the modular
hierarchy for each major program function
§ defines 3 partition = Input, Process, Output
§ benefits :
· easy to test SW
· easy to maintain SW
· propagation of fewer side effects
· easy to extend SW
§ drawback: causes more data to be passed
across module interfaces, complicate overall
control of program flow
SW Architecture - Structural Partitioning
5. Procedure
focuses on the processing details of each
module
a precise specification of processing
Design Concepts…cont
6. Information Hiding
modules should be specified & designed so
that information (procedure & data) contained
within a module in inaccessible to other
modules that have no need for such
information
Effective Modular Design
Concept of functional independence is a direct
outgrowth of :
Information
modularity hiding
Terminology to
describe interactions
between modules
Effective Modular Design…cont
COHESION
a cohesive module perform a single task.
Describes the nature of interactions within a SW module
Various types of cohesion :
LOW cohesion(undesirable) HIGH cohesion (desirable)
Types of cohesion
functional
coincidental
logical communicational
temporal
Effective Modular Design…cont
• Coincidental :
grouped into modules in a haphazard way
no relationship between component
• Logical :
Perform a set of logically similar functions
Example : function => output anything
Perform output operations :
• Temporal :
Performs a set of functions whose only
relationship is that they have to be carried out at
the same time
Example : set of initialization operations
Clear screen
Open file
Initialize total
Design Concepts…cont
• Communicational :
Acting on common data are grouped together
Example :
i) displays and logs temperature
ii) formats and prints total price
• Functional :
Optimal type of cohesion
Performs single, well-defined action
Example :
i) calculate average
ii) print result
Effective Modular Design…cont
COUPLING
2. Common coupling
3. External coupling
4. Control coupling
5. Stamp coupling
a d i
Data Control
Data flag
structure (Var)
e
b c j k
f g h
Global data
area
Structure Chart (SC)
Is a ‘top-down’ method
- it starts with the overall
task of the program
Source of Materials :
Pressman, R. (2003). Software Engineering: A
Practitioner's Approach. 6th & 5th edition. New
York: McGraw-Hill.
Somerville I. (2001). Software Engineering. 6th
edition. Addison Wesley