What are Function Points?
Function Points (FP) represent a software sizing methodology for measuring the amount of software functionality or functional size related to a software project or application; whereas, the number of Source Lines of Code (SLOC) measures the physical size or amount of code. Using a building construction analogy, you could have two houses with 2000 square feet of physical size, and vastly different amounts of functionality. House #1 could have 14 windows and 3 doors, and house #2 could have 4 windows and 2 doors. If these were software products instead of houses with product #1 having 14 screens and 3 interfaces, you can probably tell that product #1 has more functionality; therefore, it has more FP's. FP's are calculated based upon a matrix of factors. Not only is the number of windows or screens important but FP analysis measures the complexity of the windows or screens.
How are Function Points calculated?
In order to explain Function Point calculation, it is important to understand the FP components. First, there Data functions and Transactional functions. There are two types of data functions, which are Internal Logical Files (ILF) and External Interface Files (EIF). Then there are three types of Transactional functions: External Inputs (EI), External Outputs (EO), and External Queries (EQ). Finally, there are 14 General System Characteristics (GSC), which are rated 1-5 in order to adjust the count relative to complexity of the application (software product). Each Data Function (ILF and EIF) is counted and assigned a Low, Average or High value based upon its number of Data Element Types (DET) and number of Record Element Types (RET). DET's are basically fields maintained in a file of logically grouped data; RET's are subgroupings of data within the file. Each Transactional Function Type (EI, EO, and EQ) is counted and assigned a Low, Average and High value based upon its number of DET's and the number File Types Referenced (FTR) during the transaction. The unadjusted Function Points (UFP) are then totaled. The complexity factor (+ or - 35%) calculated via the 14 GSC's is then applied in order to provide the adjusted Function Point (AFP) count. The AFP number provides the functional size of the software project or application being counted.
What is the QSM Methodology?
The QSM (Quantitative Software Management, Inc.) methodology is based upon the use of a productivity parameter called the Productivity Index (PI). A PI is calculated using an empirical formula developed by Larry Putnam, Sr. in the 1970's. This index includes in its calculation the following measures related to a software project: size, duration, and effort. PI = size/(effort*duration) The QSM or Putnam methodology and Barry Boehm's COCOMO methodology both have software tools which support them. They are the only such estimation tools, which have published metholologies.