New Article
Demystifying Function Points: Clarifying Common Terminology
Copyright 2001 Quality Plus Technologies and Carol Dekkers, All Rights Reserved
INTRODUCTION
However, just as an architect begins by drawing a floor plan to meet the owners' needs, software project managers and developers begin by documenting the functional user requirements articulated by their customers. Function Point Analysis examines these logical (also called functional) user requirements to determine the functional size of the software.
The difficulty that sometimes arises with developers is two fold:
This article focuses on several key words that are the most problematic when introducing function points. By simply making your developers aware of these differences in meaning, you can achieve higher levels of measurement success and less resistance in FPA implementation.
All of the functions that are evaluated in Function Point counting are logical user functions, that is, they are part of the logical user requirements for the software. Readers who want further details about FP are encouraged to obtain the Function Point Counting Practices Manual V4.1 from the International Function Point Users Group.
TERMS THAT CAUSE CONFUSION
The word 'Logical' in information technology is usually associated with logical data base layouts or logical data models. However, in many situations, some physical considerations creep in to even the most logical of data models.
When the term 'logical' is used in function point counting, it refers to the 'conceptual' or 'functional' user requirements, and excludes physical implementation or design requirements. Logical user requirements are those requirements that an experienced user in the subject matter area would identify as requirements of the software. Logical or functional user requirements describe what the software must do and do not include how the software will do the functions. Function points measure the size of these functional user requirements, only. Design and quality considerations although important to the software construction, are not part of the logical size of the software, and, therefore, they are not counted in function points.
This is similar to the size of a house being measured as the number of square feet or square meters contained within a floor plan, and it is not changed by how the house will be constructed.
In functional size measurement, the function point count reflects only what the application must do, not how it will do it.
Confusion can arise when the word logical is used in conjunction with words that sound physical like screen or report. A 'logical screen' may consist of one or more connected physical data entry screens that support a single function. Everything in function points is counted from a logical user viewpoint, and novice counters need to think 'logically' when they are counting function points.
The term 'user', as typically used in information technology, refers to a physical, living, breathing person who interacts with or uses the software. This is the most frequent answer given when one asks a developer "what is a user?"
The terminology problem with the word 'user' arises because the function point use of the word has a wider meaning. The Counting Practices Manual defines user as:
In other words, for Function Point Counting, users can be people, applications, departments, and other external parties -- in short, anything that requires data from or provides data to, the software. Functional "user" requirements include the logical business processes of many "users". Users can include other software application(s), physical persons, external government bodies, departments, animals (if they trigger a process in the application such as in security systems), things (such as pressure in a pipeline system), --- anything that interacts by sending or receiving data across the boundary of the software application.
This difference in meaning can cause some countable functions to be overlooked by developers because they don't appear to be requirements provided for or by a physical person "user".
The terms 'application' or 'system' in data processing are often used interchangeably and are usually tied to the physical segmentation of the software. Here are some examples of how applications or systems may be broken down by developers:
The term 'application' within the context of function point counting is defined in the Counting Practices Manual as:
This means that an "application" in function point terms is a collective grouping of related user functions regardless of the platform, mode of operation, and physical IT subdivision of functions. In the examples above, the batch and on-line "systems" would be one "application" for function point counting. The second example would result in one payments "application" from the user perspective, (which happens to be physically implemented across multiple platforms). The third example would likely also be a single application with various packaged components used as part of how the software was delivered.
This difference in definition and usage of the word 'application' can result in over counting (e.g., if an application was FP counted as two applications as an on-line count and a batch count, rather than properly as a single application), or under counting (e.g., if all of the applications on a single hardware box were counted as a single application.)
It is important to remember that in function point counting an application represents how a user would logically view the system, while in information technology, an application often represents how the system is physically implemented.
The term 'project' is another term that often differs between its IT and function point meaning. When used in systems development, 'project' can take on a variety of meanings, even within the same organization. "Project" can be used to describe variously:
In function point counting, the word 'project' refers to the work product associated with the development or enhancement of a single application (system). The definitions of development (project) in the IFPUG CPM glossary attests to this:
What this means to FP counters and developers is that a 'project' in business or IT terms may actually equate to multiple 'Function Point projects' and, therefore, translates into needing multiple function point counts, one per application involved. For example, if an IT 'project' includes the development of a new "Hospital billing system" as well as enhancements to an existing "Hospital admittance system", the size of the overall IT project would involve two function point "project" counts:
It is also worth noting that an enhancement project, whose total size encompasses the added, changed and deleted functionality, will change the product or application size by the amount of functionality added, less that deleted.
Once this difference in the term "project" is understood, it is simply a matter of communicating the FP counts in the right context.
This is another one of the most confusing terms that carries a different meaning when used in Information Technology and business, versus the Function Points use of the term. For business and IT professionals, the term 'enhancement' or 'enhancement project' refers to any project where the existing software is enhanced in terms of performance, appearance, function, operation, platform, usability, etc. (Note that 'Enhancement projects' are often discerned by both users and developers from the term 'maintenance' in that the latter pertains to work done to keep the existing software up and running.)
All of the following are examples of what our clients' users and developers would refer to as software 'enhancements':
This is very different from 'enhancement' in the context of function point counting, where it means Functional enhancement. The IFPUG Counting Practices Manual (IFPUG 4.1) Glossary definition is:
This can be very frustrating to the uninitiated Function Point practitioner who does not have an appreciation for the importance of the context in which the term 'enhancement project' is used. Remember, enhancement project to the business/IT community is not necessarily considered to be an enhancement project when counting function points.
The term 'file' when used by system developers, usually evokes images of mainframe, transaction oriented processing and the term is used interchangeably with 'dataset'. Associated terms such as 'research files', 'output files', 'sort files', 'batch files', 'excel files', 'transaction files', are still common vernacular today.
In function point counting, the term 'file' is used to represent a logical grouping of data that is a requirement of users. The CPM defines file as:
The confusion emerges because an Internal Logical File (ILF) and an External Interface File (EIF) in function point terms refers to a persistent data entity, not a physical file or dataset. As such, here are some examples of physical files / datasets in IT terminology that would not be Files (entities) in the context of function points:
The key is to remember that the word 'file' in function points refers to a logical grouping of related data. This does NOT conform to a 'file' or physical dataset in IT terms.
SUMMARY
This list of commonly misunderstood words is not exhaustive and other words and acronyms can form barriers to understanding of function points.
Table 1 summarizes the terms covered in this article:
Functional size measurement and function points are not rocket science -- they simply provide an objective, repeatable process for assessing the logical size of software based on functional user requirements. By understanding some of the terminology that can trip up developers and novice counters, this article will, hopefully, demystify the perceived complexities involved in function point counting.
About the author:Carol A. Dekkers, CMC, CFPS, President of Quality Plus Technologies, Inc. (QPT). Ms. Dekkers is an acknowledged measurement expert, the host of the weekly Quality Plus e-Talk radio show, an author, consultant and instructor. Carol is a Past-President of the IFPUG Board of Directors, and currently serves in leadership positions for: The Project Management Institute's Metrics SIG, the QAI Conference Advisory Board; the American Society for Quality Software Division, and as project editor the ISO Functional Size Measurement workgroup (ISO/IEC/JTC1/SC7 WG12). She has published over 50 articles.
Copyright 2001 Quality Plus Technologies and Carol Dekkers, All Rights Reserved
If you would like to comment on this or other articles, or request more information please click on the email link below, and in the subject line type 'NEW ARTICLES'. Other articles are available from our Articles Page (Click Here)
If you would like to receive our quarterly Newsletter, Quality Plus e-Talk, send us an email using the link below with the subject line "NEWSLETTER" Last revision: March 20,2001 If you have navigated to this page from another site, and you would like to go to our frames-based home page, please click here.
by Carol Dekkers, CMC, CFPS
A challenge in implementing Function Point Analysis (FPA) is making it understandable to developers, cost analysts and customers alike. Because Function Points are based on functional user requirements (what the software does), irrespective of the physical implementation (how the software is implemented), users of the method must think in terms of the logical functional requirements. This can be especially difficult for developers who spend their days focused on providing physical software solutions (involving How the software will be built).
The following terms are used both within the function point method and in information technology. The confusion arises because their general use in information technology often conveys a different meaning from that used in function point counting:
Each term (and the confusion it causes) is explained in the sections that follow.
'User. A user is any person that specifies Functional User Requirements and/or any person or thing that communicates or interacts with the software at any time."
'Application. A cohesive collection of automated procedures and data supporting a business objective. It consists of one or more components, modules, or subsystems. Frequently used synonymously with System, Application System, and Information System.'
'Project. A collection of work tasks with a time frame and a work product to be delivered.'
'Development project function point count (DFP). A count that measures the functions provided to the users with the first installation of the software delivered when the project is complete.'
'Enhancement project function point count (EFP). A count that measures the modifications to the existing application that add, change, or delete user functions delivered when the project is complete.'
'Enhancement' in function point terminology strictly refers to logical, functional enhancements, i.e., only those modifications to the logical user requirements or elementary processes (EI, EO, EQ, ILF or EIF) of the software. As such, if an 'enhancement project' in business terms does not create new logical functions, modify existing logical functions, or remove logical functions from the software --- NO function points can be counted. What this means is that out of the previous list of enhancements in the business and IT context, potentially only the last point (adding new data elements to an existing report) would count ANY function points. This is because the remaining list items are not considered to be functional enhancements, and therefore, would score zero FP.
'File. For data function types, a logically related group of data, not the physical implementation of those groups of data.'
Term Meaning in IT Meaning in Function Point Counting Logical Typically includes both conceptual and design considerations. Even "logical" data models often contain physical components. Refers to logical functions and logical user requirements. Conceptual, from a user business perspective. Does not include design or quality considerations. Reflects what the software must do, not how. User Physical person who 'uses' or specifies requirements for the software Person, thing, other application, department, etc. that provides functional user requirements for the software.
Application (system) Physical implementation of software. The boundary of an application or system often coincides with physical hardware or software boundaries. A cohesive collection of automated procedures and data supporting a business objective.
Project Depending on the organization can include new development, changes or enhancements to multiple applications. Pertains to the work product done on a single application: Enhancement (enhancement project) Any modification to the software including functional, non-functional, technical, cosmetic, data administration, or design changes that increase the business value of the software Functional modifications to the elementary processes of the application (e.g., New / Modified / Removed functions: EI, EO, EQ, ILF or EIF) File Dataset, or physical assemblage of data, as in output file, input file, data file, research file, etc. A logically related group of data, not the physical implementation of those groups of data.
This page is Copyright © 2001, Carol Dekkers
Quality Plus Technologies, Inc.
8430 Egret Lane SEMINOLE FL USA 33776
Phone: (727) 393-6048
Fax: (727) 393-8732
E-mail:
consulting@qualityplustech.com
.
Return to our Quality Plus Technologies, Inc. home page.