The process for counting IFPUG Function culminates by the counter translating the sized data and transaction functions into a number.
Using our examples from ‘Counting IFPUG Function Points: Small, Medium and Large Logical Files?’ and ‘Counting IFPUG Function Points: Sizing Transactions.’ Our function point count would be:
- Employee ILF: 2 RETs and 15 DETs – Low
- Zip Code EIF : 1 RET and 1 DET – Low
- Add Employee EI: 2 FTR and 10 DETs – Average
- Inquire on Employee: 1 FTE and 10 DETs – Low
The count could be translated into a simple matrix as follows:
Component |
Low |
Average |
High |
Total |
Internal Logical File |
1 |
|||
External Interface File |
1 |
|||
External Input |
1 |
|||
External Output | ||||
Internal Inquiry |
1 |
IFPUG Function Points provide a weight for each component/size combination. The weight translates the low, average and high representations of size into a number that can be used for estimation and other metrics. We can create an unadjusted function point count by adding the weights to the count matrix and then multiplying each component count by the weight. The sum of all of the extended weights yields the unadjusted count:
Component |
Low |
Average |
High |
Total |
Internal Logical File |
1 x 7 |
__ x 10 |
__ x 15 |
7 fp |
External Interface File |
1 x 5 |
__ x 7 |
__ x 10 |
5 fp |
External Input |
__ x 3 |
1 x 4 |
__ x 6 |
4 fp |
External Output |
__ x 4 |
__ x 5 |
__ x 7 |
0 fp |
Internal Inquiry |
1 x 3 |
__ x 4 |
__ x 6 |
3 fp |
Total: 19 fp
If we are doing a project comprised only of changes to the four components in the example, the total unadjusted function point count would be 19 function points. The International Standard Organization compliant version (ISO/IEC 14143-1:2007) of IFPUG Function Points uses only this unadjusted count. The classic version of IFPUG function point counting includes two further steps.
Converting an unadjusted count into an adjusted function point count require an assessment of fourteen General System Characteristics. General System Characteristics (GSC) reflect a set of typical features that applications exhibit that are not generally counted as function points. The features that the GSCs evaluate were originally identified to correct for the differences seen between batch and on-line applications. For example GSC #1—Data Communication—is rated on a scale ranging from 0 (pure batch application) to 5 (the application is more than a front-end and supports more than one type of TP communication protocol). Each of the 14 GSCs is evaluated using guides and a similar zero to five scale. Summing all 14 GSC ratings for an application will result in a value between 0 and 70; that sum is referred to as the Total Degree of Influence (TDI). TDI is then used to create the value adjustment factor (VAF) using the following expression: VAF = (TDI * 0.01) + 0.65. The product of the VAF and our original unadjusted count to create the adjusted function point count. The adjustment factor can adjust a function point count by plus or minus 35%. So, in the example above, the adjusted count could range from 12 to 26 function points.
Every application will have its own unique VAF. VAFs generally do not change to a huge degree after an application is initially developed. However, the ISO version of the counting process does not use this process and IFPUG now judges the VAF as optional. Furthermore, the unadjusted count is used in most commercial estimation tools, which subsequently use their own criteria for adjusting the count for other factors that impact development and support effort. In the long run, the unadjusted count will likely become the norm because the process is simpler and quicker to use.
December 28, 2013 at 3:57 pm
Hi Thomas, I just want to add to your comment above “the unadjusted count will likely become the norm because the process is simpler and quicker to use”, that it is the norm because the iso 14143 is related to the functional size, not the environmental or technical issues (GSC’s).