Function points examples
STOCK CONTROL SYSTEM - estimating the time needed to develop application
Let's imagine a company which sells goods on the phone - if agents call the customers, customers call the agents, and so on - business operates successfully, but there comes a time for putting the whole in order. There occurs a need for developing a system able to control the whole stock, from orders to payments. Our thing is to estimate how complex such system can be and - after that - try to predict how long it would take to develop it.
At first, we should pay attention to the functionality - what exactly the system should be able to do. Basically, it should be able to take care about three parts - customers, stock, and transactions.
Then, let us group functions into five categories:
- External Inputs - customer, order, stock, and payment details. There are four things we need to consider.
- External Outputs - customer, order, and stock details, and credit rating. Once again, there are four things to consider.
- External Inquiries - the system is requested for three things, which are customer, order, and stock details.
- External Interface Files - there's no EIFs to consider.
- Internal Logical Files - finally, the four elements belong to the last group. Customer, and good files, and customer, and good transaction files.
That's all about selecting the components. Unfortunately, it's the most difficult aspect of FPA because of lack of specified rules determining how to distinguish functions. Moreover, it's very easy to forget about a thing or place it in a wrong category. Nonetheless, there is only mathematics left to accomplish the function points analysis.
Let's predict every function's complexity is low, so the values can be presented in a table:
Category | Multiplier | Weight |
EI | 4 | 3 |
EO | 4 | 4 |
EQ | 3 | 3 |
ILF | 4 | 7 |
4*3+4*4+3*3+4*7=65 [Function Points]
Let us omit additional technical complexity factors, so the only thing left to do is to check how long it takes to produce 65 function points. Some sources prove that one function point is an equivalent of eight hours of work in C++ language. Then, the last thing is:
65*8=520 [hours]
The
answer? The estimate for developing the application would take about
520 hours of work.