Function Points
What is Function Point Analysis? • Approach to estimating SW size, which is independent of – language – development methodology – technology – capability of the project team – hardness of the problem • User-centric approach--in terms of screens, reports, etc., produced.
Basic Transaction Types • External inputs—data that is entering the system (logical transaction inputs, system feeds) • External outputs and external inquiries—data that is leaving the system (online displays, reports, feeds to other systems) • Internal logical files—data that is manufactured and stored within the system (logical groups of user defined data) • External interface files—data maintained outside the system but necessary to satisfy a particular process requirement (interfaces to other systems.
Functional Characteristics of a Software System External Inquiries External User User External Interface List of Molds Work Centers system File Pricing Parts Plant External Output Molds Parts listing Internal logical files User Bill of Materials External Inputs Plant Information Center Order parts User Change Bill of Materials
Internal Logical Files User-identifiable group of logically related data or control information maintained within the boundary of the application. Some Examples • Application transaction data such as employee training records, payroll records, product sales, etc. • Application security or password data maintained within the application. • Help data maintained within the application. • Error files and their descriptions maintained within the application.
External Interface Files User-identifiable group of logically related data or control information referenced by the application but maintained within the boundary of a different application. Some Examples • Application data extracted and read from other applications. • Application security or password data maintained outside the application. • Help data maintained outside the application. • Error files and their descriptions maintained outside the application.
External Inputs An elementary process of the application that processes data (maintains one or more ILF) or control information which enters from outside the boundary of the application Some Examples • Transactional data that used to maintain an ILF, such as a sale item or an insurance form. • Input that provides control information, such as an earthquake sensor report. • Messages from other applications that require processing.
External Outputs An elementary process of the application that generates data or control information which exits the boundary of the application. Further, the processing logic of the elementary process of an EO must perform one of the following: • Contain at least one mathematical formula or calculation. • Create derived data. • Maintain at least one ILF. • Alter the behavior of the application.
Some examples of External Outputs • Reports that require the use of algorithms or calculations . • Data transfers, files, and/or messages sent to other applications when data is calculated or derived. • A check that, when created, simultaneously updates the check record with the check number. • Derived or calculated information displayed on a screen or passed in a file. • Calculated responses returned by telephone. • Notification that a credit card is missing, with the calculated totals of current charges.
External Inquiries An elementary process of the application that results in retrieval of data or control information which exits the boundary of the application. Further, the processing logic of the elementary process of an EO must satisfy all of the following: • Contain no mathematical formula or calculation. • Creates no derived data. • Maintains no ILF. • Does no alter the behavior of the application.
Some Examples of External Inquiries • Transactional data that is retrieved from one or more ILFs and/or EIFs and displayed, e.g., an appointment, payment data. • User functions such as view, lookup, display, etc. • Log-on screens that provide application specific security. • Retrieval of mail from mailbox.
Function Point Weights File Type Low Medium High External inputs 3 4 6 External outputs 4 5 7 External inquiries 3 4 6 External interfaces 5 7 10 Internal interfaces 7 10 15
Computing UFC • Based on a set of requirements. • Enumerate the number of each of five types of behaviors or transactions. • Determine the weight of each such behavior by estimating for each such behavior whether it is low, medium, or high. • Adding the weighted values gives UFC.
Questions about Computing UFC • How is complexity of transaction determined? – IFPUG makes this determination in terms of record types and data types, or file types, accessed. • How are requirements mapped onto the categories of external and internal behaviors?
Sample Requirements • The requirements state that the user needs – to add an order – to initiate a change request to an order – to check the status of an order • Additionally, a regional report will be generated • And, an order notification report will be distributed.
Context Diagram for the Sample Requirements External Inquiries External inputs User User Check order status Add order Initiate change req. Order File User Order notification Internal logical file User External Output Purchase Order Function User Regional request
Unadjusted Function Count Function Type Value Check order status EQ 3 Add order EI 3 Initiate change request EI 3 Order notification EO 4 Regional report EO 4 Order file ILF 7 Total UFC 24
FP Value Adjustment Factors Data Communications Ease of change Dist. Functions Online update Performance Complex processing Heavily used operational Reusability of system config.s code Transaction rate Installation ease Online data entry Operational ease Design for end-user Multiple sites efficiency Each adjustment factor scored from 0 to 5
Computing Function Points ∑ = 14 = + TCF 0 . 65 0 . 01 F i i 1 FP = UFC * TCF Lines of code can be computed from number of FP
FP to LOC Conversion Language FI Assembly 320 C 150 Fortran/COBOL 105 ADA 71 Prolog/Lisp 64 Spreadsheet 6
Computing Effort using FP Productivity can be computed for past projects thus: productivity = size/effort Effort can be computed for new projects using productivity rate thus: effort = size/productivity or Effort = constant1 + size x constant2
Recommend
More recommend