Function point analysis is an accepted standard for the measurement of software size, a normalizing factor for software comparison. It should be applied throughout the software development and maintenance process to quantify application functionality provided to the users of that software. The measurement is independent of the methodology and technology utilized for the development or maintenance work effort.
The process used to size function points can be summarized by the following seven steps:
Determine the type of function point count.
Identify the counting scope and the application boundary.
Identify all data functions (internal logical files and external interface files) and their complexity.
Identify all transactional functions (external inputs, external outputs, and external inquiries) and their complexity .
Determine the unadjusted function point count.
Determine the value adjustment factor, which is based on the 14 general system characteristics.
Calculate the adjusted function point count.
To further facilitate your understanding of this process, we will begin with an example of an application that simply maintains and displays information about individuals at a location. We will limit ourselves to the first four steps and exclude any complexity assessment for the data and transactional functions. Just so that you have some idea of where we are going, we will identify the answers to the first two steps beforehand. Then we will identify the process used to reach those conclusions.
The type of function point count will be an application function point. The counting scope will reflect the functionality that we are currently sizing within the Location application. The application boundary separates the application being measured from the user domain and other independent applications. The data functionsinternal logical files (ILFs) and external interface files (EIFs)relate to the logical data stored and available for update or retrieval. The transactional functionsexternal inputs (EIs), external outputs (EOs), and external inquiries (EQs)perform the processes of data maintenance, retrieval, outputs, and so on (transactions that you would normally expect to see in a process model).
The following high-level example (see Figure 1) illustrates a sample of the functional components included in the function point count of our example Location application:
High-level Display of the Location Application