A parametric estimating technique for software development that was developed by A.J. Albrecht while working for IBM in the early 1980s.
The principle of this approach is that software is made up of a number of Function Points that fit into one of five types. For each function point a score (the multiplier) is given depending upon its degree of complexity. The relative scores shown below are based on analysis of numerous actual projects.
Having identified the function points in a proposed program, they are multiplied by the complexity scores to produce the Function Point Count for the program. So, if a program had five external data inputs of average complexity, these would contribute a score of 20 (five function points with a multiplier of four) to the overall count for the program.
From this, effort requirements for the work can be calculated based on the expected effort per function point.
Of course the big factor in all of this is the accurate estimating of Function Points. Despite all the parametrics it still comes down to the skill of the estimator.