Main Differences in FP Analysis using NESMA and IFPUG
Although IFPUG
and NESMA have worked closely since their inception, they do have some
differences which make them derive different FP count for the same application
or project.
This document describes the present-day differences in the NESMA and IFPUG counting guidelines.
IFPUG CPM 4.3
and NESMA CPM 2.1 versions are considered for the comparison. NESMA CPM 2.2 is
the Dutch version of NESMA CPM 2.1 and both are completely interchangeable.
Please note
that the NESMA counting guidelines have been stable since version 1.0 of the
manual was published in 1989. IFPUG had 4 releases over the years.
Practically the same guidelines
NESMA and
IFPUG both use the same terminology, albeit in a different language. The NESMA
maintains
a list of
English-language words related to FPA. Both NESMA and IFPUG differentiate the
same five types of user functions: ILGV (ILF), KGV (EIF), IF (EI), UF (EO), OF
(EQ).
The rules for
determining the type and complexity of a function are the same, with a few
exceptions:
•
External Inquiry vs. External Output
•
Complexity of an External Inquiry
•
Implicit Inquiry
•
Code data (Code tables)
•
Physical media
•
Queries with multiple selections (“and/or” situations)
In the
following each topic is highlighted.
1. External Inquiry vs. External Output
For IFPUG, an
External Inquiry is defined as a function that presents data to a user from a
logical file (ILF or EIF) without undergoing additional processing (such
as calculations, updates to an ILF, etc.). In all other cases it is considered
an External Output.
For NESMA, the
same rules apply, but in addition, a unique selection key must have been
entered and the output must be fixed in scope. In some cases, therefore, IFPUG
will count an External Inquiry, while
NESMA counts
the same function as an External Output (e.g. “Show all customers”).
The impact of
this difference is marginal for the number of function points for a
system or project because only the type of function (External Inquiry or
External Output) is affected; not the number of counted functions.
2.
Complexity of an External Inquiry
For NESMA the
functional complexity of the input part of an External Inquiry is based on the
complexity rules for an External Input function; the complexity of the output
part is based on the rules for an External Output function. The more complex of
the two will be used as the complexity of the External Inquiry.
For IFPUG the
functional complexity is determined in the same way as all other transactions,
by counting the number of data-element-types crossing the application boundary
and identified in the data-functions.
In practice
the impact of this difference is marginal for the number of function
points for a system or project.
3.
Implicit Inquiry
While modifying
or deleting data, it is often being first presented to the user for viewing.
This is known as an “implicit inquiry”.
For NESMA, the
underlying goal of a function is always the primary objective. NESMA therefore
does not consider the implicit inquiry as a separate transactional function,
but as an integral part of the “modify- or delete” function. The data element
types presented to the user by the implicit inquiry are therefore added to
those counted in the “modify- or delete” function. NESMA will only count the
External Inquiry if it is specifically identified by the user for the purpose
of querying data.
IFPUG has
included one example in CPM 4.3 which explains in detail “an implicit enquiry”.
IFPUG considers it as an External Inquiry.
The impact of
this difference is marginal for the number of function points in a
system or project. Usually the user will have defined this function as an
(explicit) inquiry (and it will thus be counted). The implicit inquiry will
then not be counted (again) because the same function cannot be counted twice.
4.
Code tables
In general,
entities can be seen as being composed of primary data ( “business objects”) or
composed of secondary data (supportive data).
In the case of
primary data, both NESMA and IFPUG follow the same counting guidelines. Secondary data usually consist of
code-tables, also called “FPA-tables” by NESMA.
As an example, consider the “translation table”: article code _ article description.
During data
function counting, NESMA will classify all code tables as one ILF and/or one
EIF. The number of record types will be set equal to the number of identified
code tables. Altogether, the FPA table-ILF will also count for one External Input,
one External Inquiry and one External Output. For the
FPA-table-EIF
no transactional functions are counted, even though External Inputs or External
inquiries may be present.
Since IFPUG
CPM 4.3, IFPUG considers code tables to be an implementation of technical or
quality requirements for the user, and not part of the functional requirements.
In accordance with the ISO FSM standard, IFPUG has therefore decided that code
tables and the transactional functions associated with them, are not to be
counted using function points.
Once again,
the impact of this difference is marginal for the number of function
points for a system or project. The difference will be at most 25
function points for an FPA table ILF, and 20 function points for an FPA table
EIF.
5.
Physical media
Physical media
is ignored in NESMA counting practices. NESMA looks at the underlying
functionality. If the number of data element types and the logical processing
are the same, input entered through different media will be counted as one External
Input by NESMA. The same holds true for External Outputs. Reports that can be
presented on different media (print, screen, etc.) are counted as one External
Output function (when the number of data element types and the logical
processing remain the same).
In IFPUG CPM
4.3 no specific counting guidelines are given for this situation.
6.
Inquiries containing multiple
selection criteria (“and/or” situations)
In the NESMA
counting guidelines only mutually exclusive selections are to be counted.
IFPUG has no
specific guidelines for this situation. Some IFPUG counters therefore, count
every conceivable combination of selection criteria as separate functions,
which may result in large differences in function points among IFPUG counters.
No comments:
Post a Comment