Improved Function Point Definitions

The current IFPUG 4.0 and the revised IFPUG 4.1 defintions are not clear and concise.  The following definitions conform to the IFPUG definitions, but the IFPUG definitions are difficult to understand.

The following definitions should not impact a function point count, but they do reduce the learning curve when applying function points to new and emerging technologies.  I would encourage each of you to send me an email with questions and comments.

You are welcome to print and/or use these definitions, but please reference this website and/or David Longstreet as the source of definitions.

External Inputs
Improved Definition: External Inputs (EI) - is an elementary process in which data crosses the boundary from outside to inside. This data may come from a data input screen, electronically or another application. The data can be either control information or business information. If the data is business information it is used to maintain one or more internal logical files. If the data is control information it does not have to update an internal logical file.

IFPUG 4.0 Definition: External Input (EI) processes data or control information that comes from outside the application boundary. The external input itself is an elementary process. The processed data maintains one or more ILF’s. The processed control information may or may not maintain an ILF.

Critical Reasoning:

The IFPUG definition states "…from outside the application boundary." Since the IFPUG definition reads "…the processed data maintains one or more ILF’s, then it is clear that the information must come from outside to inside the boundary. This is important for a variety of reasons. It is clear from the improved definition, calculated values that are stored are data elements for the external input, but calculated values that are not stored are not data elements for the external input. This is true because the calculated value that is not stored has not crossed the boundary (outside to inside) and it is not maintaining an ILF.

In a GUI or OO environment it is common for information to move from one window to the next. The actual movement of data is not considered an external input because it has not crossed the application boundary (outside to inside) and does not maintain an ILF.

External Outputs
Improved Definition: External Outputs (EO) - an elementary process in which derived data passes across the boundary from inside to outside. The data creates reports or output files sent to other applications. These reports and files are created from one or more internal logical files and external interface file .

Derived Data is data that is processed beyond direct retrieval and editing of information from internal logical files or external interface files. Derived data is the result of algorithms, and/or calculations. Derived data occurs when one or more data elements are combined with a formula to generate or derive an additional data element(s).

An algorithm is defined as a mechanical procedure for performing a given calculation or solving a problem in a series of steps.

IFPUG 4.0 Definition:

An External Output (EO) is an elementary process that generates data or control information sent outside the application boundary.

Critical Reasoning:

The IFPUG 4.0 manual fails to give a definition for derived data and it does not tell where the information was prior to being sent outside the boundary. If information is sent outside the boundary it is safe to say that the information was inside the boundary. Since the information was inside the boundary it must be contained in an ILF or EIF.

External Inquiries
Improved Definition: External Inquiry (EQ) - is an elementary process with both input and output components that result in data retrieval from one or more internal logical files and external interface files. This information is sent outside the application boundary. The input process does not update any Internal Logical Files and the output side does not contain derived data.

IFPUG 4.0 Definition: An External Inquiry (EQ) is an elementary process made up of an input-output combination that results in data retrieval. The output side contains no derived data. No internal logical file is maintained during processing.

Critical Reasoning

The IFPUG Definition is not clear for a variety of reasons. The IFPUG definition reads, "results in data retrieval." If this is the case then the data must be retrieved from somewhere inside the application boundary. The only place the data can reside is in an ILF or EIF. Since this is the case the definition should explicitly read "from an ILF or EIF."

The IFPUG Definition does not explicitly state the information must be sent outside the application boundary (like an EO), regardless the information must be sent outside the boundary. This is important for OO because objects communicate with each other. Only when an object actually sends something outside the boundary should it be considered an external inquiry.

Additionally, the IFPUG Manual does not make a clear distinction between an EO and an EQ. It is common in the GUI and OO environments for an EO to have an input side. The only distinguishing factor is that an EQ can not have derived data. If this is the case, then an EO must have derived data (otherwise it is an EQ).

Internal Logical File (ILF)
Improved Definition: Internal Logical Files (ILF) - a user identifiable group of logically related data that resides entirely within the applications boundary and is maintained through External Inputs.

IFPUG Definition: Internal Logical File (ILF) is a user identifiable group of logically related data or control information maintained within the boundary of the application.

Critical Reasoning:

The primary difference is in the last few words of the definition. The difference is expanding on what is meant by "maintained." The only thing that maintains an internal logical file is an External Input.

External Interface File (EIF)
Improved Definition: External Interface Files (EIF) - a user identifiable group of logically related data that is used for reference purposes only. The data resides entirely outside the application and is maintained by another application. The External Interface File is an Internal Logical File for another application.

IFPUG Definition: An External Interface File (EIF) is a user identifiable group of logically related data or control information referenced by the application, but maintained within the boundary of another application. This means an EIF counted for an application must be an ILF in another application.

Critical Reasoning:

The differences are minor, but I believe the new definition is more concise.

 

 

[Ask Pai] [Home]