Software Engineering: Function Point Analysis: Data FPs

Intro Counting Data FPs Transactional FPs Estimation

If all data is stored in a database, each table will be an ILF or EIF, with a corresponding number of function points.

Count all data function points

Data functions are counted before transactional functions because they clarify issues. If you are storing your input in a database, tables will either be an ILF (a table the application writes/updates) or an EIF (a table the application only reads). If a table is used only to join to tables for a many-to-many relationship, don't count it unless it contains additional information about the relationship. These must be groups of logically related, user identifiable, data.


The complexity (low, average, or high) of each ILF or EIF is computed from DETs and RETs.

  • Data Element Types (DETs). Count 1 for each field in a table, including foreign keys. Don't count unused fields.
  • Record Element Types (RETs). These correspond to subgroupings in tables (minimum 1). It appears that this will always be one for the types of tables that we build.

The number of function points is computed by a matrix based on the numbers of ILFs, EIFs and their complexities.

Computing Function Points from ILFs and EIFs

Determine whether each table is an ILF or EIF, and compute its complexity (low, average, high). Fill in the Counting form to get the number of data function points.