Function Point Analysis (FPA)
Function Point Analysis (FPA)
software application by quantifying its functionality based on the user’s requirements. FPA
focuses on what the system does rather than how it is implemented. Here's an example
scenario where we can apply Function Point Analysis:
Imagine we are developing an online banking system that allows customers to:
We'll perform Function Point Analysis (FPA) on this system by analyzing the functions provided
to the user and classifying them into various function types such as External Inputs (EI), External
Outputs (EO), Internal Logical Files (ILF), External Interface Files (EIF), and Queries (EQ).
Afterward, we will calculate the function points based on the complexity of each function.
We break down the features of the system into the following components:
Function complexity can be classified into Low, Medium, and High based on the number of
data elements and interactions involved. Below is a table summarizing the complexity of each
function type:
To apply the adjustment factor, we need to evaluate the system against a list of technical and
environmental complexity factors. The Complexity Adjustment Factor (CAF) is determined
based on these factors. Typically, a scale from 0 to 5 is used for each of the 14 predefined
complexity factors, with 0 indicating no complexity and 5 indicating very high complexity.
1. Data Communications: The complexity of how the system communicates with other
systems (e.g., APIs, third-party services).
o For the online banking system, this could be Medium due to secure API
integration with external banks and payment processors.
o Rating: 3
2. Distributed Data Processing: Does the system involve complex data distribution across
multiple locations?
o For this example, no complex distribution of data is required.
o Rating: 1
3. Performance: How critical is performance, such as response time for users and high
transaction volumes?
o Given this is an online banking system with financial transactions, performance is
quite important.
o Rating: 4
4. Heavily Used Configuration: Does the system need to handle many simultaneous users?
o A banking system typically needs to support thousands or millions of concurrent
users.
o Rating: 4
5. Transaction Volume: How many transactions are processed by the system, and how
frequently?
o A high volume of transactions (payments, transfers, etc.) is typical in banking
applications.
o Rating: 4
6. Online Data Entry: Does the system require a lot of data input from users, potentially
increasing complexity?
o The system will require a moderate amount of data entry (e.g., entering payment
details, account settings).
o Rating: 3
7. End-User Efficiency: How efficient is the system in terms of meeting end-user needs
with minimal effort?
o The system needs to be user-friendly and efficient, but it’s not overly complex in
terms of UI/UX.
o Rating: 3
8. Complex Processing: Are there any complex calculations or algorithms that need to be
performed?
o Online banking may require complex calculations (e.g., exchange rates,
transaction fee calculations), but this is still relatively straightforward.
o Rating: 3
9. Code Reusability: Are there opportunities for reusing existing code?
o This system could involve some reusable banking functions (e.g., authentication,
transaction processing).
o Rating: 3
10. Installation Ease: Is it easy to deploy and install?
Bank systems may require specialized installation and configuration but are not overly
difficult.
Rating: 2
11. Operational Ease: How easy is the system to operate once deployed?
Since this is an online banking application, the system must be easy to manage post-
deployment, especially in terms of monitoring and troubleshooting.
Rating: 3
12. Multiple Sites: Is the system deployed across multiple locations or regions?
The system may support different geographical regions, but this doesn't introduce high
complexity.
Rating: 2
The system must allow for regular updates and patches, but this is not overly complex.
Rating: 3
14. Use of Third-party Software: Does the system rely on third-party software?
The system integrates with several third-party financial services (e.g., payment gateways,
bank networks).
Rating: 4