Table of Contents
Cohesion Modularity Patterns for Scalable Software Architecture?
Cohesion, modularity, and design patterns enable flexible, maintainable software by promoting focused modules, independent components, and proven architectural solutions.
Question
Select all the design principles that contribute to creating flexible and maintainable software systems.
A. Cohesion
B. Modularity
C. Design patterns
D. Global variables
E. Coupling
Answer
A. Cohesion
B. Modularity
C. Design patterns
Explanation
Cohesion ensures modules focus on single, related responsibilities, making code easier to understand, test, and modify independently, directly contributing to maintainability. Modularity decomposes systems into self-contained, interchangeable units that support parallel development, reuse, and scalability while isolating changes. Design patterns provide proven, flexible blueprints—like Factory or Observer—for common problems, enabling extensible architectures that evolve without disruption. Coupling (E) undermines flexibility when high, as tight dependencies amplify change impacts, while global variables (D) create hidden state mutations that erode predictability and debugging.