QSM Function Point Programming Languages Table

Version 3.0 April 2005

©
Copyright 2005 by Quantitative Software Management, Inc. All Rights Reserved.

The table below contains Function Point Language Gearing Factors from 2597 completed function point projects in the QSM database.  The projects span 289 languages from a total of 645 languages represented in the database.  Because mixed-language projects are not a reliable source of gearing factors, this table is based upon single-language projects only. Version 3.0 features the languages where we have the most recent, high-quality data.

The table will be updated and expanded as additional project data becomes available. As an additional resource, the David Consulting Group has graciously allowed QSM to include their data in this table.  

Environmental factors can result in significant variation in the number of source statements per function point.  For this reason, QSM recommends that organizations collect both code counts and final function point counts for completed software projects and use this data for estimates.  Where there is no completed project data available for estimation, we provide the following gearing factor information (where sufficient project data exists):

  • the average
  • the median
  • the range (low - high)

We hope this information will allow estimators to assess the amount of variation, the central tendency, and any skew to the distribution of gearing factors for each language.

Click Here for additional information on gearing factors and recommendations on using this table.

Click to Request gearing factors for lanuguages not found in the table.

QSM Slim Tool Demo

“I have been a SLIM user for about seven years at three Fortune 500 companies. I have personally seen projects save time, money, and effort through the visibility SLIM tools provide into the software development process.

I could list dozens of scenarios when the use of SLIM tools helped me avoid catastrophic failures. SLIM tools provide users with the ability to be more proactive, positively impressing the boss and the customer simultaneously! I have come to consider the use of SLIM a 'Critical Success Factor'."

Jim Kirk
Management & Data Systems Lockheed-Martin Corporation
 

** Indicates languages which were present before but have been adjusted due to new information

Language QSM SLOC/FP Data David Consulting
  Avg

Median

Low High

Data


Access

35

38

15

47

-
Ada 154 - 104 205 -
Advantage
38 38 38 38 -
APS 86 83 20 184 -
ASP
69 62 32 127 -
Assembler** 172 157 86 320 575 Basic/400 Macro
C ** 148 104 9 704 225
C++ ** 60 53 29 178 80
C#
59 59 51 66 -
Clipper 38 39 27 70 60
COBOL ** 73 77 8 400 175
Cool:Gen/IEF 38 31 10 180 -
Culprit 51 - - - -
DBase III - - - - 60
DBase IV 52 - - - 55
Easytrieve+ 33 34 25 41 -
Excel
47 46 31 63 -
Focus 43 42 32 56 60
FORTRAN - - - - 210
FoxPro 32 35 25 35 -
HTML**
43 42 35 53
Ideal 66 52 34 203 -
IEF/Cool:Gen 38 31 10 180 -
Informix 42 31 24 57 -
J2EE
61 50 50 100 -
Java**
60 59 14 97 80
JavaScript**
56 54 44 65 50
JCL**
60 48 21 115 400
JSP 59 - - - -
Lotus Notes 21 22 15 25 -
Mantis 71 27 22 250 -
Mapper 118 81 16 245 -
Natural 60 52 22 141 100
Oracle** 38 29 4 122 60
Oracle Dev 2K/FORMS 41/42 30 21/23 100 -
Pacbase
44 48 26 60 -
PeopleSoft 33 32 30 40 -
Perl
60 - - - 50
PL/1** 59 58 22 92 126
PL/SQL
46 31 14 110 -
Powerbuilder** 30 24 7 105 -
REXX 67 - - - -
RPG II/III 61 49 24 155 120
Sabretalk
80 89 54 99 -
SAS 40 41 33 49 50
Siebel Tools
13 13 5 20 -
Slogan
81 82 66 100 -
Smalltalk** 35 32 17 55 -
SQL** 39 35 15 143 -
VBScript**
45 34 27 50 50
Visual Basic** 50 42 14 276 -
VPF
96 95 92 101 -
Web Scripts 44 15 9 114 -
 

More Information on Using Gearing Factors

What is a gearing factor? The gearing factor is simply the average number of Source Lines of Code (SLOC) per function point in the completed project.  It is calculated by dividing the final code count for a completed project by the final function point count. SLOC counts are logical, not physical line counts.

What if the language I am using is not in the table?  If you do not see the language you need in the table, you may substitute a gearing factor from a comparable language.  The uncertainty range for the estimated gearing factor may be increased to allow for any additional risk introduced by using a substitute.  You may also contact QSM to see if revised information is available.

Should I use the average or the median?  In a perfectly symmetrical distribution of gearing factors, the average and the median will be identical or very close.  The average is obtained by summing the gearing factors and then dividing by the number of gearing factors included in that sum. Although its purpose is to measure "central tendency", the average can be pulled up or down by extreme data values (or outliers).  The median, on the other hand, is simply the data point that lies in the center of an ordered list of gearing factors.  One half of the data points will lie above (and one half below) the median.  When the data set is skewed (biased either toward the high or low end by extreme data values), the median may be a more accurate indicator of the central tendency.

How should I use the range?  The range simply shows lowest and highest gearing factors for each language.  The range can be used, with the average and median, to choose a "most likely" gearing factor for estimation.  The range can be useful as a starting point for choosing an uncertainty range around your "most likely" estimate of the gearing factor.

QSM Slim Tools Demo