This method consists in deriving the number of function points according to the application from its physical size, measured in lines of code (LOC), using a constant conversion factor depending on the programming language. The idea has much appeal, since the counting of lines of code can be done through automatic tools and consequently, the number of function points could be derived immediately. For example, using a conversion factor of 80 LOC / FP for Java and having an application written in 8,000 lines of Java code, we get to 1,000 function points for that same application.
However, often, this technique has considerable errors when confronted with a manual count of function points of an application. This is because it assumes a linear relationship between functional size (in function points) and the physical size of the program (in lines of code), which are different concepts. Other aspect is that there is no consensus in the various organizations that publish these relationships. The numbers shown may differ as much as 100%!
When you have a developed system scenario with a mix of programming languages, the issue is more complicated. The following table provides an example of these variations for the COBOL language.
|
Source |
Conversion Factor (COBOL) |
| Quantitative Software Management |
77 LOC/PF |
| Capers Jones |
107 LOC/PF |
| David Consulting Group |
177 LOC/PF |
Due to these factors, apply backfiring to obtain the size in function points from lines of code is a risky technique and characterized by a large margin of error. Hence, IFPUG highlights in their FAQ, that it can even be used (with caution) in legacy systems, where a manual count is unworkable in practice and accuracy is not a critical factor. Some professionals argue that backfiring is a quick and cheap way to get the size in function points of an organization applications portfolio. Others, argue that cheap comes out expensive: it is better to invest in a manual counting of function points and have reliability of these data, with compensation in a long term.





