# 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.

- Internal Logical Files (ILF). These are tables that are maintained (eg, updated) by the application.
- External Interface Files (EIF). These are tables that are only referenced by the application. The are, presumably, maintained by a different application.

## Complexity

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. |
| DETs
--- | ---
RETs | 1-19 | 20-50 | >50
1 | Low | Low | Avg
2-5 | Low | Avg | High
>5 | Avg | High | High

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.