Login

An Overview of Function Point Analysis

Function Point Analysis is a structured technique of classifying components
of a system. It is a method used to break systems down into smaller components
so that they can be better understood and analyzed. Function Point Analysis
provides a structured technique for problem solving.

In Function Point Analysis, systems are divided into five large classes. The first three classes are External Inputs, External Outputs and External/Data Inquiries. These classes or components transact against files and hence they are also called Transactions. The next two classes are Internal Logical Files and External Interface Files. The data is stored in these classes and they form the Logical Information.

Objectives of Function Point Analysis:

Function Points measure systems from a functional perspective and are independent of technology. Hence, regardless of technology, language, development method, or hardware/software used, the number of function points for a system will remain constant. The variable in Function Point Analysis is the amount of effort required to deliver a given set of function points. Therefore, function point analysis can be used to determine which environment/language/tool is more productive.

Function point analysis can be used to determine which environment/language/tool is more productive.

Function point analysis can provide a mechanism to track and monitor scope creep.

Function point counts at the end of each phase/stage of a project can be compared to the function points actually delivered.

If the number of function points has increased then there has been a scope creep.

The number of function points that has increased or decreased defines the project growth.

If the project has grown then it is a sure indication that the requirements haven’t been gathered well and there has been some scope creep.

If the project growth has declined then the communication between the end-user and the development team has improved.

Determination of the Value Adjustment Factor (VAF) using General System Characteristics (GSC)

Calculation of the final Function Point Count

Establish the Subsystem Boundary:

A project may include one or more applications or subsystems. Boundaries must be drawn to identify the external applications that interact with this project or the application that is being measured.

{mospagebreak title=The Five Major Components}

Function Point Analysis breaks the systems down into smaller components so that users, developers, and managers can easily understand the functionality of a system; the technical knowledge is not required for the same. In the world of function points, systems are divided into components.

Transactional Functions:

The first three components are the systems External Inputs (EI), External Outputs (EO), and External Inquiries (EQ). Each of these components adds, modifies, deletes, retrieves or processes information contained in the files and hence called transactions.

Data Functions:

The other two components are the system’s files viz., Internal Logical Files (ILF) and External Interface Files (EIF).

Transactions in Detail:

External Inputs – This defines those data that interact with the application from the outside. This data from the outside may be used to maintain internal logical files.

External Outputs – Here, the data passes from inside the application to the outside. The derived data may be used to update internal logical files. The data is used to create reports or output files which, in turn, may be used by other applications. These reports are again created from internal logical files or external interface files.

External Inquiry – This contains both input and output components that retrieve data from internal logical files and external interface files. However, the input here does not update the internal logical files or external interface files as in external inputs, and the output does not contain derived data as in external outputs.

Data Functions in Detail:

Internal Logical Files – This contains logically related data that resides entirely within the application’s boundary and is maintained through external inputs.

External Interface Files – This contains logically related data that is used for reference purposes only. The data resides entirely outside the application and is maintained by another application. This means that an external interface file can be an internal logical file of another application.

{mospagebreak title=Rating and Ranking the Components}

Once all the components in the application have been classified as one of the five major components mentioned above, they have to be rated as either Low, Average, or High.

Ranking is commonly based on File Types Referenced, Data Element Types and Record Element Types.

File Types Referenced (FTRs) represents the total number of internal logical files (ILFs) maintained, read, or referenced, and the external interface files read or referenced by the EI/EO transaction.

Data Element Type (DET) can be defined as unique user-recognizable non-recursive fields including foreign key attributes that are maintained on ILF/EIF.

Record Element Type (RET) is a subgroup of data elements within an ILF/EIF.

For each of the components belonging to Transactional functions, the ranking is based on:

The tables given below provide an example of rankings and ratings given to each component.

External Inputs

FTRs

Data Elements

1-4

5-15

>15

0-1

Low

Low

Average

2

Low

Average

High

>=3

Average

High

High

External Output/External Inquiries

FTRs

Data Elements

1-5

6-19

>19

0-1

Low

Low

Average

2-3

Low

Average

High

>3

Average

High

High

Values or Ratings for Transactions

Ranking

Data Elements

External Input

External Output

External Inquiry

Low

3

4

3

Average

4

5

4

High

6

7

6

In the above example, if an external input component updates 2 FTRs and references around 16 data elements then the ranking would be HIGH and the associated rating would be 6.

Rankings for ILFs and EIFs

Record Elements

Data Elements

1-19

20-50

>50

1

Low

Low

Average

2-5

Low

Average

High

>5

Average

High

High

Values or Ratings

Ranking

Data Elements

Internal Logical File

External Interface File

Low

7

5

Average

10

7

High

15

10

{mospagebreak title=Unadjusted Function Points}

Each function point count is multiplied by the numerical rating derived from the above table(s) to determine the complexity rated value. The complexity rated values on each row are summed across the table. This gives the total value for each type of component. The totals for all the components are then summed up to arrive at the total number of Unadjusted Function Points or UAF.

The Value Adjustment Factor (VAF) is based on fourteen General System Characteristics (GSC’s). The degrees of influence range on a scale of zero to five, from no influence to strong influence. The GSCs are listed below:

Data communication

Distributed functions

Performance objectives

Heavily used configuration

Transaction rate

Online data entry

End-user efficiency

Online update

Complex processing

Reusability

Installation ease

Operational ease

Multiple sites

Facilitate change

VAF = 0.65 + (Sum of degrees of Influence of the fourteen GSCs)/100

The final Function Point Count is obtained by multiplying VAF by the Unadjusted Function Point (UAF).

FP = UAF * VAF

Summary:

Function points, as discussed earlier, can be used to size software applications accurately, as sizing is an important factor in determining productivity. Since function point has a unique and consistent method, different people measuring them will give almost the same result with very little margin of error. A non-technical person can easily understand function points, which helps in communicating the same to the end-user effectively and easily.