Actions

Function Point Analysis (FPA)

Function Point Analysis (FPA) is a sizing measure of clear business significance. First made public by Allan Albrecht of IBM in 1979, the FPA technique quantifies the functions contained within software in terms that are meaningful to the software users. The measure relates directly to the business requirements that the software is intended to address. It can therefore be readily applied across a wide range of development environments and throughout the life of a development project, from early requirements definition to full operational use.[1]


Function Point Analysis Methods
Nesma recognizes three function point analysis methods:

1. Detailed function point analysis - This is the usual function point analysis method and is performed as follows:

  • Determine all functions of all function types (ILF, EIF, EI, EO, EQ)
  • Rate the complexity of every function (Low, Average, High)
  • Calculate the total unadjusted function point count

2. High Level (a.k.a.Estimated) function point analysis - The high-level function point analysis method is performed as follows:

  • Determine all functions of all function types (ILF, EIF, EI, EO, EQ)
  • Rate the complexity of every data function (ILF, EIF) as Low and of every transactional function (EI, EO, EQ) as Average
  • calculate the total unadjusted function point count

So, the only difference of this approximation with the detailed function point analysis method is that the complexity is not determined per individual function, but by default.

3. Indicative function point analysis - The indicative function point analysis method is performed as follows:

  • Determine the number of data functions (ILFs and EIFs);
  • Calculate the total unadjusted function point count of the application as follows: indicative size (fp) = 35 x number of ILFs + 15 x number of EIFs

So this approximation is based solely on the logical files (ILFs and EIFs).

The indicative function point analysis is based on the assumption that there will be about three EIs (to add, change, and delete information in the ILF), two EOs, and one EQ on average for every ILF, and about one EO and one EQ for every EIF.


All these three methods are a self-contained [Functional-Size-Measurement-FSM-Method|Functional Sizing Measurement (FSM) method] on their own. The high level FPA method and the indicative FPA method do not require detailed user requirements, while the functional size determined using these methods is very close to the functional size determined using the detailed FPA method. That’s why these two methods are very suited to be applied early in the software development life cycle or in case the functional size needs to be determined fast.[2]


Function Point Analysis Template
source: Sourceforge


Function Point Analysis Worksheet

Step 1. Count Number of Functions in Each Category

Step 2. Apply Complexity Weighting Factors

                             Simple     Average 	Complex	

Number of Outputs ____ x 4 ____ x 5 ____ x 7 Number of Inputs ____ x 3 ____ x 4 ____ x 6 Number of Inquiry Outputs ____ x 4 ____ x 5 ____ x 7 Number of Inquiry Inputs ____ x 3 ____ x 4 ____ x 6 Number of Files ____ x 7 ____ x 10 ____ x 15 Number of Interfaces ____ x 5 ____ x 7 ____ x 10 Total (FP):

Step 3. Apply Environmental Factors Environmental Factor Rating (0, 1, 2, 3, 4, 5)

Data Communications Distributed Computing Performance Requirements Constrained Configuration Transaction Rate Online Inquiry and/or Entry End-User Efficiency Online Update Complex Processing Reusability Ease of Conversion/Install Ease of Operation Used at Multiple Sites Potential for Function Change Total (N):

Step 4. Calculate Complexity Adjustment Factor (CAF) CAF = 0.65 + (0.01 x N) =

Step 5. Compute Adjusted Function Points (AFP) AFP = FP (Raw) x CAF =

Step 6. Convert to LOC (Optional) LOC = AFP x LOC/AFP =

Based on the above worksheet below is a figure representing the basic steps in Function Point Analysis
basic steps in Function Point Analysis
source: Güzel Blog


Function Point Analysis Examples[3]
The following examples are based on actual known quantifiable benefits achieved by organizations involved in utilizing function point measurements for performance management.

  • A large financial services company implemented a Function Point Analysis based metrics program in order to identify process improvements and increase productivity. The process identified 12 major process improvement initiatives that were funded based on an analysis of current productivity and forecasted improvements. The company was able to measure a productivity improvement of over 45% for the 2 year period following the implementation of the improvement opportunities.
  • An insurance company piloted Function Points on a number of selected projects. Estimates were revised based on benchmark data that identified unrealistic schedules and budgets. One project also identified a 50% scope creep based on Function Point Analysis. The user customer agreed to additional funding and a 6 month extension to the schedule after being presented with the Function Point details.
  • DoD planned to use a COTS solution to replace a major human resources application projected to cost over $100 million. A Function Fit Analysis was performed using Function Point Analysis to determine how well the COTS matched the requirements. It was discovered that only 2% of the COTS functionality was useable. 98% of the solution would have to be delivered as new development and enhancements to the COTS package. Fortunately, in this situation, the problem was identified early in the process and the proposed COTS solution was rejected
  • A leading software contractor was having major project and relationship management problems with a key customer. Disputes included claims of poorly defined user requirements, significant unpaid scope creep, and unrealistic due dates. The project was Function Point counted 3 times during the initial design phases. The resulting analysis calculated a 300% scope increase. The data was used to gain user involvement, clarify requirements and increase the contract budget and schedule.
  • Based on ongoing function point measurement and productivity analysis, an organization improved productivity by over 40% by reducing over-staffing and non-productive time associated with projects.
  • A customer negotiated a 30% improvement in productivity and a 50% cost reduction (cost per function point) as the result of a baseline study and supplier agreement to outsourcing terms.


Benefits of Function Point Analysis
There are seve­ral bene­fits on applying func­tion point analy­sis in organizations:

  • A tool for deter­mi­ning the size of a purchased pac­kage by coun­ting all the func­ti­ons included.
  • Pro­vi­des assis­tance to users in deter­mi­nation of benefits of a package for their organization, by coun­ting the func­ti­ons that spe­ci­fi­cally match their requi­re­ments. When asses­sing the cost of the pac­kage, the size of the func­ti­ons that will be effec­ti­vely used, the pro­duc­ti­vity and cost of the staff is pos­si­ble to per­form a “make or buy” analysis.
  • Sup­ports the analy­sis of pro­duc­ti­vity and qua­lity, either direc­tly or in con­junc­tion with other metrics such as effort, cost and defects. But if the deve­lop­ment method of the orga­ni­za­tion is cha­o­tic (each pro­ject is deve­lo­ped in a dif­fe­rent way), even if the func­tion points coun­ting of the pro­ject and the effort record have been made cor­rec­tly, the analy­sis of pro­duc­ti­vity among the pro­jects would have been impaired.
  • Sup­ports the pro­ject scope mana­ge­ment. A chal­lenge of any pro­ject mana­ger is to con­trol “scope creep”, or the incre­ase of the scope. To make esti­ma­tes and mea­su­re­ments of func­tion points of the pro­ject at every stage of its life cycle is pos­si­ble to deter­mine whether the func­ti­o­nal requi­re­ments incre­a­sed or decre­a­sed, and whether this vari­a­tion cor­res­ponds to new requi­re­ments or requi­re­ments that alre­ady exist and were just more detailed.
  • Com­ple­ments requi­re­ments mana­ge­ment to assist in verifying the sound­ness and completeness of the spe­ci­fied requi­re­ments. The pro­cess of coun­ting func­tion points favors a struc­tu­red and sys­te­ma­tic analy­sis of the requi­re­ments spe­ci­fi­ca­tion and brings similar bene­fits to a peer review process.
  • A tool for esti­ma­ting costs and resour­ces for software development and main­ta­nance. By car­rying out a count or esti­mate func­tion points early in the lifecy­cle of a soft­ware pro­ject, it’s pos­si­ble to deter­mine its func­ti­o­nal size. This mea­surement can be used as input for many models of effort, time and cost estimation.
  • A tool to sup­port con­tract nego­ti­a­tion. Func­tion points can be used to gene­rate seve­ral ser­vice level indi­ca­tors (SLA – Ser­vice Level Agre­e­ment) in software deve­lop­ment and main­te­nance con­tracts. Besi­des that, it allows con­tract esta­blish­ments by using unit price – func­tion points – where a unit repre­sents a tan­gi­ble asset to the cli­ent. This moda­lity allows for a bet­ter risk dis­tri­bu­tion between the cli­ent and provider.
  • A nor­ma­li­za­tion fac­tor for soft­ware com­pa­ri­son or for com­pa­ri­son of pro­duc­ti­vity in the use of dif­fe­rents methods. Seve­ral orga­ni­za­ti­ons, such as ISBSG, pro­vide a data repo­si­tory of soft­ware pro­jects that ena­ble the imple­men­ta­tion of ben­ch­mar­king with simi­lar pro­jects in the market.


Function Point Analysis Certification
The International Funtion Point users group offers the following certification in Function Points:

  • The CFPS Fellow - The CFPS designation indicates that the accredited individual, by passing a rigorous exam and achieving a score of 90% or better, has mastered the fundamentals of Function Point Analysis at a significant depth and breadth in applying the Function Point Analysis rules.
  • The Certified Function Point Practitioner (CFPP) - The Certified Function Point Practitioner (CFPP) designation recognizes the knowledge and skill at applying the FPA rules that are high but not up to the Certified Function Point Specialist (CFPS) standards. The CFPP requires that the candidate has a minimum of 80% overall on the exam and a minimum of 70% in each of the three sections: Definition, Implementation and Case Study.


References

  1. What is Function Point Analysis? IFPUG
  2. Early Function Point Analysis nesma.org
  3. Examples of Function Point Analysis ifpug.org


Further Reading

  • The Zero Function Point Problem ifpug.org
  • About Function Point Analysis ifpug.org
  • Introduction To Function Point Analysis software metrics
  • Fundamentals and Introduction of Function Point Analysis engr-sjsu.edu
  • To Evaluate the Function Point Analysis: A Case Study [1]
  • A Case Study Approach to Measure the Function Points from the Points of Relationships of UML ijcaonline.org


CIO Desk Reference

(Relevant content on this topic in the CIO Toolkit on CIO Index)