Problem Statement
Explain how you would apply the principles of coupling and cohesion when designing a software system and why this matters for long-term maintenance.
Explanation
When designing a software system you first identify logical modules based on functional grouping so that each module is cohesive: it has one clear responsibility and its internal elements work together. Then you design module interfaces so that dependencies between modules are minimal, achieving low coupling. /n/n This matters for long-term maintenance because changes, bug-fixes and extensions are easier to apply when modules are well defined: a change in one module rarely forces changes in many others. It also improves reusability, testability and team coordination. Applying these principles shows you understand maintainable software architecture.
Practice Sets
This question appears in the following practice sets: