Skip to Content

What Defines Well-Designed Software Modules Characteristics?

High Cohesion Low Coupling Clear Interfaces Best Practices?

Well-designed software modules feature high cohesion, clear interfaces, and low coupling for maintainability, contrasting with problematic global state and rigid dependencies.

Question

Which of the following are characteristics of a well-designed software module?

A. High cohesion
B. Global state management
C. Clear interface
D. Rigid dependencies
E. Low coupling

Answer

A. High cohesion
C. Clear interface
E. Low coupling

Explanation

High cohesion (A) ensures a module’s elements work together toward a single, focused purpose, making it easier to understand, test, and modify without unintended side effects. A clear interface (C) defines precise inputs, outputs, and behaviors through well-documented APIs or contracts, enabling reliable integration while hiding internal complexity. Low coupling (E) minimizes dependencies on other modules, allowing independent evolution and reducing ripple effects from changes.

Global state management (B) introduces hidden dependencies that complicate debugging and testing, while rigid dependencies (D) create tight couplings that hinder flexibility and reusability.