Function Point Calculation Tool
Estimate software size using the industry-standard function point analysis method
Function Point Analysis Results
Comprehensive Guide to Function Point Calculation: Methods, Examples, and Best Practices
Function Point Analysis (FPA) is the internationally recognized standard for measuring the functional size of software applications. Developed by Allan Albrecht at IBM in 1979, this methodology provides an objective, consistent way to quantify software functionality based on user requirements rather than technical implementation details.
Understanding Function Point Basics
Function points measure software by quantifying its functionality from the user’s perspective. The method evaluates five major components:
- External Inputs (EI): Unique user inputs that process data (e.g., forms, control inputs)
- External Outputs (EO): Unique user outputs that present processed data (e.g., reports, screens)
- External Inquiries (EQ): Unique input-output combinations where no data is processed (e.g., search functions)
- Internal Logical Files (ILF): Logical groups of data maintained within the application boundary
- External Interface Files (EIF): Logical groups of data referenced but maintained by other applications
Function Point Complexity Weighting
Each component is classified by complexity (low, average, high) and assigned function point values accordingly:
| Component Type | Low Complexity | Average Complexity | High Complexity |
|---|---|---|---|
| External Inputs (EI) | 3 FP | 4 FP | 6 FP |
| External Outputs (EO) | 4 FP | 5 FP | 7 FP |
| External Inquiries (EQ) | 3 FP | 4 FP | 6 FP |
| Internal Logical Files (ILF) | 7 FP | 10 FP | 15 FP |
| External Interface Files (EIF) | 5 FP | 7 FP | 10 FP |
The Function Point Calculation Process
Calculating function points involves these key steps:
- Identify the Application Boundary: Determine what’s inside and outside your system
- Count Data Functions: Identify and count ILFs and EIFs
- Count Transactional Functions: Identify and count EIs, EOs, and EQs
- Determine Complexity: Classify each function as low, average, or high complexity
- Calculate Unadjusted Function Points (UFP): Sum the weighted counts
- Apply Value Adjustment Factor (VAF): Adjust for 14 general system characteristics
- Compute Adjusted Function Points (AFP): Multiply UFP by VAF
Value Adjustment Factor (VAF) Components
The VAF considers 14 system characteristics rated from 0 (no influence) to 5 (strong influence):
- Data communications
- Distributed data processing
- Performance requirements
- Heavily used configuration
- Transaction rate
- Online data entry
- End-user efficiency
- Online update
- Complex processing
- Reusability
- Installation ease
- Operational ease
- Multiple sites
- Facilitate change
The VAF is calculated as: VAF = 0.65 + (0.01 × sum of all 14 ratings)
Practical Function Point Calculation Example
Let’s examine a real-world example for a customer relationship management (CRM) system:
| Component | Count | Complexity | FP per Item | Total FP |
|---|---|---|---|---|
| External Inputs | 12 | Average | 4 | 48 |
| External Outputs | 8 | High | 7 | 56 |
| External Inquiries | 15 | Low | 3 | 45 |
| Internal Logical Files | 5 | Average | 10 | 50 |
| External Interface Files | 3 | High | 10 | 30 |
| Unadjusted Function Points (UFP) | 229 | |||
Assuming a VAF of 1.15 (high influence), the adjusted function points would be:
AFP = UFP × VAF = 229 × 1.15 = 263.35 function points
Function Points vs. Other Estimation Methods
Function points offer several advantages over alternative estimation techniques:
| Method | Basis | Advantages | Limitations | Best For |
|---|---|---|---|---|
| Function Points | User functionality | Technology-independent, consistent, ISO standard | Requires training, time-consuming for large systems | Comparing projects, outsourcing, benchmarking |
| Lines of Code (LOC) | Source code size | Simple to count, language-specific | Language-dependent, encourages verbose code | Internal tracking, language-specific comparisons |
| Story Points | Relative complexity | Agile-friendly, team-specific | Not standardized, subjective | Agile development, sprint planning |
| COCOMO | Algorithmic model | Comprehensive, considers multiple factors | Complex, requires historical data | Large-scale project estimation |
Industry Standards and Certifications
Function Point Analysis is governed by several international standards:
- ISO/IEC 20926:2009: International standard for functional size measurement
- ISO/IEC 24570:2005: NESMA (Netherlands Software Metrics Association) standard
- ISO/IEC 29881:2010: COSMIC (Common Software Measurement International Consortium) standard
Professional certification is available through:
- International Function Point Users Group (IFPUG) – Certified Function Point Specialist (CFPS)
- NESMA – Certified Function Point Analyst
Advanced Function Point Techniques
Automated Function Point Counting
Modern tools can automate much of the function point counting process:
- Static Analysis Tools: Analyze source code to identify functional components
- Requirement Analysis Tools: Parse requirements documents for functional elements
- Model-Based Tools: Extract function points from UML or other design models
Popular automated FPA tools include:
- CAST Software
- SciTools Understand
- Function Point WORKBENCH
- SCOPE
Function Points for Agile Development
Adapting function points for agile environments:
- User Story Mapping: Align function point components with user stories
- Incremental Counting: Count function points for each sprint or iteration
- Velocity Conversion: Correlate function points with story points for estimation
- Backlog Refinement: Use function points to prioritize backlog items
Common Challenges and Solutions
Implementing function point analysis often encounters these challenges:
| Challenge | Root Cause | Solution |
|---|---|---|
| Inconsistent Counting | Lack of standardized procedures | Develop counting guidelines, use certified counters |
| Boundary Disputes | Unclear application boundaries | Document boundary definitions early, get stakeholder agreement |
| Complexity Assessment | Subjective complexity ratings | Use decision tables, calibrate with historical data |
| Tool Limitations | Automated tools miss context | Combine automated and manual counting |
| Resistance to Adoption | Perceived as overhead | Demonstrate ROI through better estimation |
Function Point Benchmarking Data
Industry benchmarks provide valuable context for function point analysis:
| Application Type | Average FP per User | Productivity (FP/Month) | Defect Rate (per FP) |
|---|---|---|---|
| Business Applications | 12-18 | 8-12 | 0.2-0.5 |
| Web Applications | 8-12 | 10-15 | 0.3-0.7 |
| Mobile Applications | 5-8 | 12-18 | 0.4-0.8 |
| Embedded Systems | 20-30 | 4-8 | 0.1-0.3 |
| Enterprise Systems | 25-40 | 6-10 | 0.15-0.4 |
Source: National Institute of Standards and Technology (NIST) Software Metrics Program
Function Points in Contracting and Outsourcing
Function points play a crucial role in software contracting:
- Fixed-Price Contracts: Use function points to define scope and price
- Statement of Work: Specify functional requirements in FP terms
- Change Management: Quantify scope changes using FP deltas
- Performance Metrics: Track productivity and quality per FP
- Vendor Comparison: Normalize bids using FP-based metrics
The U.S. General Services Administration recommends function point analysis for government IT contracts to ensure fair competition and accurate cost estimation.
Emerging Trends in Function Point Analysis
Several trends are shaping the future of FPA:
- AI-Assisted Counting: Machine learning to automate complexity assessment
- DevOps Integration: Continuous function point tracking in CI/CD pipelines
- Cloud-Native FPA: Specialized counting rules for serverless and microservices
- Blockchain Measurement: Function point models for smart contracts
- User Experience FP: Extending FPA to measure UI/UX complexity
The National Institute of Standards and Technology is currently researching standardized function point counting methods for AI/ML systems as part of their Software Assurance Metrics and Tool Evaluation (SAMATE) project.
Getting Started with Function Point Analysis
To implement FPA in your organization:
- Training: Certify at least 2-3 team members as CFPS
- Pilot Project: Start with a small, well-defined project
- Tool Selection: Choose counting tools that fit your development process
- Guidelines Development: Create organization-specific counting rules
- Historical Data Collection: Build a repository of completed project FP counts
- Continuous Improvement: Regularly review and refine your process
Begin with the IFPUG’s Counting Practices Manual (CPM) version 4.3.1, which provides the definitive guidelines for function point counting.