Previous Function-Point FPA-Transactional-Functions Next

The Building Blocks of FPA

The Five Function Point Components

1. External Inputs (EIs)

Transactions that allow users to feed data into the application.

  • Example: “Create new order” form.
  • Count based on Data Element Types (DETs) and File Types Referenced (FTRs).
Create Order Screen
- OrderID
- CustomerID
- Items[]

2. External Outputs (EOs)

Reports or messages sent outside the system.

  • Example: “Invoice summary” PDF.
  • Complexity driven by number of DETs and FTRs included.

3. External Inquiries (EQs)

Interactive, read-only requests combining inputs and outputs.

  • Example: “Search order by date” screen.
  • No internal data is updated—just retrieval.

4. Internal Logical Files (ILFs)

Logical groups of data stored and maintained within the system.

  • Example: “Customer” table, “Products” table.
  • Count RETs (Record Element Types) and DETs to decide complexity.

5. External Interface Files (EIFs)

Data used by your system but maintained by external application.

  • Example: Third-party “TaxRate” reference file.
  • You read from it; you do not update it.

The Building Blocks - Data Functions

This Section dives into the first half of the FPA count: Data Functions. These represent the logical groups of data that a system maintains (ILFs) or references (EIFs). We will learn how to identify them and, crucially, how to determine their complexity based on their structure. The process begins by identifying all the logical data groups that are meaningful to the user. This is typically done by reviewing user requirements, screen designs, and reports, looking for nouns and objects that the user interacts with. A key principle is that a data function must be "user-identifiable" – meaning the user recognizes it as a distinct set of information. It's not a technical detail like a database table name, but a business concept like 'Customer Records' or 'Sales Orders'.

Internal Logical File (ILF) and External Interface File (EIF)

An ILF is a user-identifiable group of logically related data or control information that resides entirely within the application and is maintained through one or more of the application's transactional functions (e.g., a "Customer" file in an accounting system where you can add, edit, and delete customers). An EIF is also a user-identifiable group of logically related data, but it is used by the application for reference purposes only and is maintained by another application (e.g., a "Product Catalog" file that an e-commerce site reads from a separate inventory system; the e-commerce site can't change the product data itself). The key distinction is who maintains the data: the application itself for an ILF, or an external system for an EIF. This distinction is critical because an ILF implies a greater level of development effort for create, read, update, and delete functionality, which is reflected in its higher weight during the calculation.

Measuring Complexity with DETs and RETs

The complexity of a Data Function (ILF or EIF) is determined by two factors: **Data Element Types (DETs)** and **Record Element Types (RETs)**. A **DET** is a unique, user-recognizable, non-repeated field (e.g., 'Customer Name', 'Address', 'Order Date'). The count of DETs represents the number of unique data fields presented to the user. A **RET** is a user-recognizable subgroup of data elements within an ILF or EIF (e.g., in a 'Customer' ILF, 'Shipping Address' and 'Billing Address' could be two separate RETs, each with its own set of DETs like Street, City, State, and Zip). The number of RETs indicates how many logical sub-groups the user can identify in the data file. The more DETs and RETs a data function has, the more complex it is considered. The logic here is that a file with many different data fields or multiple logical subdivisions is inherently more complex to design and manage than a simple one with only a few fields.

Data Function Complexity Matrix

The matrix below shows how complexity is determined by the number of Record Element Types (RETs) and Data Element Types (DETs). To use the matrix, you find the intersection of the RET and DET counts for a given function to determine if it is Low, Average, or High complexity. This complexity level then corresponds to a specific weight used in the UFP calculation. For example, a file with 4 RETs and 25 DETs would be classified as 'High' complexity, and an ILF of this complexity would be assigned a weight of 15, reflecting its significant size and effort.

RETs / DETs 1-19 20-50 51+
1 Low Low Average
2-5 Low Average High
6+ Average High High
Previous Function-Point FPA-Transactional-Functions Next
*