Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The function point (FP) method calculates an estimate using the parameters of inputs, outputs, inquiries, and files. The technique was introduced by Albrecht in 1979 to measure the size of data processing systems from the end user’s point of view to determine an estimated development effort. FP's advantage is that estimators can calculate effort when a defined use case or in-depth system analysis is not available. Estimators calculate function points by summing the number of internal logical files, external interface files, external inputs, external inquiries, and external outputs. Function points are numerical values that measure software size determined from data processing types rather than from software development complexity.The FP method is appropriate to estimate size and cost but cannot estimate effort. Function points represent the amount of functionality released to the user by determining the data transactions, and operations that involve data crossing the boundaries of the application. The FP method provides an estimation method that allows managers to project software size early in the project life cycle. It is independent of the technology used in the development of the software project

Function Point Analysis (FPA) is a technique used in software development for estimating the size of a software application or system. Allan Albrecht developed the technique in the late 1970s at IBM.

Function points measure the size of the software in terms of the functionality it provides to the users, independently from the technology used to implement it. This is different from other measurement techniques like Lines of Code (LOC), which are technology-dependent.

Here are the basic steps to perform a function point analysis:

  1. Identify and Rate Functions: The software is broken down into five types of functions: External Inputs, External Outputs, External Inquiries, Internal Logical Files, and External Interface Files. Each function type is then assigned a complexity rating (low, average, high) based on its characteristics.

  2. Assign Weights: Each type of function and its complexity level is assigned a weight. The weights typically used are specified in a standard table. These weights were determined empirically by analyzing a large number of projects.

  3. Calculate Unadjusted Function Points: The number of each type of function is multiplied by its corresponding weight to get the function point count for each type. The total of all these counts is the Unadjusted Function Points (UFP).

  4. Calculate Adjusted Function Points: The UFP is then adjusted based on 14 general system characteristics (GSCs) such as data communications, performance, reusability, etc., each rated on a scale of 0 to 5. These ratings are summed to calculate the General System Complexity (GSC), and the UFP is multiplied by a factor derived from the GSC to calculate the Adjusted Function Points (AFP).

The resulting function point count can then be used to estimate effort, cost, and duration of the software project, usually by comparing it to similar projects done in the past.

FPA has the advantage of being independent of technology, so it can be used to compare projects using different languages or tools. It focuses on the features that the user interacts with, so it's more meaningful to non-technical stakeholders than other metrics like LOC. However, it can be time-consuming to perform, especially for large or complex software systems, and it requires expertise to do correctly.