An Overview of Function Point Analysis

Function Point Analysis is a structured technique of classifying components of a system. It is a method used to break systems down into smaller components so that they can be better understood and analyzed. Function Point Analysis provides a structured technique for problem solving.

In Function Point Analysis, systems are divided into five large classes. The first three classes are External Inputs, External Outputs and External/Data Inquiries. These classes or components transact against files and hence they are also called Transactions. The next two classes are Internal Logical Files and External Interface Files. The data is stored in these classes and they form the Logical Information.

Objectives of Function Point Analysis:

Function Points measure systems from a functional perspective and are independent of technology. Hence, regardless of technology, language, development method, or hardware/software used, the number of function points for a system will remain constant. The variable in Function Point Analysis is the amount of effort required to deliver a given set of function points. Therefore, function point analysis can be used to determine which environment/language/tool is more productive.

  1. Function point analysis can be used to determine which environment/language/tool is more productive.
  2. Function point analysis can provide a mechanism to track and monitor scope creep.
  3. Function point counts at the end of each phase/stage of a project can be compared to the function points actually delivered.
  4. If the number of function points has increased then there has been a scope creep.
  5. The number of function points that has increased or decreased defines the project growth.
  6. If the project has grown then it is a sure indication that the requirements haven’t been gathered well and there has been some scope creep.
  7. If the project growth has declined then the communication between the end-user and the development team has improved.

Process of Counting Function Points:

Function point analysis follows specific steps for counting:

  • Identification of the subsystem boundaries
  • Identification of the data functions (internal logical files and external interface files)
  • Identification of transactional functions (external inputs, external outputs and external inquiries)
  • Calculation of the Unadjusted Function Point (UAF) Count
  • Determination of the Value Adjustment Factor (VAF) using General System Characteristics (GSC)
  • Calculation of the final Function Point Count

Establish the Subsystem Boundary:

A project may include one or more applications or subsystems. Boundaries must be drawn to identify the external applications that interact with this project or the application that is being measured.

{mospagebreak title=The Five Major Components}

Function Point Analysis breaks the systems down into smaller components so that users, developers, and managers can easily understand the functionality of a system; the technical knowledge is not required for the same. In the world of function points, systems are divided into components.

Transactional Functions:

The first three components are the systems External Inputs (EI), External Outputs (EO), and External Inquiries (EQ). Each of these components adds, modifies, deletes, retrieves or processes information contained in the files and hence called transactions.

Data Functions:

The other two components are the system’s files viz., Internal Logical Files (ILF) and External Interface Files (EIF).

Transactions in Detail:

External Inputs – This defines those data that interact with the application from the outside. This data from the outside may be used to maintain internal logical files.

External Outputs – Here, the data passes from inside the application to the outside. The derived data may be used to update internal logical files. The data is used to create reports or output files which, in turn, may be used by other applications. These reports are again created from internal logical files or external interface files.

External Inquiry – This contains both input and output components that retrieve data from internal logical files and external interface files. However, the input here does not update the internal logical files or external interface files as in external inputs, and the output does not contain derived data as in external outputs.

Data Functions in Detail:

Internal Logical Files – This contains logically related data that resides entirely within the application’s boundary and is maintained through external inputs.

External Interface Files – This contains logically related data that is used for reference purposes only. The data resides entirely outside the application and is maintained by another application. This means that an external interface file can be an internal logical file of another application.

{mospagebreak title=Rating and Ranking the Components}

Once all the components in the application have been classified as one of the five major components mentioned above, they have to be rated as either Low, Average, or High.

Ranking is commonly based on File Types Referenced, Data Element Types and Record Element Types.

File Types Referenced (FTRs) represents the total number of internal logical files (ILFs) maintained, read, or referenced, and the external interface files read or referenced by the EI/EO transaction.

Data Element Type (DET) can be defined as unique user-recognizable non-recursive fields including foreign key attributes that are maintained on ILF/EIF.

Record Element Type (RET) is a subgroup of data elements within an ILF/EIF.

For each of the components belonging to Transactional functions, the ranking is based on:

  1. Number of files updated or referenced (FTRs) and
  2. Number of data element types (DETs)

For the data components viz., Internal Logical Files (ILF) and External Interface Files (EIF), ranking is based on:

  1. Number of Data Element Types (DETs) and
  2. Number of Record Element Types (RETs)

The tables given below provide an example of rankings and ratings given to each component.

External Inputs

FTRsData Elements

External Output/External Inquiries

FTRsData Elements

Values or Ratings for Transactions

RankingData Elements
External InputExternal OutputExternal Inquiry

In the above example, if an external input component updates 2 FTRs and references around 16 data elements then the ranking would be HIGH and the associated rating would be 6.

Rankings for ILFs and EIFs

Record ElementsData Elements

Values or Ratings

RankingData Elements
Internal Logical FileExternal Interface File

{mospagebreak title=Unadjusted Function Points}

Each function point count is multiplied by the numerical rating derived from the above table(s) to determine the complexity rated value. The complexity rated values on each row are summed across the table. This gives the total value for each type of component. The totals for all the components are then summed up to arrive at the total number of Unadjusted Function Points or UAF.

Component TypeComponent Complexity
External Inputs__* 3=EI1__* 4=EI2__* 6=EI3


External Outputs__* 4=EO1__* 5=EO2__* 7=EO3EO1+EO2+EO3
External Inquiries__* 3=EQ1__* 4=EQ2__* 6=EQ3EQ1+EQ2+EQ3
Internal Logical Files__* 7=ILF1__* 10=ILF2__* 15=ILF3ILF1+ILF2+ILF3
External Interface Files__* 5=EIF1__* 7=EIF2__* 10=EIF3EIF1+EIF2+EIF3
Total UAF(EI1+EI2+EI3) + (EO1+EO2+EO3) + (EQ1+EQ2+EQ3) + (ILF1+ILF2+ILF3) + (EIF1+EIF2+EIF3)

Value Adjustment Factor:

The Value Adjustment Factor (VAF) is based on fourteen General System Characteristics (GSC’s). The degrees of influence range on a scale of zero to five, from no influence to strong influence. The GSCs are listed below:

  1. Data communication
  2. Distributed functions
  3. Performance objectives
  4. Heavily used configuration
  5. Transaction rate
  6. Online data entry
  7. End-user efficiency
  8. Online update
  9. Complex processing
  10. Reusability
  11. Installation ease
  12. Operational ease
  13. Multiple sites
  14. Facilitate change 

VAF = 0.65 + (Sum of degrees of Influence of the fourteen GSCs)/100

The final Function Point Count is obtained by multiplying VAF by the Unadjusted Function Point (UAF).



Function points, as discussed earlier, can be used to size software applications accurately, as sizing is an important factor in determining productivity. Since function point has a unique and consistent method, different people measuring them will give almost the same result with very little margin of error. A non-technical person can easily understand function points, which helps in communicating the same to the end-user effectively and easily.

Glossary of Terms:

DET Data Element Type
EIF External Interface File
EI External Inputs
EO External Outputs
EQ External Inquiries
FTR File Types Referenced
GSC General System Characteristics
ILF Internal Logical Files
UAF Unadjusted Function Point
VAF Value Adjustment Factor

[gp-comments width="770" linklove="off" ]

chat sex hikayeleri Ensest hikaye