Coupling — dependency between modules. Cohesion — internal strength of a module.
Coupling (inter-module):
Low Coupling:
Module A → API → Module B
(communicate via interface)
High Coupling:
Module A directly accesses Module B internals
(tight dependency)
Cohesion (intra-module):
High Cohesion:
UserService: login, logout, register
(all auth-related)
Low Cohesion:
UserService: login, sendEmail, calculateTax
(unrelated responsibilities)
Goal: Low coupling, high cohesion.