Function points are a work-product measure, meaning that they quantify data processing work outputs. As the name implies, function points actually measure the amount of information processing function, in other words, the functionality' of an application system. The function point concept was developed and refined by Alan Albrecht at IBM.
Function points provide an objective measure of application 'size' that can be used to compare different kinds of systems. Albrecht's counting technique takes into account the different types of information processing functions within a system as well as the degree of influence certain system characteristics have on function complexity. When function point counts are coupled with work-effort measures (i.e., cost to build system) and are analyzed in conjunction with project-specific attributes, productivity can be measured and the relative effectiveness of development approaches, tools, and project teams can be evaluated. This same information can be used to forecast or estimate future project work effort.
The Function Point Measurement Process
There are three major activities involved in establishing a function point count for a system. The first is identification of the system's information processing functions. The second is determining the degree of influence 14 predefined characteristics have on the specific system being measured. Finally, mathematical calculations are used to properly weight the functions and adjust for specific system characteristics.
Part I - Quantifying the Amount of Information Processing Function
The system is reviewed (i.e., the functional requirements or specs are reviewed if the system is not yet developed) and all functions are classified, counted, and weighed.
Each function is identified as one of the five following function types:
- External Input type - A unique data group that enters from outside the system boundaries (e.g., user input) and adds or changes system data (e.g., screen input, card/tape input).
- External output type - A unique data group that leaves the system boundaries (e.g., reports, screen output, card/tape output).
- Logical Internal file type - A major logical (not physical) data group or view (e.g., DB View, table, logical file) generated, used and maintained within the boundaries of the system.
- External Interface file type - Same concept as external output types but only that data specifically being sent to or from another system.
- External Inquiry type - A unique input/output combination, where a specific input generates an immediate output (e.g.. key search, help screen, selection menu).
Each function is also assigned a classification of low, average, or high based on the number of data items processed, format complexity, human factors, etc.
The total number of functions for each of the 15 possible categories (five types times three classifications) is determined.
Part II - Quantifying System Characteristics
The system being measured is then looked at in terms of 14 general system characteristics. The degree of each characteristic's importance or 'influence' on the overall system is estimated. The 14 general characteristics are:
A degree of influence from zero to five. Is assigned to each of the above characteristics, as follows:
- Data communications - The communications facilities that are used to send and receive application data and control information.
- Distributed functions - The extern that application data and/or processing functions are distributed.
- Performance - The effect of performance requirements and objectives on design and development of the application.
- Heavily used configuration - Special design considerations are necessary because the target operational configuration is heavily used.
- Transaction rate - High rates that influence the design and development of the application.
- On-line data entry - The extent of on-line entry and control functions in the application system.
- End user efficiency - The extent that the on-line functions have been designed for user efficiency.
- On-line update - Logical internal files can be updated on-line.
- Complex processing - The extent of security, mathematical, or exception processing etc.
- Reusability - The application code has been specifically designed to be reused in otherapplications.
- Installation ease - The ease of conversion/installation was specifically emphasized in the design and development of the application system.
- Operation ease - Start-up, recovery, backup, etc. were specifically emphasized.
- Multiple sites - The application will be installed and used by more than one organization and/or in more than one site.
- Facilitate change - Maintainability was emphasized in the design with table-driven controls. flexible queries, etc.
0 = No influence
1 = Insignificant
2 = Moderate
3 = Average
4 = Significant
5 = Strong influence throughout
Part III - Determining the Degree of Influence
After quantifying the information processing function and system characteristics, the following steps are performed to create a final function point count for the application system.
1. An unadjusted function count is produced:
a) The number of functions in each of the 15 categories (Part 1) is multiplied by a predefined weighting factor.
b) The weighted figures from each category are added together to produce a unadjusted function count.
2. An adjustment factor is produced from the system characteristics:
a) The degree of influence ratings (0 - 5) for the 14 general characteristics are added together to produce a total
b) The total is multiplied by .01, then the result is added to .65.
3. The actual function point metric is now calculated:
a) The result from Step 1 is multiplied by the result from Step 2.
Function Point Counting Summary
The three parts of the function point count must be determined individually. The first part is determining the function types within the information system design. Second is quantifying the Characteristics of the system from which the function points have been counted. Finally, the function types are then weighted and totaled, and the general characteristics are used to adjust that total, giving a function point count, which is comparable from information system to information system.