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.
Process of Counting Function Points:
Function point analysis follows specific steps for counting:
Identification of the subsystem boundaries
Identification of the data functions (internal logical files and external interface files)
Identification of transactional functions (external inputs, external outputs and external inquiries)
Calculation of the Unadjusted Function Point (UAF) Count
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.