Functional Point (FP) Analysis
Allan J. Albrecht initially developed function Point Analysis in 1979 at IBM and it has been further modified by the International Function Point Users Group (IFPUG). FPA is used to make estimate of the software project, including its testing in terms of functionality or function size of the software product. However, functional point analysis may be used for the test estimation of the product. The functional size of the product is measured in terms of the function point, which is a standard of measurement to measure the software application.
Objectives of FPA
The basic and primary purpose of the functional point analysis is to measure and provide the software application functional size to the client, customer, and the stakeholder on their request. Further, it is used to measure the software project development along with its maintenance, consistently throughout the project irrespective of the tools and the technologies.
Following are the points regarding FPs
1. FPs of an application is found out by counting the number and types of functions used in the applications. Various functions used in an application can be put under five types, as shown in Table:
Types of FP Attributes
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. |
All these parameters are then individually assessed for complexity.
The FPA functional units are shown in Fig:
2. FP characterizes the complexity of the software system and hence can be used to depict the project time and the manpower requirement.
3. The effort required to develop the project depends on what the software does.
4. FP is programming language independent.
5. FP method is used for data processing systems, business systems like information systems.
6. The five parameters mentioned above are also known as information domain characteristics.
7. All the parameters mentioned above are assigned some weights that have been experimentally determined and are shown in Table
Weights of 5-FP Attributes
Measurement Parameter | Low | Average | High |
---|---|---|---|
1. Number of external inputs (EI) | 7 | 10 | 15 |
2. Number of external outputs (EO) | 5 | 7 | 10 |
3. Number of external inquiries (EQ) | 3 | 4 | 6 |
4. Number of internal files (ILF) | 4 | 5 | 7 |
5. Number of external interfaces (EIF) | 3 | 4 | 6 |
The functional complexities are multiplied with the corresponding weights against each function, and the values are added up to determine the UFP (Unadjusted Function Point) of the subsystem.
Here that weighing factor will be simple, average, or complex for a measurement parameter type.
The Function Point (FP) is thus calculated with the following formula.
FP = Count-total * [0.65 + 0.01 * ∑(fi)]
= Count-total * CAF
where Count-total is obtained from the above Table.
CAF = [0.65 + 0.01 *∑(fi)]
and ∑(fi) is the sum of all 14 questionnaires and show the complexity adjustment value/ factor-CAF (where i ranges from 1 to 14). Usually, a student is provided with the value of ∑(fi)
Also note that ∑(fi) ranges from 0 to 70, i.e.,
0 <= ∑(fi) <=70
and CAF ranges from 0.65 to 1.35 because
- When ∑(fi) = 0 then CAF = 0.65
- When ∑(fi) = 70 then CAF = 0.65 + (0.01 * 70) = 0.65 + 0.7 = 1.35
Based on the FP measure of software many other metrics can be computed:
- Errors/FP
- $/FP.
- Defects/FP
- Pages of documentation/FP
- Errors/PM.
- Productivity = FP/PM (effort is measured in person-months).
- $/Page of Documentation.
8. LOCs of an application can be estimated from FPs. That is, they are interconvertible. This process is known as backfiring. For example, 1 FP is equal to about 100 lines of COBOL code.
9. FP metrics is used mostly for measuring the size of Management Information System (MIS) software.
10. But the function points obtained above are unadjusted function points (UFPs). These (UFPs) of a subsystem are further adjusted by considering some more General System Characteristics (GSCs). It is a set of 14 GSCs that need to be considered. The procedure for adjusting UFPs is as follows:
- Degree of Influence (DI) for each of these 14 GSCs is assessed on a scale of 0 to 5. (b) If a particular GSC has no influence, then its weight is taken as 0 and if it has a strong influence then its weight is 5.
- The score of all 14 GSCs is totaled to determine Total Degree of Influence (TDI).
- Then Value Adjustment Factor (VAF) is computed from TDI by using the formula: VAF = (TDI * 0.01) + 0.65
Remember that the value of VAF lies within 0.65 to 1.35 because
- When TDI = 0, VAF = 0.65
- When TDI = 70, VAF = 1.35
- VAF is then multiplied with the UFP to get the final FP count: FP = VAF * UFP
Example: Compute the function point, productivity, documentation, cost per function for the following data:
- Number of user inputs = 24
- Number of user outputs = 46
- Number of inquiries = 8
- Number of files = 4
- Number of external interfaces = 2
- Effort = 36.9 p-m
- Technical documents = 265 pages
- User documents = 122 pages
- Cost = $7744/ month
Various processing complexity factors are: 4, 1, 0, 3, 3, 5, 4, 4, 3, 3, 2, 2, 4, 5.
Solution:
Measurement Parameter | Count | Weighing factor | |
---|---|---|---|
1. Number of external inputs (EI) | 24 | * | 4 = 96 |
2. Number of external outputs (EO) | 46 | * | 4 = 184 |
3. Number of external inquiries (EQ) | 8 | * | 6 = 48 |
4. Number of internal files (ILF) | 4 | * | 10 = 40 |
5. Number of external interfaces (EIF) Count-total → | 2 | * | 5 = 10 378 |
So sum of all fi (i ← 1 to 14) = 4 + 1 + 0 + 3 + 5 + 4 + 4 + 3 + 3 + 2 + 2 + 4 + 5 = 43
FP = Count-total * [0.65 + 0.01 *∑(fi)]
= 378 * [0.65 + 0.01 * 43]
= 378 * [0.65 + 0.43]
= 378 * 1.08 = 408
Total pages of documentation = technical document + user document
= 265 + 122 = 387pages
Documentation = Pages of documentation/FP
= 387/408 = 0.94
Differentiate between FP and LOC
FP | LOC |
---|---|
1. FP is specification based. | 1. LOC is an analogy based. |
2. FP is language independent. | 2. LOC is language dependent. |
3. FP is user-oriented. | 3. LOC is design-oriented. |
4. It is extendible to LOC. | 4. It is convertible to FP (backfiring) |