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