Function Point Calculation Example

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:

  1. External Inputs (EI): Unique user inputs that process data (e.g., forms, control inputs)
  2. External Outputs (EO): Unique user outputs that present processed data (e.g., reports, screens)
  3. External Inquiries (EQ): Unique input-output combinations where no data is processed (e.g., search functions)
  4. Internal Logical Files (ILF): Logical groups of data maintained within the application boundary
  5. 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:

  1. Identify the Application Boundary: Determine what’s inside and outside your system
  2. Count Data Functions: Identify and count ILFs and EIFs
  3. Count Transactional Functions: Identify and count EIs, EOs, and EQs
  4. Determine Complexity: Classify each function as low, average, or high complexity
  5. Calculate Unadjusted Function Points (UFP): Sum the weighted counts
  6. Apply Value Adjustment Factor (VAF): Adjust for 14 general system characteristics
  7. 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:

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:

  1. User Story Mapping: Align function point components with user stories
  2. Incremental Counting: Count function points for each sprint or iteration
  3. Velocity Conversion: Correlate function points with story points for estimation
  4. 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:

  1. AI-Assisted Counting: Machine learning to automate complexity assessment
  2. DevOps Integration: Continuous function point tracking in CI/CD pipelines
  3. Cloud-Native FPA: Specialized counting rules for serverless and microservices
  4. Blockchain Measurement: Function point models for smart contracts
  5. 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:

  1. Training: Certify at least 2-3 team members as CFPS
  2. Pilot Project: Start with a small, well-defined project
  3. Tool Selection: Choose counting tools that fit your development process
  4. Guidelines Development: Create organization-specific counting rules
  5. Historical Data Collection: Build a repository of completed project FP counts
  6. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *