Professional Documents
Culture Documents
Lecture 03B - Software Design Principles
Lecture 03B - Software Design Principles
Table of Contents
2
General Design Principles
1. Modularization
2. Abstraction
3. Encapsulation
4. Coupling
5. Cohesion
6. Separation of interface and implementation
7. Sufficiency
8. Completeness
5
Principle # 1 Modularization
Modularization is the process of continuous decomposition
of the software system until fine-grained components are
created.
7
Principle # 3 Encapsulation
– One can think of information hiding as the
principle and encapsulation as the technique
11
Principle # 4 Coupling
The The
higher higher
the coupling the
dependency
18
Principle # 5 Cohesion
– The manner and degree to which the tasks
performed by a single software module are
related to one another.
28
Principle # 6 ENCAPSULATION
“ During encapsulation, interfaces are created to provide public
access to services provided by the design unit while hiding
unnecessary details, which include implementation.
44
– Sufficiency
PRINCIPLE # 7&8: measures how well
COMPLETENESSAND the designed units
are at providing
SUFFICIENCY only the services
that are sufficient
for achieving the
intent (no more).
– Completeness
measures how well
designed units
provide the required
services to achieve
the intent (no less).
45
Completenessandsufficiency
Designforminimizingcomplexity
Designforchange
49