Consider the following statements regarding software architecture:
S1: Coupling is a measure of how well the things grouped together in a module belong together logically.
S2: Cohesion is a measure of the degree of interaction between software modules.
S3: If coupling is low and cohesion is high then it is easier to change one module without affecting others.
Which of the following is true?
Pick an option to check yourself, or open the answer below.
Show answer & explanation
Correct answer: B. Only S3
Explanation
S1 and S2 have their definitions swapped. Cohesion — not coupling — measures how well the elements grouped inside a single module belong together logically, and coupling — not cohesion — measures the degree of interdependence or interaction between modules. So both S1 and S2 are false as written. S3 is the correct design heuristic: with low coupling a module has few dependencies on others, and with high cohesion its internal parts serve one purpose, so a change can be made locally without rippling outwards. Only S3 is true, giving option 2.More Programming Languages and Computer Graphics questions
- A software design pattern used to enhance the functionality of an object at run-time is:
- Module design is used to maximize cohesion and minimize coupling. Which of the following is the key to implement this rule?
- The design concept 'Refinement' is a:
- A software design is highly modular if:
- Cohesion is an extension of:
- Given 4 GB (≈ 4.3 × 10⁹ bytes) of virtual address space and a page size of 4 KB (= 4 × 10³ bytes), with each page table entry 5 bytes: how…