Chapter 2— Function Point Analysis: Project Management Course -AUG Unversity
Welcome back! This is chapter 2 of the series explaining the project management course for AUG students — The computer system engineering department.
What is Function Point Analysis?
Function point analysis is used to measure the functional size of software systems.
- Internal Logical File (ILF) Logical group of data maintained by the application (e.g., Employee file)
- External Interface File (EIF) Logical group of data referenced but not maintained (e.g., Global state table)
- External Input (EI): Data Input Fields, Error Messages, Calculated Values, Buttons
- External Output (EO): Data Fields on a Report, Calculated Values, Error Messages, and Column Headings that are read from an ILF
- External Query (EQ): Input Side — field used to search by, the click of the mouse. Output side — displayed fields on a screen.
- Data Element Type (DET): A DET is a unique user recognizable, non-recursive (non-repetitive) field. A DET is an information that is dynamic and not static.
- File Type Referenced (FTR): A FTR is a file type referenced by a transaction. An FTR must also be an internal logical file or external interface file.
- Record Element Type (RET): A RET is a user recognizable sub-group of data elements within an ILF or an EIF.
All of the components are rated based upon DET’s, and either RET’s or FTR’s.
DET’s for GUI:
- Radio Buttons: Radio Buttons are treated as data element types
- Check Boxes: Each check box, within a frame, that can be selected should be treated as a data element
- Command Buttons Command: each command button would be counted as a data element for the action it invokes.
- Messages: There are three types of messages that are generated in a GUI application: error messages, confirmation messages, and notification messages, each is treated as a data element for the appropriate transaction.
- Notification messages are business-type messages. A notification message is treated as an External Output.
Adjusted Function Points:
- The general formula to calculate the adjusted function point is: AFP = UFC * VAF
- If you want to calculate the adjusted function point for a project that requires added functionality to convert database files or for any other purpose then you calculate the Development function point by this formula: DFP = (UFC +CFP) * VAF
- If you want to calculate the adjusted function point for an enhanced application that might include add functionality, changed functionality, and deleted functionality, then the formula for enhancement project function point calculation is: EAFP =[(UFPG +ADD+CHGA) -(CHGB +DEL)]
- Since the application has an enhancement, adding and deleting functionality then, use this formula: EAFP =[(UFPG +ADD+CHGA) -(CHGB +DEL)]
In the previous question, Page 113:
A| From the table in Page 114, The unadjusted function point is count as the following:
- 10 LOW EI’S = 10 * 3(LOW) =30
- 10 HIGH EI’S = 10 * 6(HIGH) =60
- 12 HIGH EO’S = 12 * 7(HIGH) =84
- 20 LOW ILF’s = 20 * 7(LOW) =140
- 15 HIGH EI’s = 10 * 15(HIGH) =150
- 12 Average EQ’s = 12 * 4(Average) =48
Total = 30 + 60 +84 +140+150+48 = 512
B| The adjusted function point is count using AFP = UFC * VAF:
- UFC * VAF = 512 * 1.10 = 563.2
The system that you measure it’s the size in function points, can be converted to source lines of code using the formula: SLOC =AVC * UFC
What is the equivalent SLOC if the implementation language used os C and the UFC = 354?
- UFC = 354 (given in the question)
- Since the language is C then AVC = 128 ( from the table in page 114)
Equivalent SLOC = AVC * UFC = 128 * 354
The Weather Application:
From the previous application:
- Each EI has 6 data elements (the input fields) and the action key that means EI for change = 6DT’s, ADD EI = 6DT’s, DELETE EI = 6DT’s
- The EQ has 6 data elements also (the fields and the action key)
- The Previous-Next represents only one DET
- The ILF has only 5 DETs
- The report has 7 data elements (7 DET) [City, State, Temperature, Rain Fall, Date, Average, Average Temperature, Average rain fall]