The larger the number of methods that can be invoked from a class through messages, the greater the complexity of the class. If a large number of methods can be invoked in response to a message, testing and debugging the class requires a greater understanding on the part of the tester. A worst-case value for possible responses assists in the appropriate allocation of testing time. Effective OO designs maximize cohesion because they promote encapsulation. Average the percentages, then subtract from 100 percent.
Lower percentages indicate greater data and method cohesion within the class.
Methods are more similar if they operate on the same attributes. Count the disjoint sets produced from the intersection of the sets of attributes used by the methods. High cohesion indicates good class subdivision. Lack of cohesion or low cohesion increases complexity, thereby increasing the likelihood of errors during development. Classes with low cohesion could probably be subdivided into two or more subclasses with increased cohesion.