FUNCTION POINT BASED MEASURES Function Point
Function points and feature points are “methods of estimating the “amount of functionality” required for a program, and are thus used to estimate project completion time. The basic idea involves counting inputs, outputs, and other features of a description of functionality.
Function Point Metric
Function point metric was proposed by Allan. Albrecht (1983), when he worked for IBM. Function oriented software metrics use a measure of the functionality delivered by the application as a normalization value. Since functionality cannot be measured directly, it must be derived indirectly using other direct measures. Function points are derived using an empirical relationship based on direct measures of software’s information domain and assessments of software complexity.
Function points are computed by completing Table given below :
Table: Function Point Contribution of an Element
|Logical internal file||7||10||15|
|External interface file||5||7||10|
The different function types mentioned in Table are discussed as under :
- External output types are transactions where data is output to user. Typically these would be printed reports.
- External interface file types allow for output and input that might pass to and from other computer application.
- External types are input :transactions that update internal computer files.
- External inquiry types note US spelling of inquiry- are transactions initiated by the user that provide information but do not update the internal files. The inputs some information that directs the system to the details required.
- Logical internal file types are the standing files used by the system. The term `file’ does not sit easily with modern information systems. It refers to a group of data that is usually accessed together. It might be made up of one or more record
- Function points can be estimated from requirement specification or design specifications, thus making it possible to estimate development effort in early phases of development.
- Function point approach is independent of the language, tools or methodologies used for implementation; e., they do not take into consideration programming languages, database management systems, processing hardware or any other database technology.
- Function points are directly linked to the statement of requirements; any change of requirements can easily be followed by are-estimate.
- Function points are based on the system user’s external view of the system; non-technical users of the software system have a better understanding of what function points are measuring.
Advantages of Function Points
- The necessary data is available early in a project and thus only a detailed specification is needed.
- It is not restricted to code.
- More accurate than estimated LOC
- It is language independent
- It can be used to easily estimate the size of a software product directly from the problem specification.
Drawbacks of Function Points
- Hard to automate and difficult to compute
- Oriented to traditional data processing applications
- Subjective counting-different people can come up with different estimates for the problem.
- Ignores quality of output.
Feature Point Metrics
A function point extension called feature points is a superset of the function point measure that can be applied to systems and engineering software applications. Therefore, its size should be larger compared to simpler functions.
- Proponents of function point and feature point metrics claim that these metrics are language-independent and can be easily computed from the SRS document during project planning, whereas opponents claim that these metrics are subjective and require a sleight of hand. An example of the subjective nature of the function point metric can be that the way one would group logically related data items could be very subjective. For example if a data employee-details consists of the employee name and his address, one person can consider it a single unit of data while someone else can consider the address as one unit and name as another. Therefore, different engineers can arrive at different function point measures for the same problem.