This document discusses the concepts of cohesion and coupling in software engineering. It defines cohesion as a measure of how closely related elements within a module are to each other, and coupling as a measure of the connections between modules. There are seven types of cohesion discussed from weakest to strongest: coincidental, logical, temporal, procedural, communicational, informational, and functional. Functional cohesion, where a module performs a single well-defined task, is considered the ideal. Strong cohesion and loose coupling, where modules are highly independent, leads to better design. The document provides examples and analysis of each cohesion type.
Related topics: