In this paper, a metric is proposed, Predictive Object Points (POPs), that has the potential to do all of the above. Unlike traditional measures, POPs are based on an object oriented paradigm, encapsulating object behavior and the interaction between objects. The POPs measure combines several contemporary metrics to establish an overall measure suitable for predicting effort and/or tracking productivity. The metric at the heart of the POP calculation is Weighted Methods per Class (WMC). WMC looks at each top level class (or each distinct object from the user’s perspective) and assigns a weight to the behaviors of that class that are seen by the world. The “weight” of an object’s behavior is determined by evaluating the effects that the behavior has on the objects in the system (by counting the properties that this behavior impacts) and the amount of control the objects in the system have over this behavior (by counting the parameters of the method or the pieces of information that get passed to it). The calculated WMC metric is combined with information about the groupings of objects into classes and the relationships between these classes of objects to arrive at a value which appears to correlate to the effort associated with implementing a solution. Because the metric is based on behavior, it mimics much of what is useful about a Function Point measure. Since behavior is something widely understood, a POP value can be determined by someone with only a little knowledge of implementation details. And, since the things that impact behavior “weight” are well understood, detailed counting rules can be established for the POP metric.
Minkiewicz, Arlene and Fad, Bruce, "Estimating Size for Object-Oriented Software" (1996). ICIS 1996 Proceedings. 38.