Cohesion and Coupling
Cohesion and coupling are related concepts.
Cohesion
high cohesion is good
functional cohesion (a module has functional cohesion if it performs exactly one action or it achieves a single goal)
informational cohesion (a module has informational cohesion if it performs a number of an actions, each with its own entry point, with independent code for each action, all performed on the same data structure. Such a module is an implementation of abstract data type)
communicational cohesion (a module has communicational cohesion if it performs a series of actions related by the sequence of steps to be followed by the product and if all the actions are performed on the same data)
procedural cohesion (a module has procedural cohesion if it performs a series of actions related by the sequence of steps to be followed by the product)
temporal cohesion (a module has temporal cohesion when it performs a series of actions related in time)
logical cohesion (a module has logical cohesion if it performs a series of actions, one of which is selected by the calling module)
coincidental cohesion (a module has coincidental cohesion if it performs multiple, completely unrelated actions)
low cohesion is bad
When there are several answers, pick the worst one - the one with lowest cohesion