Software Understanding

Cohesion is one measure of the quality of software wrt modules vs. functionality. The king of cohesion is the module where all parts are functionally related. The pauper is the module where parts are randomly assembled e.g. a utility library. Code should exhibit low coupling and high cohesion.

The following paper Software Metrics: Roadmap may be interesting.