• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » Software Engineering » What are Function Points? How are they Computed? Explain
Next →
← Prev

What are Function Points? How are they Computed? Explain

By Dinesh Thakur

Function points are one of the most widely used measures of software size. The basis of function points is that the “functionality ” of the system that is; what the system performs, is the measure of the system size. In function points, the system functionally is calculated in terms of the number of function it implements, the number of inputs, the number of output etc.

Parameter that can be obtained after requirements analysis and that are independent of the specification (and implementation) language.

 

The original formulation for computing the function points uses the count of five different parameters, namely, external input types, and external output types, logical internal file type, external interface file types and external inquiry type. According to the function point approach these five parameters capture the entire functionality of a system.

 

However, two elements of the same type may differ in their complexity and hence should not contribute the same amount of the “functionality ” of the system. To account for complexity, each parameter in its type is classified as simple, average, or complex. Each unique input (data or control) type that is given as input to application from outside is considered of external input type and is counted. The source of external input can be the user, or some other application, files.

 

An external input type is considered simple if it has a few data elements and affects only a few internal fields of the application. It is considered complex if it has many data items and may have internal logical files that are needed for processing them. The complexity is average if it is has many data items and many internal logical files are needed for processing them. The complexity is average if it is in between.

 

Similarly, each unique output that leaves the system boundary is counted as external output type. Reports or messages to the users or other applications are counted as external input types. The complexity criteria is similar to that of the external input type. For a report, if it contains a few columns it is considered simple, if it has multiple columns it is considered average, and if it contains complex structure of data and reference many files or production, it is considered complex.

 

Each application maintains information internally for performing its functions. Each logical group of data or control information that is generated, used and maintained by the application is counted as a logical internal file type. A logical internal file is simple if it contains a few record type, complex if is has many type, and average if it is in between.

 

Once the counts for all five different types are known for all three different complexity classes, the raw or unadjusted function point can be computed as a weighted sum as follows: –

 

     i=5     j=3

UFP  =          ? ?      wij Cij

     i=1     j=1

 

 Where i reflects the row and j reflects the column in Table, wij is the entry in the ith row and jth column of the table (i.e. it represents the contribution of an element of the type i and complexity j); and Cij is the count of the number of elements of type i that have been classified as having the complexity corresponding to column j.

 

Once the UFP is obtained, it is adjusted for the environment complexity. For this 14 different characteristics of the system are given. These are data communications, distributed processing, performance objective, operation configuration load, transaction rate, on line data entry, end user efficiency, on-line update, complex processing logic, re-usability, installation ease, operational ease, multiple sites, and desire to facilitate change. The degree of influence of each of these factors is taken to be from 0 to 5,

 

Function type

Simple

Average

Complex

External input

3

4

6

External output

4

5

7

Logical internal file

7

10

15

External interface file

5

7

10

External inquiry

3

4

6

 

representing  the six different levels : not present (0), insignificant influence (1), modern influence 92), average influence (3), significant influence (4), and strong influence (5). The 14 degrees of influence for the system are then summed, giving total N (N ranges from 0 to 14*5 = 70). This N is used to obtain a complexity adjustment factor (CAF) as follows:

CAF = 0.65 + 0.01 N.

With this equation, the value of CAF ranges between 0.65 and 1.35. The delivered function points (DFP) are simply computed by multiplying the UFP by CAF. That is,

Delivered Function Points = CAF * Unadjusted Function Points.

 

You’ll also like:

  1. Command Line Arguments in C
  2. Write A C++ Program To Explain The Concept Of Function Prototyping.
  3. What is Functions? Explain Features of Functions,Types of Functions and Calling a Function
  4. Explain Various DESIGN TECHNIQUES
  5. Explain Various Phases of Process Management
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

Software Engineering

Software Engineering

  • SE - Home
  • SE - Feasibility Study
  • SE - Software
  • SE - Software Maintenance Types
  • SE - Software Design Principles
  • SE - Prototyping Model
  • SE - SRS Characteristics
  • SE - Project Planning
  • SE - SRS Structure
  • SE - Software Myths
  • SE - Software Requirement
  • SE - Architectural Design
  • SE - Software Metrics
  • SE - Object-Oriented Testing
  • SE - Software Crisis
  • SE - SRS Components
  • SE - Layers
  • SE - Problems
  • SE - Requirements Analysis
  • SE - Software Process
  • SE - Software Metrics
  • SE - Debugging
  • SE - Formal Methods Model
  • SE - Management Process
  • SE - Data Design
  • SE - Testing Strategies
  • SE - Coupling and Cohesion
  • SE - hoc Model
  • SE - Challenges
  • SE - Process Vs Project
  • SE - Requirements Validation
  • SE - Component-Level Design
  • SE - Spiral Model
  • SE - RAD Model
  • SE - Coding Guidelines
  • SE - Techniques
  • SE - Software Testing
  • SE - Incremental Model
  • SE - Programming Practices
  • SE - Software Measurement
  • SE - Software Process Models
  • SE - Software Design Documentation
  • SE - Software Process Assessment
  • SE - Process Model
  • SE - Requirements Management Process
  • SE - Time Boxing Model
  • SE - Measuring Software Quality
  • SE - Top Down Vs Bottom UP Approaches
  • SE - Components Applications
  • SE - Error Vs Fault
  • SE - Monitoring a Project
  • SE - Software Quality Factors
  • SE - Phases
  • SE - Structural Testing
  • SE - COCOMO Model
  • SE - Code Verification Techniques
  • SE - Classical Life Cycle Model
  • SE - Design Techniques
  • SE - Software Maintenance Life Cycle
  • SE - Function Points
  • SE - Design Phase Objectives
  • SE - Software Maintenance
  • SE - V-Model
  • SE - Software Maintenance Models
  • SE - Object Oriented Metrics
  • SE - Software Design Reviews
  • SE - Structured Analysis
  • SE - Top-Down & Bottom up Techniques
  • SE - Software Development Phases
  • SE - Coding Methodology
  • SE - Emergence
  • SE - Test Case Design
  • SE - Coding Documentation
  • SE - Test Oracles
  • SE - Testing Levels
  • SE - Test Plan
  • SE - Staffing
  • SE - Functional Testing
  • SE - Bottom-Up Design
  • SE - Software Maintenance
  • SE - Software Design Phases
  • SE - Risk Management
  • SE - SRS Validation
  • SE - Test Case Specifications
  • SE - Software Testing Levels
  • SE - Maintenance Techniques
  • SE - Software Testing Tools
  • SE - Requirement Reviews
  • SE - Test Criteria
  • SE - Major Problems
  • SE - Quality Assurance Plans
  • SE - Different Verification Methods
  • SE - Exhaustive Testing
  • SE - Project Management Process
  • SE - Designing Software Metrics
  • SE - Static Analysis
  • SE - Software Project Manager
  • SE - Black Box Testing
  • SE - Errors Types
  • SE - Object Oriented Analysis

Other Links

  • Software Engineering - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW