Skip to content

Project Cost Estimation By Function Point Analysis

This post aims to provide all the steps of project cost estimation by using function point analysis. This post will touch on the work breakdown structure (WBS) method of cost estimation and will point out the benefits of using both.

Function Point

A function point is a “unit of measurement” to express the amount of business functionality of a product based on the user requirements. It was first developed by Allan Albrecht at IBM, as an alternative to counting lines of code. Using the function point for project cost estimation is mainly focused on the end-user perspective. In other words, if the function is realized by the end-user then only that function can be estimated.

Five major operations of a user in a System

External Input (EI)

EI is the external input provided by the user or any external systems, it is a transaction function in which the data goes “into” the application from outside the system.

Internal Logical Files (ILF)

ILF is a user identifiable group of logically related data or control information that resides entirely within the application boundary. The main purpose of ILF is to hold data maintained through one or more processes within the system.

External Interface Files (EIF)

EIF is the external data or logical information used by the application system as a reference. EIF resides entirely outside the application boundary and is maintained in an ILF by another application.

External Query or Inquiry (EQ)

EQ is the simple output provided by the system to the user or any external systems enquiring about the information. This can be in the form of simple tables or texts.

External Outputs (EO)

EO is the complex output provided by the system to the user or any external systems enquiring about the information. This can be in the form of complex graphs or reports.

External Input (EI) in Detail

EI is mainly responsible for sending input to the system or moves the data into the application from the application external boundary to the internal boundary. EI mainly updates ILF information. For example, each add/update or delete can be counted as one EI, so if one screen has Add, Update and Delete then it is 3 EIs. Every input screen is not an EI, if the ILF information is updated then only it can be treated as EI, for example, a Search screen is not an EI, it doesn’t move data from the external boundary to the internal boundary.

While identifying the EI it is important to determine its complexity, as complexity is the most important factor in evaluating the cost of the project.

The complexity of an EI is evaluated using the two entities of Function point analysis called File Type Reference (FTR) and Data Element Type (DET).

Data Element Type (DET)

DET is normally the fields and attributes which are unique and user identifiable. If the user doesn’t recognize the fields or attributes then it cannot be counted as DET. Foreign keys used in creating relationships between two tables are counted as DETs but it has to be only counted once. Autogenerated fields are counted as 1 DET as they are maintained in the ILF. Duplicate fields by the same user input should be counted as one DET and error messages are also counted as DET’s.

ll – DETs on the screen

File type Reference (FTR)

FTR is a file or data referenced by an EI or (a file type referenced by a transaction). 1 FTR can be counted for every ILF maintained, 1 FTR for every ILF referenced and 1 FTR for every EIF referenced. In the below screen, External API is referenced and there is ILF data is maintained in the grid.


The country is also an ILF and counted as an FTR but since this is less complex which can be counted as EQ which will be explained later.

External Output (EO) in detail

EO’s are functions that manipulate data (derived and calculated information) and present it to the user in some form of reports such as:

  • Customer Account statements
  • Balance sheet or Profit & Loss reports
  • Complex graphical charts like bar chart, pie chart etc.

Each graphical output in the form of a PIE chart, bar chart, etc should be counted as EO’s. If the same EO data is produced on two different media output (mobile or webpage) should be counted as two EO’s.

Following cannot be treated as an EO:

  • Some ad-hoc reporting where the end-user can execute a SQL statement and generate a report cannot be treated as an EO.
  • Two reports showing the diffeent data with the same processing logic should be treated as only one EO. For example a grid with unordered data and another grid with ordered data of the same table should be 1 EO.

Leave a Reply

Your email address will not be published. Required fields are marked *