Function
points play a significant role in the management of information
systems. Function point analysis is a proven, reliable method
for measuring application development work-products.
What is Function Point Counting?
Function Point Counting or Analysis, is a standard method
for measuring software development from the user or customer's
point of view. The size of the new or ongoing development
project is expressed in Function Points. Function Points measure
what is delivered to the customer, not how it is delivered.
When should a count be done?
Function Points for the system or release may be counted any
time during the system development life cycle after high-level
user requirements are known. The function point analysis may
be completed early in the development process or at the end
of the development process. When a count is done early in
the life cycle of a project, it is called a Function Point
Estimate and approximates a project rather than measures it.
Assumptions can be made in the early counts, but they should
be documented. Accurate function point estimates can be done
when the detailed user requirements are complete. Due to requirements
churn, it is recommended that a final count be done at the
completion of the project when the system or release functionality
becomes available to the user.
What kinds of counts are there?
There are three types of Function Point counts as follows:
1. Development Project Function Point Count
The Development Project Function Point Count measures the
application functions delivered when the project is complete,
and is associated with the initial installation or complete
rewrite of new software. It describes the user functionality
of the new application, and yields the Baseline Count upon
which all future counts are based.
2. Application Function Point Count
The Application Function Point Count sizes the current functions
the application provides to the end-user. It is also referred
to as the Baseline Count or Installed Function Point Count.
One purpose for this count is to bring a Baseline Count up
to date when numerous Enhancement Counts have not been performed.
This count is updated after the completion of each Enhancement
Function Point Count.
3. Enhancement Project Function Point Count
The Enhancement Project Function Point Count sizes the functionality
added, changed or deleted to an existing application plus
any conversion functionality needed. This is done for continuing
development, when work is done to modify an existing application
to support new or changed business functions or user requirements,
usually on a regular basis.
The Enhancement Count represents the sum of the functionality
being added, changed, or deleted when the project is complete.
This count is applied to the Baseline Count to get the new
application baseline, not added to it. The new baseline count
may be higher, lower, or the same as the previous Baseline.
What is a count used for?
Function Point Analysis sizes the functionality delivered
to the customer based on the user’s Business Requirements.
The resulting Function Point Count provides a basis for creating
a variety of valuable software process performance and quality
measures which can be used for benchmarking as well as for
measuring the improvements in the software development process.
The Function Point Count used in conjunction with other metrics,
can be used to predict or determine project costs, duration
(in calendar months), Quality (potential and delivered defects),
and Productivity (person-months). Counts done early in the
project life cycle can be used for project estimating, such
as staff-months required, the duration of the project, testing
time required, or the number of headcount required.
What is counted?
The function point counting rules can accurately be applied
to a variety of software environments and technologies including,
but not limited to, client/server applications, embedded software,
middleware, real time, rules-based systems, web-based applications,
and conversant applications. Function point analysis is independent
of the technology or process employed.
Function Points measure components that are visible and important
to the user. As shown in the diagram, software functionality
is classified into five different function types (two Data
function types or files, and three Transactional function
types). The Unadjusted Function Points are computed by assigning
a weight based on their respective functional complexity,
to each of the function types.
The Data function types are:
• Internal Logical Files (ILF) (ILF) are logically related,
user identifiable data or control information used by the
application. The primary intent of an ILF is to hold data
to be maintained (modified) and stored within the boundaries
of the application being counted.
• External Interface Files (EIF) are logically related,
user identifiable data or control information used by the
application, but maintained (modified) and stored by another
application outside the boundaries of the system. The primary
intent of an EIF is to hold data to be referenced by the application
being counted. An EIF in the application being counted must
be an ILF in a different application.
The Transactional function types are:
• External Inputs (EI) are transactions representing
an application’s data maintenance and control processing
requirements. It is data that enters the application from
outside its boundaries, is unique in its format or in the
processing logic it initiates. The primary intent of an EI
is to maintain one or more ILFs and/or to alter the behavior
of the system. are transactions representing an application’s
data maintenance and control processing requirements. It is
data that enters the application from outside its boundaries,
is unique in its format or in the processing logic it initiates.
The primary intent of an EI is to maintain one or more ILFs
and/or to alter the behavior of the system.
• External Outputs (EO) are transactions representing
an application’s output processing requirements. The
data is sent outside the boundaries of the application, where
the format or the logic creating the output is unique. The
primary intent of an EO is to present information to a user,
using at least one mathematical formula or calculation or
deriving the data. The EO may also update an ILF and/or alter
the behavior of the system.
• External Inquiries (EQ) are unique transactions representing
an application’s inquiry or data retrieval processing
requirements. The primary intent of an EQ is to present information
to a user through a retrieval process. It does not process
the data retrieved, and it cannot update an ILF nor alter
the behavior of the system.
Adjusting the Function Point Count
The overall characteristics of a system must be assessed and
factored in to get the total number of Adjusted Function Points.
This is done by examining 14 general system characteristics
of the system, such as the transaction rate, performance,
and installation ease. Each characteristic is evaluated as
to its degree of influence on the system. The Total Degree
of Influence is used in a formula to give the Adjusted Function
Point Count, commonly called the Function Point Count.
|