QSM Resources
Forty years of research – in one convenient place.
Home ResourcesFunction Point Languages Table
Function Point Languages Table
Version 5.0
The QSM Function Points Languages Table contains updated function point language gearing factors for 37 distinct programming languages/technologies. The data supporting release 5.0 was drawn from 2192 recently completed function point projects from the QSM database.  The sample included 126 languages, 37 of which had sufficient data to be included in the table.
Learn more about QSM's function point analysis
Release 5 features and observations:
Environmental factors can result in significant variation in the 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 incorporate this data into project estimates.  Where there is no completed project data available for estimation, we provide the following industry gearing factor information (where sufficient project data exists):
    * Average
    * Median
    * Range (low - high)
These three measures should allow software estimators to assess the amount of variation, the central tendency, and any skew to the distribution of gearing factors for each language.
Additional information on gearing factors and recommendations on using this table.
Request gearing factors for languages not found in the table.
* Languages with updated gearing factors.
+ New languages for which gearing factor data was not previously reported.
LanguageQSM SLOC/FP Data
 AvgMedianLowHigh
ABAP (SAP) *28181660
ASP*51541569
Assembler *1199825320
Brio +14141316
C *979939333
C++ *50532580
C# *54592970
COBOL *615523297
Cognos Impromptu Scripts +474230100
Cross System Products (CSP) +20181038
Cool:Gen/IEF *32241082
Datastage716531157
Excel *209191131315
Focus *43454545
FoxPro36353438
HTML *34401448
J2EE *46491567
Java *535314134
JavaScript *47533163
JCL *624825221
LINC II29302238
Lotus Notes *23211940
Natural *40343453
.NET *57605360
Oracle *37401760
PACBASE *35322260
Perl *24151560
PL/I *64801680
PL/SQL *37351360
Powerbuilder *2628740
REXX *77805080
Sabretalk *706645109
SAS *38372255
Siebel *59605160
SLOGAN *75757475
SQL *21211337
VB.NET *52602660
Visual Basic *42442060
More Information on Using Gearing Factors
What is a gearing factor? The gearing factor is simply the average number of new plus modified (Effective) Source Lines of Code per function point in the completed project. Gearing factors are calculated by dividing the effective code count for a completed project by the final function point count. SLOC counts represent 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 combined 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.
Where does the data come from? The gearing factors in this table were drawn from 2192 recently completed function point projects in the QSM database.  As mixed-language projects are not a reliable source of gearing factors, only single-language projects are used. 
QSM offers Function Point Analysis Consulting Services. Contact us for more information.
Solutions
Tools
Consulting
Government
Resources
2019 Almanac
Webinars
Articles
Connect
Contact QSM
Support
© Copyright 2022 QSM
 
We use cookies and similar technologies to provide you with the best possible experience on our website (for personalization, analytics and performance). Agree