A software design is highly modular if :

2015

A software design is highly modular if :

  1. A.

    cohesion is functional and coupling is data type

  2. B.

    cohesion is coincidental and coupling is data type

  3. C.

    cohesion is sequential and coupling is content type

  4. 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.

Explore the full course: Mppsc Assistant Professor