Albrecht function point analysis

This is a top-down method that was devised by Allan Albrecht when he worked for IBM. Albrecht was investigating programming productivity and needed some way to quantify the functional size of programs independently of the programming languages in which they had been coded. He developed the idea of function points (FPs).

The basis of function point analysis is that computer-based information systems comprise five major components, or external user types in Albrecht's terminology, that are of benefit to the users:

• External input types are input transactions that update internal computer files.

• External output types are transactions where data is output to the user. Typically these would be printed reports, since screen displays would come under external inquiry types (see below).

• Logical internal file types are the standing files used by the system. The term 'file' does not sit easily with modern information systems. It refers to a group of data that is usually accessed together. It might be made up of one or more record types. For example, a purchase order file might be made up of a record type PurchaseOrder plus a second that is repeated for each item ordered on the purchase order - PurchaseOrderItem.

• External interface file types allow for output and input that might pass to and from other computer applications. Examples of this would be the transmission of accounting data from an order processing system to the main ledger system or the production of a file of direct debit details on a magnetic or electronic medium to be passed to the Bankers Automated Clearing System (BACS). Files shared among applications would also be counted here.

• External inquiry types - note the US spelling of inquiry - are transactions initiated by the user that provide information but do not update the internal files. The user inputs some information that directs the system to the details required.

The analyst has to identify each instance of each external user type in the projected system. Each component is then classified as having either high, average or low complexity. The counts of each external user type in each complexity band are multiplied by specified weights (see Table 5.2) to get FP scores, which are summed to obtain an overall FP count, which indicates the information processing size.

See A. J. Albrecht and J. E. Gaffney Jr., 'Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation' in M. Shepperd (ed.) Software Engineering Metrics Volume 1, McGraw-Hill, 1993.

Albrecht also specifies that outgoing external interface files should be double counted as logical internal file types as well.

The International FP User Group (IFPUG) have developed and published extensive rules governing FP counting. Hence Albrecht FPs are now often referred to as IFPUG FPs.

the technique has no direct bearing on object-oriented techniques. The approach uses counts of the screens, reports and 3GL components that an application might possess - it is these that are referred to as objects. Each object has to be classified as one of the following:

Table 5.6 and Table 5.7 show the scheme used to make this classification. The numbers of objects at each level are multiplied by the appropriate complexity weighting shown in Table 5.8. The weighted sub-totals are then summed to get an overall score for the application.

Table 5.6 Object Points for screens

Number of views contained

Number and source of data tables

Total < 4 (<2 servers <3 clients)

Total < 8 (<3 servers 3 to 5 clients)

Total > 7 ( >3 servers > 5 clients)





3 to 7








Further details can be found in R. Kauffman and R. Kumar's report 'Modelling Estimation Expertise in Object Based ICASE Environments', Stern School of Business, 1993.

In other development environments, other types of object and other weightings would be more appropriate.

Further details can be found in R. Kauffman and R. Kumar's report 'Modelling Estimation Expertise in Object Based ICASE Environments', Stern School of Business, 1993.

Table 5.7 Object Points for reports

Number and source of data tables

Number of sections contained <j clients) 3 to 5 clients) > 5 clients)

< 2 simple simple medium

2 or 3 simple medium difficult

> 3 medium difficult difficult

Table 5.8 Object Points complexity weightings

Complexity weighting

Object type












3GL component



Some of these objects might not need to be developed as there are already existing components that can be utilized. The object point score can be adjusted to take this into account. Say that in an application containing 840 object points, 20% can be supplied by using existing components, then the adjusted new object points (NOP) score would be:

Finally a productivity rate (PROD) has to be identified. It would be best if the estimator could use details of past projects to derive this. As an example, the developers of object points have published the details in Table 5.9 to calculate PROD. In the situation where this information was gathered, as the CASE tool's features were improving with successive releases, so the experience of the developers with the tool was growing too.

Table 5.9 Object point effort conversion

Developer's experience and capability/ICASE maturity and capability

Very low

Low Nominal High

Very high



7 13 25


An estimate of the person-months needed to carry out the project is then calculated by dividing PROD into NOP. For example, given the 672 new object points above and a development environment where productivity was nominal, then the estimated effort for the project would be 672/13 = 52 months.

Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook


  • Thomas
    How albrecht function point analysis is done in spm?
    3 years ago
  • stefanie
    What is albercht functional point analysis in spm?
    2 years ago

Post a comment