Which of the following represents the best programming?
A.
Low cohesion, low coupling
B.
Low cohesion, high coupling
C.
High cohesion, low coupling
D.
High cohesion, high coupling
Explanation:
Cohesion reflects how many different types of tasks a module can carry out. If a module carries out only one
task (i.e., subtraction) or several tasks that are very similar (i.e., subtract, add, multiply), it is described as
having high cohesion, which is a good thing. The higher the cohesion, the easier it is to update or modify and
not affect other modules that interact with it. This also means the module is easier to reuse and maintain
because it is more straightforward when compared to a module with low cohesion.Coupling is a measurement that indicates how much interaction one module requires to carry out its tasks. If a
module has low (loose) coupling, this means the module does not need to communicate with many other
modules to carry out its job. High (tight) coupling means a module depends upon many other modules to carry
out its tasks. Low coupling is more desirable because the modules are easier to understand, easier to reuse,
and changes can take place and not affect many modules around it. Low coupling indicates that the
programmer created a well-structured module.
Incorrect Answers:
A: With low cohesion it is harder to update a module of the program.
B: With low cohesion it is harder to update a module of the program. High coupling would make the modules of
the program harder to understand and harder to reuse.
D: High coupling would make the modules of the program harder to understand and harder to reuse.Conrad, Eric, Seth Misenar and Joshua Feldman, CISSP Study Guide, 2nd Edition, Syngress, Waltham, 2012,
pp. 1138-1139