A Better Gauge Of Quality

Jun 25, 2010 (08:06 PM EDT)

Read the Original Article at

Function points express the amount of business functionality an information system provides to users. The advantage of this approach over the defects per thousands-of-lines-of-code metric, or KLOC, is that it can measure defects in requirements and design as well as in code. More important, KLOC penalizes modern high-level programming languages when measuring quality and productivity because they can use fewer lines of code to achieve the same results as older languages.

To illustrate, assume an application written in Java requires 1,000 Java code statements and has 10 coding bugs, equal to 10 bugs per KLOC. If the same app written in C requires 3,000 C statements and contains 30 coding bugs, it also has 10 bugs per KLOC. The Java version has better quality since it delivers the app with only a third as many bugs as the C version. But when measured using lines of code, the Java and C versions appear to be identical in terms of quality at 10 per KLOC.

When these apps are measured with function points, we assume that they're both 10 function points in size. The Java version contains one coding bug per function point, while the C version has three. In other words, function points match standard economic definitions for measuring productivity, and they measure quality without omitting requirements and design bugs, and without penalizing modern high-level languages.