30 Function Point Analysis – Lecture I
Ability to estimate the associated cost of development early in the development process is vital in Software development process. Estimating software size is a difficult problem that requires specific knowledge of the system functions in terms of:
- Scope
- Complexity Interactions
Most frequently cited sources of software size metrics are:
- Lines of code
- Function point
Lines of Code is the simplest and most widely used metric. It is easily recognizable, uses different approaches. It doesn’t include data declarations, comments or any other lines that did not result in object code. It mainly include the declaration and any other un-executable statements but exclude blank lines and comments. The major problems with the Lines of Code are:
- Lack of a universally accepted definition
- Language dependence (high-level versus low-level programming languages).
- It is difficult to estimate the number of LOC needed to develop a system from information that is available in analysis and design phases
- LOC places all emphasis on coding, which is only part of the implementation phase of a software development project.
Function Point is designed to estimate and measure the time, and thereby the cost, of developing new software applications and maintaining existing software applications. Measures software size by quantifying the functionality provided to the user based on logical design and functional specifications. Function point analysis is used mainly to measure productivity. (eg. Number of function points achieved per work hour expended), estimate development and support (cost benefit analysis, staffing estimation), monitor outsourcing agreements (Ensure that the outsourcing entity delivers the level of support and productivity gains that they promise), normalize other measures (Such as defects, frequently require the size in function points). Function point analysis is a method of quantifying the size and complexity of a software system in terms of the functions. Independent of the computer language, development methodology, technology or capability of the project team. Project can be decomposed into functional units
Transactional Function Types
- Inputs : Information entering the system
- Outputs: Information leaving the system
- Inquiries: Requests for instant access to information
Data Function Types
- Internal logical files :Information held within the system
- External interface files :Information held by other systems that is used by the system being analyzed
A function point count is performed to produce a functional size measure.
The size can be used to generate project estimates.
Estimates should be based upon delivery rates.
Analysis – plan versus actual comparisons
How good is the information received during requirements?
How good (accurate) is project estimating?
External inputs are elementary processes in which derived data passes across the boundary from outside to inside. In an example library database system, enter an existing patron’s library card number. External outputs are elementary processes in which derived data passes across the boundary from inside to outside. In an example library database system, display a list of books checked out to a patron. External outputs are elementary processes with both input and output components results in data retrieval from one or more internal logical files and external interface files. In an example library database system, determine what books are currently checked out to a patron. Internal log files are user identifiable groups of logically related data that resides entirely within the applications boundary maintained through external inputs. In an example library database system, the file of books in the library. External log files are user identifiable groups of logically related data that are used for reference purposes only, and which reside entirely outside the system. In an example library database system, the file that contains transactions in the library’s billing system.
In order to compute the Unadjusted Function Point (UFP) we rate each component as low, average, or high.
- For transactions (EI, EO, and EQ), the rating is based on the FTR and DET.
- EI-External Inputs EO-External outputs EQ-External Queries
- FTR – The number of files updated or referenced. DET – The number of user-recognizable fields.
For files (ILF and ELF), the rating is based on the RET and DET. RET – The number of user-recognizable data elements in an ILF or ELF. DET – The number of user-recognizable fields.
- ILF – Internal Logic File
- ELF – External Logic File
Compute the Final Function Point (FP)
Compute Value Adjustment Factor (VAF) based on 14 general system characteristics (GSC).
Weight each GSC on a scale of 0 to 5 based on whether it has no influence to strong influence.
Compute the FP as follows.
VAF=Sum (GSC)
FP = UFP * (0.65 + (VAF* .01))
- GSC-General System
- Characteristics FP – Function Point
- VAF – Value Adjustment Factor
- UFP-Unadjusted Function Point
In stock control system a company sells goods on the phone – if agents call the customers, customers call the agents, and so on – business operates successfully, but there comes a time for putting the whole in order. There occurs a need for developing a system able to control the whole stock, from orders to payments. Our objective is to estimate how complex such system can be and predict how long it would take to develop it. Grouping functions into five categories:
- External Inputs – Customer, order, stock, and payment details.
- External Outputs – Customer, order, and stock details, and credit rating.
- External Inquiries – Customer, order, and stock details.
- External Interface Files – there’s no EIFs to consider.
- Internal Logical Files – Customer, and good files, and customer, and good transaction files.
Usually a question arises How Do Function Points Overcome LOC Problems? Function points are independent of the language, tools, or methodologies used for implementation. Function points can be estimated early in analysis and design. Since function points are based on the system user’s external view of the system, even non-technical users of the software system have a better understanding of what function points are measuring.
Summary
Function Points are easily understood by the non-technical user. This helps to communicate sizing information to a user or customer. Function Points can be used to determine whether a tool, a language, an environment, is more productive when compared with others. Function point Analysis for a case study “Stock Control System “has been illustrated in this lecture. It is assumed that general system characteristics (GSC) have no influence on the function point.