Early Function Point Analysis

Nesma recognizes three function point analysis methods:

  • Detailed function point analysis
  • Estimated function point analysis
  • Indicative function point analysis

All these three methods are a self-contained 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 de software development life cycle or in case the functional size needs to be determined fast.

The information on this page is also available as a free document
in DutchEnglish, Portuguese and Japanese.

Detailed FPA

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

High-level FPA (a.k.a. estimated FPA)

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.

Indicative FPA

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.

Example of indicative, high-level and detailed FPA

This section illustrates the three FPA methods by a small case study: an application that maintains Customer data and Product data, and references Supplier data. The more accurate functional size one wants, the more detailed user requirements one needs. That’s why this case study presents the three methods of function point analysis in the order of increasing accuracy:

  • Indicative function point analysis
  • High-level (estimated) function point analysis
  • (Detailed) function point analysis

Indicative FPA

For an indicative function point analysis just information about the data functions is needed.

User requirements:

  • user wants to maintain Customer data and Product data, and to reference Supplier data.

This (rough) specification is enough for an indicative function point count:

  • ILF: Customer and Product
  • EIF: Supplier
Data function

Function type

Function points
(by default)

Customer

ILF

35

Product

ILF

35

Supplier

EIF

15

Indicative functional size

85 fp

High-level FPA

To perform a high-level function point analysis we also need information about the transactional functions, so more detailed user requirements are necessary: User requirements:

  • User wants to add, change, delete Customer data, wants to inquire on Customer, and also requires four different reports on Customer with calculated data
  • User wants to add, change, delete Product data, wants to inquire on Product, and also requires a report on Product with calculated data
  • User wants to inquire on Supplier using supplier number, and also requires a report on Supplier with totaling results

This more detailed specification of the user requirements shows the actual amount of transactional functions, and therefore enables an estimated function point count.

Data or transactional function

Function type

Complexity (by default)

Function points (unadjusted)

Customer

ILF

Low

7

Product

ILF

Low

7

Supplier

EIF

Low

5

Add Customer

EI

Average

4

Change Customer

EI

Average

4

Delete Customer

EI

Average

4

Inquire on Customer

EQ

Average

4

Report 1 on Customer

EO

Average

5

Report 2 on Customer

EO

Average

5

Report 3 on Customer

EO

Average

5

Report 4 on Customer

EO

Average

5

Add Product

EI

Average

4

Change Product

EI

Average

4

Delete Product

EI

Average

4

Inquire on Product

EQ

Average

4

Report on Product

EO

Average

5

Inquire on Supplier

EQ

Average

4

Report on Supplier

EO

Average

5

 Estimated functional size

85 fp

Detailed FPA

To carry out a detailed function point count, one does not only need the number of functions of each function type (EI, EO, EQ, ILF, EIF), but one also needs to determine the functional complexity of each individual function (Low, Average, High). In FPA, the functional complexity of a (data or transactional) function is determined, based on the number of DETs, RETs and File Types Referenced that are relevant to this function. That’s why the user requirements (as they were stated above in this example when we discussed the estimated function point count) need to be analyzed in more detail: which data elements (DETs) and logical files (File Types Referenced) are used by a transactional function (EI, EO, EQ), and which logical data groups (RETs) and data elements (DETs) a data function (ILF, EIF) consists of. This detailed analysis of the user requirements could result in the following function point count:

Data or transactional function

Function type

Complexity

Function points (unadjusted)

Customer

ILF

Average

10

Product

ILF

Low

7

Supplier

EIF

Low

5

Add Customer

EI

High

6

Change Customer

EI

Average

4

Delete Customer

EI

Low

3

Inquire on Customer

EQ

Low

3

Report 1 on Customer

EO

Low

4

Report 2 on Customer

EO

Average

5

Report 3 on Customer

EO

Low

4

Report 4 on Customer

EO

High

7

Add Product

EI

Average

4

Change Product

EI

Low

3

Delete Product

EI

Low

3

Inquire on Product

EQ

Average

4

Report on Product

EO

Average

5

Inquire on Supplier

EQ

Low

3

Report on Supplier

EO

Average

5

Functional size

85 fp

Conclusion

In this particular case study all three methods result in the same functional size of 85 function points. Usually the results are not exactly the same, but still are pretty close to each other. Below the results of research on the accuracy of the estimated and indicative function point analysis methods are shown.

Results of research based on a 100+ projects data base

Using a database of about 100+ developed and implemented applications Nesma did research on the accuracy of the estimated and indicative FPA approximation methods. The implemented applications were simultaneously measured using all three FPA methods. The results are presented in two graphs:

1. the size measured via the high-level function point analysis method versus the size measured via the detailed function point analysis method:

estdetfp

2. the size measured via the indicative function point analysis versus the size measured via the detailed function point analysis method:

inddetfp

There is a good correlation (straight line) in both cases. In the graph of the indicative function point analysis, however, there are considerable deviations (up to about 50%) in some cases. That is why one should be careful using the indicative function point analysis. The strength of this indicative FPA method is that one easily gets a rough estimate of the size of an application in only a very short time.

In an application with more (or less) than a normal amount of inputs or outputs, one might need to change the multipliers of 35 and 15, but the philosophy behind the approach can generally be used.

When to use which method for function point counting

A detailed function point analysis is more accurate than an estimated or an indicative analysis, but it also costs more time and needs more detailed specifications. It’s up to the project manager and the phase in the system life cycle as to which function point analysis method is used.

The results of the high-level function point analysis and the detailed function point analysis are very close. There is no statistically significant difference in the outcomes of both FPA methods. That’s why many organizations have chosen to use the high-level FPA method by default, instead of the detailed FPA method.

In many applications an indicative function point analysis gives a surprisingly good estimate of the size of the application. It is often relatively easy to carry out an indicative function point analysis, because a data model is available or can be made with little effort. Be careful in using this method, because it provides just a rough indication of the size, and deviations are possible.