Improved Function Point Definitions
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.
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 ILFs. The processed control information may or may not maintain an ILF.
The IFPUG definition states " from outside the application boundary." Since the IFPUG definition reads " the processed data maintains one or more ILFs, 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.
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.
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.
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.
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)
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.
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
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.
The differences are minor, but I believe the new definition is more concise.