Function point counting methodology is the most accurate approach available for determining software size. Traditionally, function point counting is done by trained, certified function point counters. Function points are a unit of measure used to define the value that the end user derives, or the functional business requirements the software is designed to accomplish. Each application has a specific number of function points, which are used to benchmark cost and productivity or development and maintenance activity.
More recently, automated function point counting can be performed using static analysis to reverse engineer the application architecture and data model. Automated counts may be performed on applications consisting of different technologies or very large programs without requiring human involvement throughout the process. While manual assessment methods are an option, they can be more expensive and less consistent than automated function point counting, as well as time consuming. An automated count derives a consistent score every time it is performed, based on the source code. An organization can use this measurement to continuously monitor productivity, throughput, complexity, and quality as applications are created or enhanced.
Function point counting is a measurement concept that was originated in 1979 by Allan Albrecht of IBM. As part of this concept, Albrecht determined software could be sized by assessing processed external transactions. IBM advanced this methodology in 1984 to include the evaluation of application complexity and categorization of system characteristics. Today, the function point counting methodology has been refined to provide a dependable, repeatable form of code analysis through automated analysis solutions.
Function point counting is unique because it allows organizations to evaluate the functional weight of software deliverables during any point of the development life cycle without necessarily understanding the functionality itself. The takes into account these factors during calculation:
Function point counting calculates a single value, which represents the total amount of functionality being delivered by an application. Size is then communicated as a stand-alone value or segmented to display information regarding specific software components.
Function point counting offers insight regarding the output provided by outsourcing providers and can be used to measure and track organizational transformation efforts. Automated solutions offer a faster, more accurate approach to determining application size and complexity. The generated base function point measurement and benchmarks help an organization monitor:
CAST AIP is an enterprise level solution offering the capability to count function points through analyzing the delivered source code across a complex, multi-tier infrastructure consisting of multiple technologies. CAST also provides measurement of software quality complexity and technical debt, while providing function point counting capability.