Software Engineering: Function Point Analysis: Counting FPs

Intro Counting Data FPs Transactional FPs Estimation

Counting function points

The process of counting function points can be broken down into the following steps.

  1. Choose the type of function count appropriate to the project (new development, modifying existing program, or measuring an existing program). We will only be concerned with new development.
  2. Define the scope of the application.
  3. Count all data function points, adjusted by their complexity.
    Typically data function points are usually counted before transactional function points. If you are storing your data in a database, tables (except those used only for implementing many-to-many relationships and lookup tables) will either be an ILF or an EIF.
    The number of function points is computed by a matrix based on the numbers of ILFs, EIFs and their complexities, as measured by DETs (Data Element Types), which correspond closely to fields in a table, and RETs (Record Element Types).
    See Data Function Points for more detailed instructions on counting data function points.
  4. Count all transactional functions, adjusted by their complexity.

    See Transactional Function Points for more details on computing transactional function points.
  5. Sum the above to get the unadjusted function points (UFP) count.
    Computing Function Points
     By ComplexityTotal
    SourceLowAvg High  
    ILF - Internal Logic File ____ x 7 = ________ x 10 = ________ x 15 = ____ 
    EIF - External Interface Files____ x 5 = ________ x 7 = ________ x 10 = ____ 
    EI - External Inputs ____ x 3 = ________ x 4 = ________ x 6 = ____ 
    EO - External Outputs ____ x 4 = ________ x 5 = ________ x 7 = ____ 
    EQ - External Queries ____ x 3 = ________ x 4 = ________ x 6 = ____ 
  6. Determine the adjustment factor, which is based on 14 project characteristics. Work on a ISO standard for FPA, renamed function size measurement, excludes this adjustment factor, so we'll ignore it.
  7. Calculate the adjusted function point count, which is simply the unadjusted function point count for our purposes.

Now you have the total number of function points. These can be used for many purposes, but one of the main uses is to estimate schedule and manpower requirements.

Going from function points to schedule/effort estimates

You can use standard formulas and tables to transform function points into schedule and effort estimates. Effort Estimation gives a method of transforming function points into schedule or effort.