functional cohesion | if possible | cohesion | - It is easier to understand a module when you know all it does is generate one specific output and has no side effects
- It is easier to replace a functionally cohesive module with another that performs the same computation
- functionally cohesive module is much more likely to be reusable
| a module only performs a single computation, and returns a result, without having side-effects | A form of cohesion in which modules which together perform a function (a computation that returns a result and has no side effects) are kept together, and everything else is kept out |