Software Engineering: Function Point Analysis: Introduction

Intro Counting Data FPs Transactional FPs Estimation

Estimation techniques

Software size estimation or measurement (size, effort, schedule, defects, productivity, ...) is essential for managing a software project. There are two general techniques.

  1. The common method of estimation is to look for experience on similar projects in the past, either by consulting experts or looking at documentation on previous projects.
  2. Another technique is to look at the functionality of a system to make an estimate of the size. Function Point Analysis (FPA) is probably the most well developed of these. See Functional Size Measurement,, for an overview of major variations on this technique. There are programs that automate some of the, and do a better job than the manual methods.

Measuring units of work

SLOC. The traditional measurement of program size (an amount of work) is source lines of code (SLOC) or just lines of code (LOC). This is a very general and often ill-defined measurement. What exactly is a line of code? The number of lines of code is dependent on the programming language and on the expertise of the programmer. Making an estimate of the number of lines of code in a new project requires experience, and can be very difficult for new applications.

Function points. Function Point Analysis circumvents the LOC issues by using units of function (input and output interactions, database tables, etc) to describe programs. This is a well-developed system with considerable empirical data to validate it. The International Function Point Users Group (IFPUG, offers manuals and certification. A more general term for techniques of this type is Functional Size Measurement.

Adjustment factors

Function points don't solve the problems of team variation, programming tool variation, type of application, etc. There are 14 adjustment factors in the current IFPUG standard, but they may be eliminated from an upcoming ISO standard.

Using function points to calculate effort

See FPA Effort Estimation for turning the number function points into programming effort and schedule.