Friday, March 28, 2014

NESMA and IFPUG - Main Difference



Main Differences in FP Analysis using NESMA and IFPUG

 
Preface

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