From: rms@miles.com (Rob Schultz)
Subject: Function points from source Code (semi-long)
Organization: Miles Inc., Diagnostics Division, Elkhart, IN
Date: Wed, 11 Nov 1992 13:47:43 GMT


Andrew Tune (adt@technix.oz.au) asked in private email about counting
function points from source code.  I felt that the information might be
of general interest, so the following is the complete text of my reply
to his query.

Andrew -

This is going to be fairly long, so a quick answer to you question first.
Yes, there are tools to count function points from source code, or you
can run a simple conversion based on the table below or in Capers Jones'
book, _Applied_Software_Measurement_.

However, there are some things to watch out for when doing this.  Read on
for more details.

Software Productivity Research (Capers Jones' firm) sells its Checkpoint (TM)
tool which allows you to estimate function points based on requirements.  
The tool also has (may be an extra option) a "backfiring" method built in.
This allows you to take source and estimate the number of function points
with a low degree of accuracy (+- 20% according to Capers).

However, a cheaper method is to simply count LOC and use the table in his
book to determine the size in function points.  One BIG caveat with this is
that you must use the same counting rules that Capers has used to establish
the relationship.  I have reproduced several common conversions below.

This method is unsatisfactory, however.  The primary reason for using 
function/feature points is to aid in the estimating process.  If you are
generating FP counts from source code, you have (hopefully) already done
most of the work on a project (requirements, analysis, design, coding,
test plans, etc).  Therefore, you have lost the ability to predict anything
for those phases.  Of course, if you have very good data regarding the time
it took to develop those previous versions, broken out per phase, you will
be able to use the data to predict future projects.

Capers has generated a table of phases used in construction of software and
the time per function point to complete the phase.  Look in his book for
more information.

If you would like more information, contact me (See signature), or:

Software Productivity Research, Inc.
77 South Bedford Street
Burlington, MA  01803
+1 617 273 0140

International Function Point Users Group (IFPUG)
(address not handy)
+1 614 895 1355

Disclaimer:  I have no affiliation with Capers Jones or SPR other than having
just returned from two 2-day seminars on Software Measurement and Function
Points given by Capers and Dave Herron, also of SPR.

Ref:
Jones, Capers; _Applied_Software_Measurement_; McGraw-Hill Publishing
	Company; New York; 1991; 684 pages.

Jones, Capers; _Table_of_Programming_Languages_and_Levels_; Version 5.0;
	Software Productivity Research, Inc.; Burlington, MA; September 
	20, 1991; 23 pages.

Language		Level		Source lines per FP

Basic Assembler		1		320
Macro Assembler		1.5		213
C			2.5		128
Cobol			3		105
FORTRAN			3		105
Pascal			3.5		91
ADA			4.5		71
Prolog			5		64
Lisp			5		64
Data Base		8		40
Objective-C		12		27
Query Languages		25		13
Spreadsheets		30		6

-- 
Rob Schultz   At Home:                        At work:          +1 219 262 7206
                      rms@andria.miles.com                        rms@miles.com
      {uunet|iuvax}!gator!miles!andria!rms        {uunet|iuvax}!gator!miles!rms