Thinking Integration ....& Automation -3
FPA Calculations and linking it with Model from Thinking Integration ....& Automation -2
A brief introduction to Function Point Analysis was given in FPA Overview and pre-cursor to this is A New Angle to FPA
However, here is an introduction which will help us to deep dive into the calculations
Alan Albrecht during the 1970s was working at IBM and by 1979 had developed Function Point Analysis Technique for software sizing which paved the way for the creation of International Function Points User Group or IFPUG.This technique requires one to take an external view of an application while also understanding the internal nuts and bolts. To achieve this, the first step is to define the application or in other words, setup a perimeter. While in the process inevitably one arrives at the following parameters :-
Internal Logical Files (ILF) : The files/messages flowing/residing inside the system
External Logical Files (ELF) : Inbond and Outbound files/messages
External Input (EI) : The inbound pings/user-inputs/API-Calls/ etc to the system
External Output (EO) : What the system outputs(pings/user-outputs/API calls etc) to external entities
Further mining down on the above-mentioned parameters, we get the follwoing sub-classifications:-
(The formal definitions follow)
Record Element Type: A RET is user recognizable sub group of data elements within an ILF or an EIF. It is best to look at logical groupings of data to help identify them.
File Type Referenced (FTR): A FTR is a file type referenced by a transaction. An FTR must also be an internal logical file or external interface file.
Data Element Type (DET): A DET is a unique user recognizable, non-recursive (non-repetitive) field
However for all practical purposes,
An RET is the overall types of EI or EO
An FTR is the overall types of ILF or EIF
A DET is the individual elements of the overall types.
Measuring these entities and mapping against a standardized complexity metrics yields a sizing measurement called ‘unadjusted function point’. The adjustment in essence is needed to take into account the influence of certain non-functional aspects of software. Albrecht defined fourteen such factors which are rated on a scale 0-5 based on the understanding of the estimator. The ‘Total Degree of Influence’ or ‘TDI’ of the non-funtional aspects is the summation of the grades given to each of the factors.
i.e 1<= TDI <= 70
The adjustment factor is subsequently calculated by using the formula :-
VAF=(TDI*0.01) + 0.65
The FPA is hence calculated by measuring the complexity of the functional entities involved and the influence of non-functional aspects (termed as ‘general systems characteristics) on them by using the formula :-
FPA= (VAF*UFP)
Now let us understand with the model at hand from :-
Step 1: - Identify the system under estimate : SFG + ETS
Step 2: - Identify all the parameters:-
Internal Logical Files (ILF) : The files/messages flowing/residing inside the system
External Logical Files (ELF) : Inbond and Outbound files/messages
External Input (EI) : The inbound pings/user-inputs/API-Calls/ etc to the system
External Output (EO) : What the system outputs(pings/API calls etc) to external entities
External Queries (EQ) : Output to users like search
Step 3: - We calculate the sum of DETs
Step 4 :- Complexities against the DETs are taken from IFPUG standards and averaged out and the DETs are summed up to get :-
Step 5 :- The next step is to calculate the ‘Unadjusted Function Point’ . Here the first sub-step is to multiply the sum of DETs and average complexity to give a weighted function point against each parameter and then the next sub-step is to add up the weighted function points which we refer as Unadjusted Function Point:-
Step 6 :- We calculate the ‘Total Degree of Influence’ of the 14 standard ‘General System Characteristics’ (GSCs) by rating them on a scale of 1- 5 (5 indicatign highest level of importance) and then summing the numbers to get Total Degree of Influence
Step 7 :- Now we calculate the ‘Complexity Adjustment Factor’ using the standard formula of CAF=0.65+(0.01*TDI)
Step 8 :- Finally the Function Point Estimate of our System Under Estimation is :-
FPA = CAF* UFP
So, following is what was achieved :-
We created a digital model of our requirement/solution
We identified the use cases
We identified the missing requirements - an automation of static test over requirement
The relative size based estimation of the solution was also arrived at
This helped us in achieving integration from requirement to use case identification to estimation.
Next Up : Defect Prediction using FPA……