n The logical components of the design should
correspond to physically separate syntactic
software components.
n Modules should be self-contained and coherent.
n Cohesion is a measure of the degree to which a
module completely encapsulates a single notion
(a facet of the system’s functionality or data).
n Coupling is a measure of the degree to which a
module interacts with and depends on other
modules.
n We want to design modules with high cohesion
and weak coupling.