You are on page 1of 45

Function Point Estimation

1. FP : Function Point

2. ILF : Internal Logical File. 3. EIF : External Interface file

4. EI : External Inputs

5. EO : External Outputs

6. EQ : External Enquiries

7. RET : Record Element Type

8. DET : Data Element Type

9. FTR : File Type Reference

10. GSC : General System Characteristic 11. VAF : Value Added Factor 12. LOC : Line of code

1.Internal logical file (ILF): This contains logically related data that resides inside application boundary. The application has to maintain data . Example like customer table which will be maintained through a Customer data entry screen. Note the inside application data is updated and not any external data. But if you are updating external application table, those tables will not be categorized as ILF. This contains components which will lie external of application boundary and used for only for reference purpose. Note : Do not include functionality like updating the external application in this section EI is basically from which we can maintain the ILF. Accountants definitely should have interface through which they can maintain (Add, Update, Delete) the customer ILF. The basic judgment factor to come out with EI is from user screens. Like, a customer maintenance screen which gives us an idea that we have 1 EI and 1 ILF of customer. Here data passes from inside application to outside. Example your application generates XML or CSV ( Comma separated values) Files. These files are then used by some external application to update the external application tables. So in this scenario the data is passed from your application to a external application. So these types of function will fall in this category. When you send data to external application if you are getting some output from external application. Later this output is updated in the ILF of internal application is also scenarios which will come under EO. So litmus test for identifying EO's are :a) When data crosses boundary and goes and updates external application tables(EIF). b) In response of you data sent you get some derived data which is updated in the internal application(ILF). These functions will be mainly reports. They have input criteria. Any type of reports and search screens are right components for EQ.Note like EI and EQ they do not update any ILF or EIF.They only fetch data for display. So the litmus test for identifying EQ is any reports or search screens which do not update data in any tables(ILF or EIF).Example Balance sheet in accounting reports. A subgroup of data element inside a logical file. In our customer ILF, we can have multiple addresses or multiple phone numbers. So for the customer, we can have 2 RETs, Addresses and Phone numbers. DET is a non-repetitive field in a ILF. Please note, I have said that field should not repeat in counting again. Every customer ILF can have Customer Code. So the customer code becomes a DET. Every invoice can have customer code saying whom this invoice belongs to. But once the customer code has been counted, do not count customer code twice as two different DETs. But in practical scenarios, when doing function point of huge projects, there is possibility that you can count DET twice, make a second iteration just for removing the duplicate DETs.

An FTR is a file referenced by transaction. An FTR must also be an internal logical file or external interface file.

General System Characteristic Section (GSC): This section is the most important section. All the above 3 sections are counting sections. They relate only to application. But there are other things also to be considered while making a software, like are you going to make it an N-Tier application, what's the performance level the user is expecting etc. These are external factors which affect the software a lot and also the cost of it. When you submit a function point to a client, he normally will skip everything and come to GSC first. GSC gives us something called as VAF (Value Added Factor). There are 14 points considered to come out with VAF (Value Added factor). 1.Data communications: How many communication facilities are there to aid in the transfer or exchange of information with the application or system? 2.Distributed data processing: How are distributed data and processing functions handled? 3.Performance: Did the user require response time or throughput? 4.Heavily used configuration: How heavily used is the current hardware platform where the application will be executed? 5.Transaction rate: How frequently are transactions executed; daily, weekly, monthly, etc.? 6.On-Line data entry: What percentage of the information is entered On-Line? 7.End-user efficiency: Was the application designed for end-user efficiency? 8.On-Line update: How many ILFs are updated by On-Line transaction? 9.Complex processing: Does the application have extensive logical or mathematical processing? 10.Reusability: Was the application developed to meet one or many users needs? 11.Installation ease: How difficult is conversion and installation? 12.Operational ease: How effective and/or automated are start-up, back up, and recovery procedures? 13.Multiple sites: Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple organizations? 14.Facilitate change: Was the application specifically designed, developed, and supported to facilitate change? All the GSC have ratings from 0 to 5. So, the VAF formulae is something like this: VAF = 0.65 + ((sum of all GSC factor)/100).

Transaction Section: Transaction section uses data section, that is, it maintains information of ILF and EIF. Excuse me for the short acronyms I am using everywhere, like the ILF and EIF there's acronym list at top for everything. All the down 3 components adds,modifies,deletes,retrieve s or process information contained in ILF and EIF so are termed as Transaction Section.

EI Rating Table
Data Elements FTR Less than 2 2 >2 1 to 4 3 3 4 15-May >15 3 4 6

4 6 6

EO Rating Table
FTR <2 2 or 3 >3 Data Elements 1 to 5 4 4 5 19-Jun >19 4 5 7

5 7 7

EQ Rating Table
FTR <2 2 or 3 >3 Data Elements 1 to 5 3 3 4 19-Jun >19 3 4 6

4 6 6

ILF Rating Table


Data Elements RET 1 RET 2 to 5 >6 1 to 19 7 7 10 20-50 7 10 15 51 or more 10 15 15

EIF Rating Table


Data Elements RET 1 RET 2 to 5 >6 1 to 19 5 5 7 20-50 5 7 10 51 or more 7 10 10

The following table says what we have to see: for every transaction which subsection is eligible.If you Section EI EO RETs FTRs 1 1 DETs 1 1

EQ EIF ILF

1 1 1

1 1 1

Simple Customer Project Simple Customer Project

This is a simple project requirement where we are supposed only to do the customer form and with address det

There are 2 ILFs in the above screen: 1. The customer ILF. 2. The Customer Address ILF. There are no EIFs in the above form. ILF Customer Description

Number Number of DET of RET

There are total 10 10 DETs, all add and update buttons, even the credit check button, the address list box, check box active, all text boxes. There is only one RET, the customer addresses. Note i have not included the credit check as RET as they are not Subelements(Child elements of Customer ILF). So according to Total function the above ILF ranking table ILF Customer addresses Description

Number Number of DET of RET 0

There are total 3 3 DETs, all the column names in the list box, city name, street name and pin code. For the customer address ILF there are no RET.Please note if this customer address screen is any where else and they have RET then make changes accordingly. Total FP EIF Credit card Information Description

Number Number of DET of RET

The credit card 1 information referenced is EIF.Note this file is only referenced for credit card check. There's only one textbox credit card number and hence one DET is put in the side column. and RET 0.Looking at the above rating table the total FP is 5. Total FP EI Customer Description

Number Number of DET of FTR 2

There are total 10 10 DETs, all add and update buttons, even the credit check button, the address list box, check box active, all text boxes. There are 2 FTRs, one is the address and the second is the credit card information. Referring ranking Total Function table above

While counting EI i have seen many people multiplying it by 3.That means we are going to do all CRUD function EO Customer

No EO for this screen. As Customer system is not sending any information to external system which will add or update the external system. EQ Customer No EQ for this screen.At this moment there is no reports section here.Please note the display of cutomer addresses is not counted as EQ. So now, let's add the total function point got from above tables : Function Point Counted 7 7 5 5

Section Name ILF Customer ILF Customer Address EIF credit card information EI Customer Total Unadjusted Function Points

24

So all function point comes to 24.Please note i have said this as Unadjusted function as we have not accounted

In order to make it adjusted function point, we have to calculate and tabulate the GSC and come out with the V GSC Data communications Distributed data processing Performance Heavily used configuration Value(0-5) 1 1 4 0

Transaction rate On-Line data entry End-user efficiency On-Line update Complex processing Reusability Installation ease Operational ease Multiple sites Facilitate change Total So using formulae:

1 0 4 0 0 3 4 4 0 0 22

Collapse | Copy Code


VAF = 0.65 + ((sum of all GSC factor)/100). = 0.65 + (22/100) = 0.87.

This factor affects the whole FP like anything, be very particular with this factor. So now, calculating the adjusted FP = VAF * Total unadjusted FP = 0.87 * 24 = 20.88 = rounded to 21 FP. Now we know that the complete FP for the customer GUI is 21 FP. Now calculating the efficiency factor, we say

orm and with address details of it. Following is the screen.

ng to do all CRUD functionality(ADD,UPDATE,DELETE).This is not fair as it just shows laziness of the Cost estimation team.

as we have not accounted other variance factor of project (Programmers leaving job, Language we will use, What architect

C and come out with the VAF.

ow, calculating the

e efficiency factor, we say that we will complete 3 FP per day, that is 7 working days. So, the whole customer GUI is of 7 w

s of the Cost estimation team. Here the customer screen has add and update. I can say the 2 * 4 that's = 8 FP for this EI

ge we will use, What architecture etc etc).

whole customer GUI is of 7 working days (Note do not consider Saturday and Sundays in this). I know upper manager pe

2 * 4 that's = 8 FP for this EI customer. But i adjust this factor in my buffer. If you start multiplying for every master scre

is). I know upper manager people will say make it 7 FP per day and over load the programmer. Thats why programmer w

tiplying for every master screen like this it will be not fair for the customer. So make a genuine count at the first half and

mer. Thats why programmer works at night.

ine count at the first half and later in buffer add the extra FPs.So over here i count this as 1 EI and not multiply by any fac

EI and not multiply by any factor.

You might also like