Function Points: Their Use in Software Development and Maintenance
Origination of Function Points
After a number of years in analysis and study, Allan Albrecht of IBM published the function point metric in 1979. He determined that software could be sized by evaluating the external transactions processed by an application or subsystem and the databases that were used. He considered this method far more practical than Lines of Code. IBM further enhanced the definition of function points in 1984 to provide individual complexities and a set of system characteristics.
In 1986, the International Function Point Users Group (IFPUG) was formed and assumed the responsibility for standardization and promulgation of the metric. There will be more information later in this article on IFPUG. The counting process included in this article is not all-inclusive and must be complemented with the rules defined in the IFPUG Counting Practices Manual.
Function points are a synthetic method, much the same as BTUs or temperature, that permit the calculation of a relative size for individual software projects, applications, or subsystems even in their early requirements stages. Function point counting typically occurs when a developer wants to size and estimate development time and effort for an application or a project. Other factors must be considered as well when estimating effort. The factors include:1
-
Application complexities, such as logical complexity, mathematical complexity, security requirements, and so on
-
Performance considerations
-
Source code languages being used
-
Extent of reusable components from previously developed documents and code
-
Skill sets of both development and user personnel in all phases
-
The process and technology to be applied in development and maintenance
-
The environment in which development will take place
When the impact of selected risk and complexity factors is considered, the effort required for development or maintenance of a certain range of function points can be estimated accurately.