Function Point Analysis explained in brief
- Function Point or FP is a standard method for measuring software development from user's perspective.
- It is a unit of functional size of a project or an application. It measures functionality delivered to the user or functionality which user requests and receives. Functionality refers to the Functional User Requirements which capture the intended behavior of the system. The behavior may be expressed in terms of functions, tasks or services associated with the application/ project. For example, writing, editing texts, statements are two functions or functionality of MS Word application.
- FP methodology was first introduced by Allan Albrecht while working in IBM. The objective was to create an alternative to LOC method to determine the size of any application or project.
- FP method is independent of the technology, platform, or development language. As a result it can be consistently applied across varied types of projects.
- Although it is said and many times proven that FP method can be applied across the entire spectrum of applications, it tends to give logical and consistent results for data rich applications such as MIS.
- FP method introduced by Allan Albrecht in 1979 was adopted by a group of FP enthusiasts in order to promote its usage across the world. This group was later named as International Function Points Users Group or IFPUG.
- IFPUG released a Common Practice Manual or CPM which comprised of all the rules drafted by Allan Albrecht in his original paper.
- Currently CPM 4.3 is in use. It was released in 2010.
- Apart from IFPUG's FP method there are other variations available such as Software Productivity Research's (SPR) Feature Points, COSMIC' s Full Function Points, Object Points, NESMA Function Points etc.
- As mentioned earlier, FP is a functional size of an application or a project similar to what a mile/ km is to the distance or a Kg/Lb is to the weight.
- Following are the benefits of using FP method for sizing an application
- Once size of an application is known, it can be used as an input for estimating cost, efforts, schedule and other important metrics.
- FP can be applied at any stage of SDLC, be it requirements, design, coding or testing.
- FP is independent of technology or platform so gives consistent and logical results.
- FP can be used to evaluate two COTS products.
- It can be used to maintain an application portfolio.
- IFPUG FP method defines five components
- ILF or Internal Logical Files
- EIF or External Interface Files
- EI or External Input
- EO or External Output
- EQ or External Inquiry
- Essentially, there are two types of functions to be considered while calculating FP, VIZ. Data Functions and Transaction Functions.
- Data Functions describe the data at rest whereas Transaction Functions describe the data in motion.
- Data Functions - Represent the functionality provided to the user to meet the internal and external data storage requirements.
- Transaction Functions - Represent functionality provided to the user to process data.
- ILFs and EIFs constitute Data Functions whereas EI, EO and EQ constitute Transaction Functions.
- ILF - It is a user recognizable group of logically related data or control information maintained within the boundary of the application being measured. The primary intent of an ILF is to hold data maintained through one or more elementary processes of the application being measured.
- EIF - It is a user recognizable group of logically related data or control information referenced by the application being measured, but which is maintained within the boundary of another application.The primary intent of an EIF is to hold data referenced through one or more elementary processes within the boundary of the application measured.
- The primary difference between an internal logical file and an external
interface file is that an EIF is not maintained by the application being measured, while an ILF is maintained by the application being measured - EI - An External Input is an elementary process that processes data or control information sent from outside the boundary. The primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system.
- EO - An external output (EO) is an elementary process that sends data or control information outside the application’s boundary and includes additional processing beyond that of an external inquiry. The primary intent of an external output is to present information to a user through processing logic other than or in addition to the retrieval of data or control information.
- EQ - An external inquiry (EQ) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external inquiry is to present information to a user through the retrieval of data or control information. The processing logic contains no mathematical formula or calculation, and creates no
derived data. - For each function, a complexity needs to be determined. For Data Functions, complexity is calculated based on # of DETs (Data Element Types) and # of RETs( Record Element Types). For Transaction Functions, complexity is calculated based on # of DETs and # of FTR (File Type Referenced).
- Complexity can be Low, Average and High.
- Based on the complexity a FP value is determined for each Data and Transaction Function.
- DET - It is a unique, user recognizable, non-repeated attribute.
- RET - It is a user recognizable subgroup of data elements within an ILF or EIF.
- FTR - It is a data function read or maintained by a transaction function.
- FP values for all the functions are added to get the final FP size of that project or application.
- This FP size is called as Unadjusted FP size.
- This size is further adjusted with a VAF or Value Adjustment Factor. This factor takes care of the technical aspect of an application. It comprises of 14 General System Characteristics such as data communication, distributed data, performance, end user efficiency etc which are required to be rated on 0-5 scale (0 being no influence on the application and 5 being maximum influence on the application). VAF adjusts FP size by +-35%.
- Adjusted FP size = Unadjusted FP * VAF
- Organizations may want to restrict their calculations up to Unadjusted FP size. ISO recognizes Unadjusted FP as functional size.