Professional Documents
Culture Documents
Application Features
Release 1.0
Note: The NEC has established these White Papers in an effort to distribute
hints about a subject domain quickly to the counting community.
This document is based on the function point counting practices as described in the
current 4.2 series of the IFPUG Counting Practices Manual (CPM) and demonstrates the
applicability of IFPUG Function Points in the subject domain.
The contents of this paper are to be used exclusively as hints in the application of function
point counting in the domain described.
These hints do not constitute rule changes and should not be used as rules. While this
document has been reviewed and approved by the CPC, it does not constitute IFPUG
counting practice standards as contained in the CPM.
Page 2
Additional Contributors
Page 3
Introduction
A Graphical User Interface (GUI) is the visual front-end of a program or the part used to
communicate (input and output) with the user. Some examples of GUI interface features
are menus, buttons, tabbed screens, searches, pick lists, drill-downs and pull-down
menus. The purpose of this document is to demonstrate how IFPUG function point
analysis can be applied to count GUI features utilized within many of todays web, PCbased and mainframe applications.
This paper will not document the actual function point count details such as documenting
the total number of record element types (RETs), data element types (DETs), and file
types referenced (FTRs) for identified transactions. The assumption is that identifying
the functional complexity for the identified transactions is described in the IFPUG
Function Point Counting Practices Manual (CPM).
Audience
The intended audience for this paper is those function point counting professionals who
have an intermediate to advanced understanding of the IFPUG CPM rules and need to
apply them while counting an application containing GUI features. This information may
also be beneficial to members of the Information Technology community at large who
need to gain an understanding of how a GUI interface looks from the user perspective
when the IFPUG counting rules are applied.
Environment
Care should be taken to distinguish when navigating to a function in another application.
This is not always clear during the function point analysis since there may be links, drilldowns and additional information displayed from another application which is outside the
boundary of that which is being counted.
Page 4
Approach
Several GUI examples are presented in this paper with explanations for applying function
point rules to count the functionality presented. This paper assumes that the GUI features
described within this paper are part of several existing, self-contained applications. The
examples are from a Human Resource application with references to transactions and
files associated within the Equipment application.
Care should be taken to investigate and accurately identify the elementary processes
involved in the application and the users view of what constitutes a process which meets
the following definition of an elementary process:
The process is the smallest unit of activity that is meaningful to the user.
The process is self-contained and leaves the business of the application in a
consistent state.1
IFPUG Function Point Counting Practices Manual, Release 4.2.1; Part 1 Process and Rules; Chapter 7 Count Transactional Functions; Page 7-10
Page 5
Scenarios
Example 1 Multiple tabs
The following screen displays several GUI features. These features will be described in
the following pages with an explanation of how to count them using function points and
in which situations they may or may not be counted as transactional functions. Tab
functionality should be carefully analyzed to determine whether all tabs are contained in
one elementary process or whether some tabs represent a separate elementary process.
Figure 1 Multiple Tabs
Based on conversations with the user, the Function Point Analyst has learned the
following information. The Edit Person screen allows for the modification of a Person
record maintained in the Human Resources application. Other transactions, not included
within this paper, are available to the user to add and delete Person information.
The Edit Person function performs maintenance to the Person ILF which includes the
General and Address sections displayed in Figure 1. Updating the information contained
in both sections is considered to be a single elementary process and is counted as one EI
transaction. An EQ is also counted for the initial display of the Person data prior to
modification.
Copyright IFPUG 2008
Page 6
The Components tab becomes active after a Person Record has been established and
allows components to be assigned to a Person as displayed in Figure 2. For this
application, components are defined as a piece of equipment or software. A
configuration is a set of components identified as a specific unit. For the purposes of this
paper a component and a configuration are treated the same and can be associated to a
Person through the Edit Person screen. Component information is maintained in the
Equipment application outside the boundary of the Human Resources application.
Figure 2 Components Tab
The Components tab has two sections: Components List (left hand portion of the
screenand Components Details (right hand portion of the screen) which includes the
Asset IDs section. The Components List includes any specific component associated to
the particular Person and the individual parts that make up that component. The
informatiodisplayed in the Components Details section is based on the specific item
highlighted in the Components List. The display changes with each individual
component highlighted. A component is made up of from 1 to many other components
and is referenced as an EIF by the application being counted.
Information is retrieved from the Component EIF and is a unique display within the
Human Resource application. The Components List is an EQ (left side panel) and the
Components Details (right side panel) is another EQ. The View, Edit and Create buttons
perform a navigational transfer to the Components maintenance screens within the
Equipment application. These transactional functions are not counted within the scope of
the Human Resource application and are not specifically addressed in this paper.
The Link and Unlink buttons allow for the association and disassociation of a component
to a specific Person. This is accomplished by selecting the appropriate Component from
the display windows as documented in Example 2 Query/Selection Combination. The
Link and Unlink function is counted as one EI Transaction to associate or disassociate the
identified component to the Person record displayed. Both the Link and Unlink button
function as the Update Component Association transaction for the EI.
The Print button sends a detailed report of a Person and all the associated Components to
be printed on a designated printer. This is an EQ which contains a unique list of
components that have been associated with a person. There is no online display available
and no calculation or derived data.
Page 7
Query capability is initiated by filling in the fields on the Criteria tab and clicking on the
Select button. This is the input side of the EQ, the results of which are displayed in
Figure 4. The details of the Criteria tab fields and actions are not further defined in this
paper. For example, there may be add, update and delete functionality as well as query
capability that needs to further analyzed.
Once the results of the Data List tab are displayed, the selection is made by doubleclicking the desired line from the records that appear. Figure 4 represents the output side
of the previous display transaction and contains the information that is then Linked to the
Person record. This results screen contains a unique set of data elements different from
the View Components display (not detailed in the paper) referenced in Figure 2.
Figure 4 Display Component List (result)
Page 8
The pick control icon itself is not counted a transactional function or a data element type.
It is considered a navigational tool. The resulting display would need to be analyzed to
determine if it is a transaction within the boundary of the application being counted or in
fact executed within an outside application.
Page 9
IFPUG Function Point Counting Practice Manual, Release 4.2.1, Part 2 - Counting Practices, Chapter 1
Code Data
Page 10
Check Box
The checkbox is a control feature, consisting of a graphic and associated text that a user
clicks to select or deselect an option. A check mark in the checkbox graphic indicates
that the option is selected. The ability to select the box value (either on or off) would be
counted as a DET for the transaction which utilizes the information. Count one DET for
each user recognizable, non-repeated field that enters (or exits) the application boundary
and is required to specify when, what, and/or how the data is to be retrieved or generated
by the elementary process.3
Scroll bars
Scroll bars allow the user to see additional columns of information and/or additional rows
of information. This feature is not counted as a separate function, but as a part of the
elementary process to technically present the information in a readable format.
Calendars for date entry
The display and use of the calendar for the entry of date and time information is not
considered a transactional function. This and other user friendliness functions such as
IFPUG Function Point Counting Practices Manual, Release 4.2.1; Part 1 Process and Rules; Chapter 7
Count Transactional Functions; Shared DET Rules for EOs and EQs; Pages 7-16 & 7-17
Page 11
reverse video, function keys, automated cursor movement, etc. are accounted for in the
End User Efficiency General System Characteristic.
Editor functionality
Functionality related to Undo, Repeat, Cut, Paste, Clear, etc. that are included in the
browser application and would not be counted as transactional functions unless
specifically coded for the application being counted. If these functions are considered as
a part of the application boundary, they must be carefully analyzed to determine if there
is any data that crosses the application boundary or if these are user efficiency functions.
Radio button
Radio buttons are used to set an option. Unlike checkboxes, radio buttons are mutually
exclusive--selecting one radio button deselects all other radio buttons in the group. The
ability to select the option would be counted as one DET for the group of related options
that are specified which utilizes the information.
For each group of unique, related options, the selection would be considered to be a
repeating field, however there may be multiple unique groups of options representing
multiple DETs for the transaction. For example: Order Type, Product Type, Color and
Size selection buttons would each be unique attributes (groups of data). Count one DET
for each user recognizable, non-repeated field that enters (or exits) the application
boundary and is required to specify when, what, and/or how the data is to be retrieved or
generated by the elementary process.4
IFPUG Function Point Counting Practices Manual, Release 4.2.1; Part 1 Process and Rules; Chapter 7
Count Transactional Functions; Shared DET Rules for EOs and EQs; Pages 7-16 & 7-17
Page 12
Additional considerations
Use caution when evaluating list boxes, radio buttons and check boxes, etc; be careful to
identify unique values which also have unique processing logic and therefore would be
counted as separate transactions
Command Button
A command button is a button with a rectangular border that contains text, a graphic, or
both. A user clicks a command button to initiate an action. Count one DET for the ability
to specify an action to be taken even if there are multiple methods for invoking the same
logical process.5 Therefore an Add, Create, or New button may initiate an add
transactional function, an Edit or Modify button may initiate a change transaction
function and a Delete or Remove button may initiate a delete transactional function.
The text may be represented using different verbiage and/or images, but the underlying
process is a transactional function. However, each button should be thoroughly analyzed
to determine the exact process involved. In some cases a Save or Close button may
complete the actual add, change or delete transactional functions and two unique
elementary processes may be initiated from the same button.
Next and Cancel
Some buttons such as the Next or Cancel buttons may only be navigational and are
therefore not counted in function points.
IFPUG Function Point Counting Practices Manual, Release 4.2.1; Part 1 Process and Rules; Chapter 7
Count Transactional Functions; Shared DET Rules for EOs and EQs; Page 7-17
Page 13
Conclusion
This paper addresses several Graphical User Interface features and explains how unique
features of GUI applications are identified and counted in Function Points. The Function
Point Analyst should be diligent in determining the specific application boundary for the
counting activity. This is important in the identification of unique data and transactional
functions.
Care should also be taken to investigate and accurately identify the elementary processes
involved in the application and the users view of what constitutes a process which meets
the following definition of an elementary process:
The process is the smallest unit of activity that is meaningful to the user.
The process is self-contained and leaves the business of the application in a
consistent state.6
IFPUG Function Point Counting Practices Manual, Release 4.2.1; Part 1 Process and Rules; Chapter 7 Count Transactional Functions; Page 7-10
Page 14