Software Design · Software Engineering

Function Point Analysis

Watch lectures

Function Point Analysis (FPA)

Definition

Function Point Analysis is a method for measuring the size/functionality of a software system from the user's perspective, based on the number and complexity of its functional components — independent of the programming language or technology used.

Why FPA (vs. Lines of Code)

Unlike LOC (Lines of Code), which varies wildly by language and coding style, Function Points measure functionality delivered to the user, making it a fairer, more consistent size metric across different technologies.

Five Function Point Components

Component Description
External Inputs (EI) Data entering the system (forms, input screens)
External Outputs (EO) Data leaving the system (reports, generated files)
External Inquiries (EQ) Input-output combinations retrieving data without modifying it (search/query)
Internal Logical Files (ILF) Data maintained within the system (internal tables/files)
External Interface Files (EIF) Data referenced by the system but maintained by another system

Steps to Calculate Function Points

Step 1: Count each component and classify complexity (Low/Average/High)

Each component type has a weighting table (e.g., EI: Low=3, Avg=4, High=6)

Step 2: Calculate Unadjusted Function Points (UFP)

UFP = Σ (count of each component × its complexity weight)

Step 3: Calculate Value Adjustment Factor (VAF)

Based on 14 General System Characteristics (GSCs) like performance, reusability, complexity of processing — each rated 0–5:

VAF = 0.65 + (0.01 × ΣGSC ratings)

Step 4: Calculate Final Function Points

FP = UFP × VAF

Uses of Function Points

  • Estimating project cost/effort early (before code is written)
  • Comparing productivity across projects/teams (e.g., FP per person-month)
  • Technology-independent size measurement

Advantages

  • Can be calculated early (from requirements/design), unlike LOC
  • Technology-independent — fair comparison across languages
  • User-centric — reflects actual functionality delivered

Disadvantages

  • Requires trained analysts to count accurately and consistently
  • Somewhat subjective in classifying complexity (Low/Avg/High)

Exam tip: Memorize the 5 components (EI, EO, EQ, ILF, EIF) and the formula FP = UFP × VAF. Numerical problems giving you counts and weights to compute UFP are common.

Official AppAndroid App

PYQDeck for Android

Solve BEU previous-year exam papers anywhere, anytime. Fast search, offline paper viewing, and step-by-step solutions designed specifically for your phone.

← All Software Engineering modules