A software design is highly modular if :
2015
A software design is highly modular if :
- A.
cohesion is functional and coupling is data type
- B.
cohesion is coincidental and coupling is data type
- C.
cohesion is sequential and coupling is content type
- D.
cohesion is functional and coupling is stamp type
Attempted by 273 students.
Show answer & explanation
Correct answer: A
Answer: cohesion is functional and coupling is data type
Why this is correct: High modularity requires that modules are internally focused on a single responsibility (high cohesion) and interact with other modules through well-defined, minimal interfaces (low coupling). Functional cohesion is a strong form of cohesion, and data coupling is a low (desirable) form of coupling.
Functional cohesion: All parts of the module work together to perform a single task. This makes modules easy to understand, test, and reuse.
Data coupling: Modules communicate by passing only the data they need (parameters), avoiding shared global state or direct access to internal details. This minimizes inter-module dependencies.
Coincidental cohesion (why it's wrong): Groups unrelated responsibilities into one module, making it hard to maintain and reuse.
Content coupling (why it's wrong): One module directly accesses another module's internal data or logic. This creates tight dependency and breaks modular boundaries.
Stamp coupling (why it's less desirable than data coupling): Modules pass composite data structures and only use parts of them, which can create implicit dependencies and stronger coupling than passing only the necessary data.
Conclusion: Choosing functional cohesion (strongest useful cohesion) together with data coupling (one of the weakest, most desirable forms of coupling) results in a highly modular design.
A video solution is available for this question — log in and enroll to watch it.