Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Table of contents
1.
Introduction
2.
Functional Point (FP) Analysis
3.
Objectives of Function Point Analysis
4.
Types of Functional Point Analysis
4.1.
Transactional Functional Type 
4.2.
Data Functional Type
5.
Benefits of Functional Point Analysis
6.
Drawbacks of Functional Point Analysis
7.
Characteristics Of Functional Point (FP)
7.1.
FP Attribute Types or Information Domain Characteristics.
7.2.
Weights of 5 Functional Point  Attributes
8.
Differentiate Between Functional point (FP) and Line of Code (LOC)
9.
Frequently Asked Questions
9.1.
What do you mean by function point?
9.2.
How do you calculate the function point?
9.3.
How many types of function points are there?
9.4.
What is function point and feature point?
10.
Conclusion
10.1.
Recommended Articles:
Last Updated: Mar 27, 2024
Medium

Software Engineering | Functional Point (FP) Analysis

Author Akash Nagpal
0 upvote

Introduction

In 1979, IBM’s Allan J. Albrecht created function point analysis, later enhanced by the International Function Point Users Group (IFPUG). The International Function Point Users Group (IFPUG) was created in 1986 as a non-profit, member-governed organisation. The IFPUG owns Function Point Analysis (FPA). It is specified in ISO standard 20296:2009, which describes the definitions, criteria, and methods for using the IFPUG’s available size measuring (FSM) approach.

Functional Point (FP) Analysis

Functional Point (FP) Analysis

A Function Point (FP) Analysis measures the amount of business functionality provided to a user by an information system (as a product). FPA is used to estimate the amount of a software project’s functionality, its function size, as well as its testing. The function point is a standard of measurement for measuring software applications that is used to determine the available size of the software product.

Also read about - Extended Function Points(EFP)

Objectives of Function Point Analysis

  • It assesses how much functionality a user requests and receives.
  • It analyses software development and maintenance independent of the implementation technology.
  • It should be simple enough to reduce the measuring procedure’ overhead.
  • It should be a metric that is used consistently across projects and companies

Types of Functional Point Analysis

There are two types of Functional Point Analysis

  • Transactional Functional Type
     
  • Data Functional Type

Transactional Functional Type 

types of transactional functions

According to IFPUG(International Function Point Users Group):

  • An External Input (EI) is a simple application procedure that handles data or controls information that enters from outside the program's boundaries. 
  • An External Output (EO) is a simple application procedure that creates data or controls information outside the program's boundaries. An external output's main purpose is to convey information to a user using processing logic in addition to, or instead of, data retrieval or control information.
  • An External Inquiry (EQ) is a simple application operation that leads to the retrieval of data or control information that is sent beyond the application border. The main goal is to provide the user with information by retrieving or controlling information from an ILF(Internal Logical Files) or EIF(External Interface Files). 

Data Functional Type

  • Internal Logical File (ILF): It is a set of logically connected data that can be identified by a specific user and is totally contained within the program boundary. It is updated using external inputs. A file that is internally maintained has some logical structure and is stored in a file that is said to be an internal logical file.
  • External Interface Files (EIF): It is a user-identifiable collection of logically connected data that is exclusively utilized as a source of reference. The data is completely outside the application boundaries and is maintained by external inputs from other apps. An internal logical file for another application houses the external interface file. A file can only be counted as an EIF or ILF by one application, not both. 
     

Also read  V Model in Software Engineering, Introduction to Software Engineering

Benefits of Functional Point Analysis

  • FPA is a tool used to calculate the size of an application package that has been purchased by adding up all of the functions that are part of the package.
  • It is a tool that assists users in determining the value of an application bundle to their company by keeping track of features that closely match their needs.
  • It is a tool for measuring software product units in order to support productivity and quality analysis.
  • It is a tool for estimating the price and resources needed for software development and upkeep.
  • It serves as a normalizing factor when comparing software.

Drawbacks of Functional Point Analysis

  • The process of implementing it in software is time-consuming.
  • The estimating model is expensive.
  • As a result of the involvement of numerous elements, FPA accuracy is particularly challenging.
  • Numerous internal, external, or future parameters are needed.
  • After the design configuration, it is carried out.

Characteristics Of Functional Point (FP)

  • FPs of an application is calculated by counting the number and types of functions used in the software applications.
    As stated in Table, many functions utilised in an application may be classified into five types:

FP Attribute Types or Information Domain Characteristics.

Measurements Parameters

Examples

1.Number of External Inputs(EI) Input screen and tables
2. Number of External Output (EO) Output screens and reports
3. Number of external inquiries (EQ) Prompts and interrupts.
4. Number of internal files (ILF) Databases and directories
5. Number of external interfaces (EIF) Shared databases and shared routines.
  • FP describes the software system’s complexity and shows project timelines and labour requirements.
  • FP is an independent programming language used for business systems like information systems.
  • The effort required to build the project is determined by the software’s capabilities using FP Analysis.
  • The mentioned parameters have been given weights that have been determined empirically and are listed in the following table:
     

Weights of 5 Functional Point  Attributes

Measurement Parameter Low Average High

1. Number of external inputs (EI)

3

4

6

2. Number of external outputs (EO)

4

5

7

3. Number of external inquiries (EQ)

3

4

6

4. Number of internal files (ILF)

7

10

15

5. Number of external interfaces (EIF)

5

7

10

These functional complexities are multiplied with their corresponding weights against each function, and the values are added up to determine the subsystem’s UFP (Unadjusted Function Point).

Computing FPs

Measurement Parameter

Count

 

Weighing Factor

Simple

Average

Complex

Number of external inputs (EI)

32

*

3

4

6 = 128

Number of external outputs (EO)

60

*

4

5

7 = 300

Number of external inquiries (EQ)

24

*

3

4

6 = 96

Number of internal files (ILF)

8

*

7

10

15 = 80

Number of external interfaces (EIF)

2

*

5

7

10 = 40

Algorithms used Count total →  

618

Therefore, FP is calculated as:

The feature point is calculated with the following formula:

                FP = Count-total * [0.65 + 0.01 *∑(fi)]

                      = Count-total * CAF

Here, count-total has been taken from the above tabular chart.

                CAF = [0.65 + 0.01 * âˆ‘(fi)]

∑(fi) = sum of all 14 questionnaires and show the complexity adjustment value/factor-CAF (where i ranges from 1 to 14).

CAF varies from 0.65 to 1.35 because: 

  1. When ∑(fi) = 0 then CAF = 0.65
  2. When ∑(fi) = 70 then CAF = 0.65 + (0.01 * 70) = 0.65 + 0.7 = 1.35

Also ∑(fi) ranges from 0 to 70, i.e.,

              0 <= ∑(fi) <=70

 

  • The size of Management Information System (MIS) software is typically measured using FP metrics.
     
  • However, the function points generated in the above are unadjusted (UFPs). These (UFPs) of a subsystem are further improved by considering some additional General System Characteristics (GSCs). This group of14 GSCs are taken into account. 
     
  • The following is the technique for modifying UFPs:
    • The degree of Influence (DI) for each of these 14 GSCs is assessed on a scale of 0 to 5. 
    • All 14 GSCs score is totalled to determine the Total Degree of Influence (TDI).
    • Then Value Adjustment Factor (VAF) is computed from TDI by using the formula: VAF = (TDI * 0.01) + 0.65

You can also read about Software Testing here.

Differentiate Between Functional point (FP) and Line of Code (LOC)

There are several differences between FP and LOC:

Functional Point Line of Code
A measure of the software's functionality based on user requirements and features.                                                        A measure of the size of the source code, typically in terms of lines, statements, or instructions.
It is measured in function points, which represent units of functionality. It is measured in lines, such as source lines of code (SLOC) or physical lines of code.
It is less dependent on the programming language used, as it's based on functionality. It is highly dependent on the programming language, as different languages have varying levels of conciseness.
It focuses on what the software does from a user's perspective and its functionality. It focuses on the physical size and complexity of the codebase.

Difference Between C and Python

Frequently Asked Questions

What do you mean by function point?

Function points determine the size of an application system based on the functional aspect of the system. Inputs, outputs, queries, internal files, and external files are added together to determine the size, which is then multiplied by the functional complexity of the system.

How do you calculate the function point?

Function points are calculated by assessing the software's functionality based on user requirements. This includes evaluating inputs, outputs, queries, internal logical files, and external interface files, assigning complexity values to each, and applying a weighted formula to compute the function point count.

How many types of function points are there?

There are two types of function points that are transactional functional type and data functional type. The transactional functional type describes functionality related to transactional operations, such as data input, processing, and storage. On the other hand, the Data functional type describes functionality related to data retrieval, display, or manipulation without involving transactional operations.

What is function point and feature point?

Function points and feature points are similar metrics used to measure software functionality. However, feature points are often considered an extension of function points and can include additional criteria like user experience and business value, offering a more comprehensive assessment of software features.

Conclusion

In this article we have extensively discussed the ‘Functional Point Analysis (FP Analysis)’ and it’s characteristics.

Recommended Articles:

Do check out The Interview guide for Product Based Companies as well as some of the Popular interview problems from top tech companies like Amazon, Adobe, Google, Uber, Microsoft, etc.

Refer to our guided paths on Coding Ninjas Studio to learn more about Competitive ProgrammingJavaScriptSystem Design, etc. Enroll in our courses and refer to the mock test and problems available; take a look at the interview experiences and interview bundle for placement preparations.

Live masterclass