Home > Articles > Information Technology

Function Points: Their Use in Software Development and Maintenance

  • Print
  • + Share This
  • 💬 Discuss
From the author of
Even in software application development and maintenance, you can't manage what you can't measure. The function point methodology is being successfully applied by many organizations to measure software size for existing applications, enhancements to those applications, and new development projects. When coupled with other factors, project delivery rates and maintenance requirements can be accurately estimated and benchmarked. This article addresses the origination of function points as a metric, describes its counting process, provides an example of a count, introduces the International Function Point Users Group, and indicates the future direction of function point usage.

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.

  • + Share This
  • 🔖 Save To Your Account

Discussions

comments powered by Disqus