Early Function Point Counting


The NESMA recognizes three types of function point counts:

  • detailed function point count
  • estimated function point count
  • indicative function point count

The methods estimated and indicative function point counts have been developed by NESMA to enable function point counting early in the system life cycle. The NESMA indicative function point count is well known in the world and is referred to as "the Dutch method".

This page discusses the different methods for function point counting, their applicability, and results of research to determine the accuracy of each of the methods.

You'll find on this page:

The (detailed) function point count

The (detailed) function point count is the usual function point count 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

To overview of page

The estimated function point count

The estimated function point count 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 with the usual function point count is that the complexity is not determined per individual function, but by default.

To overview of page

The indicative function point count

The indicative function point count 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 estimate is based solely on the present logical files (ILFs and EIFs)

The indicative function point count 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.

To overview of page

Example of  indicative, estimated and detailed function point counts

This section illustrates these three types of function point counts by a small and simple case study: an application that maintains Customer data and Product data, and references Supplier data.

The more accurate function point count one wants, the more detailed user requirements one needs. That's why this case study presents the three methods of function point counting in the order of increasing accuracy:

  • indicative function point count
  • estimated function point count
  • (detailed) function point count.

Indicative function point count

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

Estimated function point count

To perform an estimated function point count 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 function point count

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. Later on this page you'll see the results of research on the accuracy of the estimated and indicative function point counts.

To overview of page

When to use which method for function point counting

A (usual or detailed) function point count is of course more accurate than an estimated or an indicative count; 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 type of function point count can be used.
In many applications an indicative function point count gives a surprisingly good estimate of the size of the application. Often it is relatively easy to carry out an indicative function point count, because a data model is available or can be made with little effort.

To overview of page

Results of research based on a 100+ projects data base

Using a database of about 100 developed and implemented applications the NESMA did some research on the accuracy of the estimated and indicative function point counts. The implemented applications were simultaneously measured using all three types of function point counts. The results are presented in two graphs:

  • the size calculated via the estimated function point count, versus the size measured via the detailed (= usual) function point count

 

  • the size calculated via the indicative function point count, versus the size measured via the detailed (= usual) function point count

We see a good correlation (straight line) in both cases. In the graph of the indicative count, however, we see that there are considerable deviations (up to about 50%) in some cases. That is why one should be careful using the indicative function point count. The strength of this type of count 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 outputs, one might need to change the multipliers of 35 and 15; but the philosophy behind the approach can generally be used.

The result of the estimated function point count and the detailed function point count is very close.

To overview of page


Home