- The Function Point Analysis Process
- Types of Counts
- Identifying the Counting Scope and the Application Boundary
- Data Functions (Internal Logical Files and External Interface Files)
- Transactional Functions (External Inputs, External Outputs, and External Inquiries)
The counting scope is determined by the purpose of the count. It identifies the systems, applications, or subsets of an application that will be sized. It could include functions that will be satisfied by the purchase of a package; it could include all applications that will be outsourced; it could be restricted to functions within an application that perform a specific purpose (for example, reports). The application boundary identifies the border between the application being measured and both external applications and users.
The International Function Point Users Group (IFPUG) has defined the following specific rules to identify boundaries:
The boundary is based on the user's view. The user should be able to define the scope of the application and the business functionality in the user's language.
The boundary between related applications is based on separate business functionality rather than on technical considerations. Several examples are appropriate. Microsoft Office currently consists of Word, Excel, PowerPoint, and Access; each is a separate application within the Microsoft Office suite. System Alpha consists of an online data entry process that is followed by a nightly batch file update process; System Alpha is a single application that includes both the online and the batch processes.
The initial boundary already established for an application is not influenced by the counting scope. The application boundary for an application being enhanced remains as it wasexcept, of course, that added functionality may expand the boundary, and deleted functionality may reduce the boundary. An enhancement does not become its own application boundary, but it is defined by the counting scope. Development projects and enhancement projects often include more than a single application. In these cases, the multiple application boundaries are identified within the counting scope, but they are counted separately.
A great deal of confusion exists among function point users relating to the definition of boundaries used in the sizing of applications. It is extremely important that all facets of function point counting be accomplished consistently. Boundaries definitely should not be established at the individual software program or software module level. Function points appear to be relevant only at a higher application level.
Back to our example, the counting scope for the Location application count includes all functionality currently present in the Location application. Our boundary separates the clerk (who updates the Location directory), building security personnel (who request the retrieval and display of information maintained in the Location directory), the Personnel application (from which we obtain employee data), and the printer (which prints our Location listing).