Function Point Analysis: Counting Function Points Reference Guide
Function Point Analysis: Counting Function Points Reference Guide
application; and is dependent upon the user’s external business External Interface File (EIF)
FUNCTION POINT ANALYSIS view of the application.
Boundary Rules: An external interface file (EIF) is a user identifiable group of
• The boundary is determined based on the user's point of view. logically related data or control information referenced by the
Counting Function Points The focus is on what the user can understand and describe. application, but maintained within the boundary of another
Reference Guide • The boundary between related applications is based on application. The primary intent of an EIF is to hold data referenced
separate business functions as seen by the user, not on through one or more elementary processes within the boundary of
IFPUG CPM Version 4.1 technological concerns. the application counted. This means an EIF counted for an
• For enhancement projects, the initial boundary must conform application must be in an ILF in another application.
to the boundaries already established for the application or External Interface Files Identification Rules
applications being modified. • The group of data or control information is a logical and user
identifiable.
• The group of data is referenced by, and external to, the
Internal Logical File (ILF) application being counted
• The group of data is not maintained by the application being
counted.
An internal logical file (ILF) is a user identifiable group of logically • The group of data is maintained in an ILF of another
www.softwarems.com related data or control information maintained within the boundary application.
of the application. The primary intent of an ILF is to hold data
321 Main Street maintained through one or more elementary processes of the Data Element Type and File Type Referenced Identification
Woodbridge, New Jersey 07095 application being counted. Rules, and Complexity Matrix: SAME AS ILF
Tel: 732-750-0020
Email: [email protected] Internal Logical Files Identification Rules EIF Weights Low=5 Average=7 High=10
• The group of data or control information is a logical and user
identifiable.
• The group of data is maintained through an elementary External Input (EI)
process within the application boundary being counted.
User View
ILF & EIF Data Element (DET) Type Identification Rules An external input (EI) is an elementary process that processes
• Count a DET for each unique user recognizable, non-repeated data or control information that comes from outside the application
A user is any person that specifies Functional User Requirements field maintained in or retrieved from the ILF or EIF through the boundary. The primary intent of an EI is to maintain one or more
and/or any person or thing that communicates or interacts with the execution of an elementary process. ILFs and/or to alter the behavior of the system.
software at any time. • When two applications maintain and/or reference the same External Inputs Identification Rules
ILF/EIF, but each maintains/references separate DETs, count • The data or control information is received from outside the
A user view represents a formal description of the user’s business only the DETs being used by each application to size the application boundary.
needs in the user’s language. Developers translate the user ILF/EIF. • At least one ILF is maintained if the data entering the boundary
information into information technology language in order to provide • Count a DET for each piece of data required by the user to is not control information that alters the behavior of the system.
a solution. A function point count is accomplished using the establish a relationship with another ILF or EIF. • For the identified process, one of the following three rules
information in a language that is common to both user(s) and must apply:
developers. ILF & EIF Record Element Type (RET) Identification Rule - Process logic is unique from other external inputs for the
• Count an RET for each optional or mandatory subgroup of the application. Processing logic is defined as any of the
A user view is a description of the business functions; is approved ILF; OR requirements specifically requested by the user to
by the user; can be used to count function points; can vary in • If there are no subgroups, count the ILF as one RET. complete an elementary process, such as validations,
physical form (e.g., catalog of transactions, proposals, algorithms, or calculations, and reading or maintaining a
requirements document, external specifications, detailed ILF Weights Low=7 Average=10 High=15 file.
specifications, user handbook) - The set of data elements identified is different from the
Record Data Element Types
Element sets identified for other external inputs for the application.
User Identifiable is a defined requirement for processes and/or Types 1 – 19 20 - 50 - The ILFs or EIFs referenced are different from the files
51+
groups of data that are agreed upon, and understood by both the referenced by other external inputs in the application
user and the software developers. 1 L L A
2-5 L A H EI File Type Referenced (FTR) Rules
6+ • Count an FTR for each ILF maintained.
Counting Boundary
A H H
• Count an FTR for each ILF or EIF read during the processing
of the EI
• Count only one FTR for Each ILF that is both maintained and
The application boundary defines what is external to the read by the EI.
application; is the conceptual interface between “internal”
application and “external” user world; acts as a “membrane”
through which data passes into and out from the application;
encloses the logical data maintained by the application; assists in
EI Data Element Type Rules • Count only one FTR for each ILF that is both maintained and - The ILFs or EIFs referenced are different from the files
• Count one DET for each user recognizable, non-repeated field read during the elementary process referenced by other EQs in the application
that enters or exits the application boundary and is required to
EO/EQ Data Element Type Rules
complete the external input. FTR and DET Rules – Same as External Output Rules
• Count one DET for each user recognizable, non-repeated
• Do not count fields that are retrieved or derived by the system
field that enters the application boundary and is required to
and stored on an ILF during the elementary process if the EQ Weights Low=3 Average=4 High=6
specify when, what and/or how the data is to be retrieved or
fields did not cross the application boundary File
generated by the elementary process Data Element Types
• Count one DET for the capability to send a system response Types
• Count one DET for each user recognizable, non-repeated
message outside the application boundary to indicate an error Referenced 1–5 6 - 19 20+
field that exits the boundary
occurred druing processing, confirm that processing is L L
• If a DET both enters and exits the boundary, count it only 0 or 1 A
complete, or verify that processing should continue.
once for the elementary process. 2-3 L A H
• Count one DET for the ability to specify an action to be taken
• Count one DET for the capability to send a system response
even if there are multiple methods for invoking the same logical 4+ A H H
message outside the application boundary to indicate an error
process.
occurred during processing, confirm that processing is
complete or verify that processing should continue.
EI Weights Low=3 Average=4 High=6
• Count one DET for the ability to specify an action to be taken Function Point Calculations
File Data Element Types even if there are multiple methods for invoking the same
Types logical process.
Referenced 1–4 5 - 15 16+ • Do not count fields that are retrieved or derived by the system Development Project Function Point =
0 or 1 L L A and stored on an ILF during the elementary process if the (UFP + CFP) * VAF
fields did not cross the application boundary. Enhancement Project Function Point =
2 L A H [ (ADD + CHGA + CFP) * VAFA ] + (DEL * VAFB)
• Do not count literals as DETs.
3+ A H H • Do not count paging variables or system-generated stamps. Initial Application Function Point =
ADD * VAF
EO Weights Low=4 Average=5 High=7 Revised Application Function Point after Enhancements =
[ (UFPB + ADD + CHGA) - (CHGB + DEL) ] * VAFA
External Output (EO)
File Data Element Types
Types
Referenced 1–5 6 - 19 20+ Where
ADD = unadjusted FP added to application
An external output (EO) is an elementary process that sends data 0 or 1 L L A CFP = conversion FPs
or control information outside the application boundary. The 2-3 L A H CHGA = unadjusted FP modified by the enhancement project.
primary intent of an external output is to present information to a Reflects the functions after the modifications.
4+ A H H
user through processing logic other than, or in addition to, the CHGB = unadjusted FP modified by the enhancement project.
retrieval of data or control information . The Reflects functions before the modifications.
processing logic must contain at least one mathematical formula or DEL = unadjusted FP deleted by the enhancement project.
calculation, or create derived data. An external output may also
maintain one or more ILFs and/or alter the behavior of the system. External Inquiry (EQ) UFP = unadjusted FP count
UFPB = unadjusted FP before the enhancement project
VAF = value adjustment factor
External Output Identification Rules VAFA = value adjustment factor after enhancement project
An external inquiry (EQ) is an elementary process that sends data
• The function sends data or control information external to the VAFB =value adjustment factor before enhancement project
or control information outside the application boundary. The
application boundary.
primary intent of an external inquiry is to present information to a
• For the processing logic of the elementary process one of the
user through the retrieval of data or control information from an ILF
following four statements must also apply:
of EIF. The processing logic contains no mathematical formulas or
- It contains at least one mathematical formula or calculation
calculations, and creates no derived data. No ILF is maintained
- It creates derived data
during the processing, nor is the behavior of the system altered.
- It maintains at least one ILF
- It alters the behavior of the system
External Inquiry Identification Rules
• One of the following three statements must apply:
• The function sends data or control information external to the
- Processing logic is unique from the processing logic
application boundary
performed by other EOs for the application.
• The processing logic of the elementary process:
- The set of data elements identified is different from the
- retrieves data or control information from an ILF or EIF
sets identified for other EOs for the application.
- does not contain a mathematical formula or calculation
- The ILFs or EIFs referenced are different from the files
- does not create derived data
referenced by other EOs in the application
- does not maintain an ILF
- does not alter the behavior of the system
EO/EQ File Type Reference Rules
? One of the following three statements must apply:
• Count one file type reference for each ILF or EIF read during
- Processing logic is unique from the processing logic
the processing of the EO or EQ
performed by other EQs for the application
Additional File Type Reference Rules for EO only
- The set of data elements identified is different from the sets
• Count one FTR for each ILF maintained during the
identified for other EQs for the application
processing of the elementary process
2 Data is prepared for transfer, then is transferred and Score As:
processed on another component of the system (not for 0 No peak transaction period is anticipated.
end-user processing). 1 Peak transaction period (e.g., monthly, quarterly, seasonally,
FUNCTION POINT ANALYSIS 3 Distributed processing and data transfer are online and in annually) is anticipated.
one direction only. 2 Weekly peak transaction period is anticipated.
4 Distributed processing and data transfer are online and in 3 Daily peak transaction period is anticipated.
General System Characteristics both directions. 4 High transaction rate(s) stated by the user in the application
5 Processing functions are dynamically performed on the requirements or service level agreements are high enough to
Reference Guide most appropriate component of the system.
5
require performance analysis tasks in the design phase.
High transaction rate(s) stated by the user in the application
3. PERFORMANCE requirements or service level agreements are high enough to
Application performance objectives, stated or approved by the require performance analysis tasks and, in addition, require
user, in either response or throughput, influence (or will influence) the use of performance analysis tools in the design,
the design, development, installation, and support of the development, and/or installation phases.
application. Online data entry and control functions are provided in the
application.
Score As:
0 No special performance requirements were stated by the 6. ONLINE DATA ENTRY
www.softwarems.com user. Score As:
1 Performance and design requirements were stated and 0 All transactions are processed in batch mode.
321 Main Street reviewed but no special actions were required. 1 1% to 7% of transactions are interactive data entry.
Woodbridge, New Jersey 07095 2 Response time or throughput is critical during peak hours. 2 8% to 15% of transactions are interactive data entry.
Tel: 732-750-0020 No special design for CPU utilization was required. 3 16% to 23% of transactions are interactive data entry.
Email: [email protected] Processing deadline is for the next business day. 4 24% to 30% of transactions are interactive data entry.
3 Response time or throughput is critical during all business 5 More than 30% of transactions are interactive data entry.
hours. No special design for CPU utilization was required.
Processing deadline requirements with interfacing systems 7. END-USER EFFICIENCY
1. DATA COMMUNICATIONS are constraining. The online functions provided emphasize a design for end-user
The data and control information used in the application are sent 4 In addition, stated user performance requirements are efficiency. The design includes
or received over communication facilities. Terminals connected stringent enough to require performance analysis tasks in • Navigational aids (for example, function keys, jumps,
locally to the control unit are considered to use communication the design phase. dynamically generated menus)
facilities. Protocol is a set of conventions which permit the transfer 5 In addition, performance analysis tools were used in the • Menus
or exchange of information between two systems or devices. All design, development, and/or implementation phases to • Online help and documents
data communication links require some type of protocol. meet the stated user performance requirements. • Automated cursor movement
• Scrolling
Score As: 4. HEAVILY USED CONFIGURATION • Remote printing (via online transactions)
0 Application is pure batch processing or a standalone PC. A heavily used operational configuration, requiring special design • Pre-assigned function keys
1 Application is batch but has remote data entry or remote considerations, is a characteristic of the application. For example, • Batch jobs submitted from online transactions
printing. the user wants to run the application on existing or committed • Cursor selection of screen data
2 Application is batch but has remote data entry and remote equipment that will be heavily used. • Heavy use of reverse video, highlighting, colors underlining,
printing. and other indicators
3 Application includes online data collection or TP Score As: • Hard copy user documentation of online transactions
(teleprocessing) front end to a batch process or query 0 No explicit or implicit operational restrictions are included. • Mouse interface
system. 1 Operational restrictions do exist, but are less restrictive than a • Pop-up windows.
4 Application is more than a front-end, but supports only one typical application. No special effort is needed to meet the • As few screens as possible to accomplish a business
type of TP communications protocol. restrictions. function
5 Application is more than a front-end, and supports more than 2 Some security or timing considerations are included. • Bilingual support (supports two languages; count as four
one type of TP communications protocol. 3 Specific processor requirements for a specific piece of the items)
application are included. • Multilingual support (supports more than two languages;
2. DISTRIBUTED DATA PROCESSING 4 Stated operation restrictions require special constraints on count as six items)
the application in the central processor or a dedicated
Distributed data or processing functions are a characteristic of the
processor. Score As:
application within the application boundary.
5 In addition, there are special constraints on the application in 0 None of the above.
the distributed components of the system. 1 One to three of the above.
Score As:
2 Four to five of the above.
0 Application does not aid the transfer of data or processing
function between components of the system. 5. TRANSACTION RATE 3 Six or more of the above, but there are no specific user
The transaction rate is high and it influenced the design, requirements related to efficiency.
1 Application prepares data for end user processing on
development, installation, and support of the application. 4 Six or more of the above, and stated requirements for end-
another component of the system such as PC
user efficiency are strong enough to require design tasks for
spreadsheets and PC DBMS.
human factors to be included (for example, minimize key
strokes, maximize defaults, use of templates).
5 Six or more of the above, and stated requirements for end- customized for use by means of user parameter Score As:
user efficiency are strong enough to require use of special maintenance. 0 User requirements do not require considering the needs of
tools and processes to demonstrate that the objectives have more than one user/installation site.
been achieved. 11. INSTALLATION EASE 1 Needs of multiple sites were considered in the design, and
Conversion and installation ease are characteristics of the the application is designed to operate only under identical
8. ONLINE UPDATE application. A conversion and installation plan and/or conversion hardware and software environments.
The application provides online update for the internal logical files. tools were provided and tested during the system test phase. 2 Needs of multiple sites were considered in the design, and
the application is designed to operate only under similar
Score As: Score As: hardware and/or software environments.
0 None. 0 No special considerations were stated by the user, and no 3 Needs of multiple sites were considered in the design, and
1 Online update of one to three control files is included. special setup is required for installation. the application is designed to operate under different
Volume of updating is low and recovery is easy. 1 No special considerations were stated by the user but special hardware and/or software environments.
2 Online update of four or more control files is included. setup is required for installation. 4 Documentation and support plan are provided and tested to
Volume of updating is low and recovery easy. 2 Conversion and installation requirements were stated by the support the application at multiple sites and the application
3 Online update of major internal logical files is included. user, and conversion and installation guides were provided is as described by 1 or 2.
4 In addition, protection against data lost is essential and has and tested. The impact of conversion on the project is not 5 Documentation and support plan are provided and tested to
been specially designed and programmed in the system. considered to be important. support the application at multiple sites and the application
5 In addition, high volumes bring cost considerations into the 3 Conversion and installation requirements were stated by the is as described by 3.
recovery process. Highly automated recovery procedures user, and conversion and installation guides were provided
with minimum operator intervention are included. and tested. The impact of conversion on the project is 14. FACILITATE CHANGE
considered to be important. The application has been specifically designed, developed, and
9. COMPLEX PROCESSING 4 In addition to 2 above, automated conversion and installation supported to facilitate change.
Complex processing is a characteristic of the application. The tools were provided and tested. The following characteristics can apply for the application:
following components are present: 5 In addition to 3 above, automated conversion and installation • Flexible query and report facility is provided that can handle
• Sensitive control (for example, special audit processing) tools were provided and tested. simple requests; for example, and/or logic applied to only one
and/or application specific security processing internal logical file (count as one item).
• Extensive logical processing 12. OPERATIONAL EASE • Flexible query and report facility is provided that can handle
• Extensive mathematical processing Operational ease is characteristic of the application. Effective requests of average complexity, for example, and/or logic
• Much exception processing resulting in incomplete start-up, back-up, and recovery procedures were provided and applied to more than one internal logical file (count as two
transactions that must be processed again, for example, tested during the system test phase. The application minimizes items).
incomplete ATM transactions caused by TP interruption, the need for manual activities, such as tape mounts, paper • Flexible query and report facility is provided that can handle
missing data values, or failed validations handling, and direct on-location manual intervention. complex requests, for example, and/or logic combinations on
• Complex processing to handle multiple input/output one or more internal logical files (count as three items).
possibilities, for example, multimedia, or device independence Score As: • Business control data is kept in tables that are maintained by
Score As: 0 No special operational considerations other than the normal the user with online interactive processes, but changes take
0 None of the above. back-up procedures were stated by the user. effect only on the next business day.
1 Any one of the above. 1 - 4 One, some, or all of the following items apply to the • Business control data is kept in tables that are maintained by
2 Any two of the above. application. Select all that apply. Each item has a point the user with online interactive processes, and the changes
3 Any three of the above. value of one, except as noted otherwise. take effect immediately (count as two items).
4 Any four of the above. • Effective start-up, back-up, and recovery processes were
5 All five of the above. provided, but operator intervention is required. Score As:
• Effective start-up, back-up, and recovery processes were 0 None of the above.
10. REUSABILITY provided, but no operator intervention is required (count 1 Any one of the above.
The application and the code in the application have been as two items). 2 Any two of the above.
specifically designed, developed, and supported to be usable in • The application minimizes the need for tape mounts. 3 Any three of the above.
other applications. • The application minimizes the need for paper handling. 4 Any four of the above.
5 The application is designed for unattended operation. 5 All five of the above.
Score As: Unattended operation means no operator intervention is
0 No reusable code. required to operate the system other than to start up or shut
1 Reusable code is used within the application. down the application. Automatic error recovery is a feature
2 Less than 10% of the application considered more than one of the application.
user's needs.
3 Ten percent (10%) or more of the application considered
more than one user's needs.
4 The application was specifically packaged and/or
documented to ease re-use, and the application is 13. MULTIPLE SITES
customized by the user at source code level.
The application has been specifically designed, developed, and
5 The application was specifically packaged and/or
supported to be installed at multiple sites for multiple
documented to ease re-use, and the application is
organizations.