Functional Points

As a Software Engineer, one of the major difficult questions face from the client or management is What the cost and time for the software development?. Its difficult to weigh the real values or worth of software. One of the best ways to estimate the software development cost and time is based on the previous software development experience.

To measure the standard worth of the software, as a unit of software worth, Function Point was developed. Functional Point was first defined by Allan Albercht of IBM in 1977.

Study another type of Software Estimation: COCOMO MODEL

Functional Points

1. It measures functionality from users point of view.
2. What the user receives from Software and what the user requests from Software.
3. Focuses on what functionality is being delivered.

A Functional Point is a unit of measurement to express the amount of business functionality an information system provides to a user. – Source: Wikipedia

5 Type of Functional Units

1. Internal Logic Files (ILF) – The control info or logically related data that is present within the system.
2. External Interface Files (EIF) – The control data or other logical data i.e referenced by the system but present in another system.
3. External Inputs (EI) – Data / control info that comes from outside our system
4. External Outputs (EO) – data that goes out of the system after generation
5. External Enquired (EQ) – Combination of i/o – o/p resulting data retrieval

How to Calculate Functional Points?

Final F.P = UFP X CAF

Step 1: Each Function point is ranked according to complexity. There exist per-defined weights for each F.P in each category.

Step 2: Calculate Unadjusted Function Point by multiplying each F.P by its corresponding weight factor.

UFP = Sum of all the Complexities of all the EI’s, EO’s EQ’s, ILF’s and EIF’s

Step 3: Calculate Final Function Points

Final F.P = UFP X CAF

“Total Degree of Influence of the 14 General System Characteristics”

Complexity Adjustment Factor is calculated using 14 aspects of processing complexity. 14 questions answered on a scale of 0 – 5

0 – No Influences

1 – Incidental

2 – Moderate

3 – Average

4 – Significant

5 – Essential

14 aspects of processing complexity questions are as follow:

1. Data Communication
2. Distributed Data Processing
3. Performance
4. Heavily Used Configuration
5. Transaction Role
6. Online Data Entry
7. End-User Efficiency
8. Online Update
9. Complex Processing
10. Reusability
11. Installation Ease
12. Operational Ease
13. Multiple Sites
14. Facilitate Change

Also study another type of Software Estimation: COCOMO MODEL