Functional Point Analysis

Whenever a software project comes, the organization usually try to make estimate of the project in the terms of cost and time, so that accordingly resources such as testers, tools, frameworks and time schedules for each phase of the project could be assessed and measured. But, did you know that an estimate of the software product including its testing could also be made in the terms of its functionality or functions. The concept is all about the functional point analysis.

What is functional point analysis?

Abbreviated as FPA, functional point analysis is one of the mostly preferred and widely used estimation technique used in the software engineering. FPA is used to make estimate of the software project, including its testing in the terms of functionality or function size of the software product. However, functional point analysis may be used for the test estimation of the product.

The functional size of the product is measured in the terms of the function point, which is a standard of measurement to measure the software application.

What are the objectives of the functional point analysis?

The basic and primary objective of the functional point analysis is to measure and provide the software application functional size to the client, customer and the stakeholder on their request. Further, it is used to measure the software project development along with its maintenance, consistently throughout the project irrespective of the tools and the technologies.

Component of FPA

The functional point analysis approach consists of some components. Based on the interaction of the system with the external world such as other system, application, users, its component may be categorized into five different forms.

  • External Inputs
  • A process where inputs are imported from outside the boundary of the system through external sources such as external system or from the user's input screen to form internal logic database file, where input data consists of control information and business information, but internal logic file gets updated only for the business information.
  • External Output
  • A process where data is passed to the outside system or application from inside in the form of reports or files. Generally, these reports or files are get derived from the data present in the internal logic file.
  • Internal Logic files
  • It is a group of data present within the system which are interrelated to each other, and is being maintained by the inputs provided from the external sources or system.
  • External Logic files
  • It may be seen as a group of inter-related data present outside the system boundary and may be the internal logic file of some other external application, but it works as an external logic or interface file for the system for it use or reference purpose.
  • Inquiries
  • A process consisting of both input and output component to extract data from the internal and external logic files.

Based on the Data Element Type (DET)$ and Record Element Type(RET)#, these components may be classified into high, average and low complexity, as given below:
$- DET is a user-recognizable, unique and non-repetitive field, which is used to analyse all the above stated five components.
#- RET is a subgroup data of Data Element type present in the internal logic files and external logic files

For Internal Logic files

Record Element Types(RET) Data Element Type(DET)
1-19 20-51 51+
1 L L A
2-5 L A H
6+ A H H
Complexity Points
Low 7
Average 10
High 15

For External Logic files

Record Element Types(RET) Data Element Type(DET)
1-19 20-51 51+
1 L L A
2-5 L A H
6+ A H H
Complexity Points
Low 5
Average 7
High 10

For External Input

File Type Referenced(FTR)* Data Element Type(DET)
1-4 5-15 15+
0-1 L L A
2 L A H
3+ A H H
*As External Input is a transactional function, it uses FTR instead of RET
Complexity Points
Low 3
Average 4
High 6

For External Output

File Type Referenced(FTR)* Data Element Type(DET)
1-4 6-19 20+
0-1 L L A
2-3 L A H
4+ A H H
*As External output is a transactional function, it uses FTR instead of RET
Complexity Points
Low 4
Average 5
High 7

For Inquiries

File Type Referenced(FTR)* Data Element Type(DET)
1-19 20-51 51+
1 L L A
2-5 L A H
6+ A H H
*As Inquiries is a transactional function, it uses FTR instead of RET
Complexity Points
Low 3
Average 4
High 6

Steps to count the functional points

Below given are the subsequent steps, used in counting the functional points of a system.

  • Type of countThe First step involves the task of determining the type of functional count for the application. Basically, there are three forms of functional point (FP) count, as stated below:
    • Development Project FP count:It measures the functionality or functions of the system being delivered to the end-users, including its first installation.
    • Enhancement Project FP count: Measure the modification brought in the system.
    • Application FP count: Measures the functionality of the already existing system being provided to the users.
  • Scope and Boundary of the countIn the second step, scope and boundary of the count needs to be identified, where scope could be determine with the help of data screens, reports and files, whereas boundary depend upon the perspective of drawing out the boundary for the external system or application.
  • Unadjusted function point countIt is the core step of the process, where unadjusted functional point count produced by the five components as stated above (External Inputs, External Output, Internal Logic files, External Logic files, Inquiries) are measured.
  • Value Adjustment FactorThis step involves the task of determining the value adjustment factor(VAF), where VAF comprises of 14 General system characteristics(GSC) of the system or application representing the different types of characteristic possessed by the application, and is measured or rated on the scale of 0 to 5. The rated value of all the 14 GSC are combined to give out a mathematical value, namely Total Degree Influence(TDI), used in calculating the VAF. The value of TDI may vary from 0 to 35. Below given is the 14 GSCs and the mathematical formula for calculating the VAF.
14 GSCs
  1. Data Communication
  2. Distributed data processing
  3. Performance
  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. Facilitate change
  14. Multiple sites
VAF= (TDI*0.01) + 0.65

Adjusted Functional Point Count

After calculating the unadjusted functional point count and value adjustment factor, this step makes use of both the value to result out the Adjusted Functional point count with the help of following formula.

Adjusted FPC= Non-adjusted FPC*VAF


The merits associated with the functional point analysis are:

  • Measures the productivity of the project and the process.
  • Technology independent approach.
  • May be used to measure the support requirement, needed for the purpose of system maintenance.
  • Useful in the estimation of the time required in bringing changes to the product or in developing a new application.
  • Useful for non-technical people in understanding the functional size of the application such as end-users, customers, etc.
  • May be repeated.
  • Works well for the use cases and user stories.