Untitled Document
Software Management Solutions
Home About SMS Promotions Contact Careers
 
Consulting Training Staffing Network Solutions
Home > Consulting > Software Metrics & Function Points > What are Function-Points?
What are Function-Points?
Function points play a significant role in the management of information systems. Function point analysis is a proven, reliable method for measuring application development work-products.

What is Function Point Counting?
Function Point Counting or Analysis, is a standard method for measuring software development from the user or customer's point of view. The size of the new or ongoing development project is expressed in Function Points. Function Points measure what is delivered to the customer, not how it is delivered.

When should a count be done?
Function Points for the system or release may be counted any time during the system development life cycle after high-level user requirements are known. The function point analysis may be completed early in the development process or at the end of the development process. When a count is done early in the life cycle of a project, it is called a Function Point Estimate and approximates a project rather than measures it. Assumptions can be made in the early counts, but they should be documented. Accurate function point estimates can be done when the detailed user requirements are complete. Due to requirements churn, it is recommended that a final count be done at the completion of the project when the system or release functionality becomes available to the user.

What kinds of counts are there?
There are three types of Function Point counts as follows:

1. Development Project Function Point Count
The Development Project Function Point Count measures the application functions delivered when the project is complete, and is associated with the initial installation or complete rewrite of new software. It describes the user functionality of the new application, and yields the Baseline Count upon which all future counts are based.

2. Application Function Point Count

The Application Function Point Count sizes the current functions the application provides to the end-user. It is also referred to as the Baseline Count or Installed Function Point Count. One purpose for this count is to bring a Baseline Count up to date when numerous Enhancement Counts have not been performed. This count is updated after the completion of each Enhancement Function Point Count.

3. Enhancement Project Function Point Count
The Enhancement Project Function Point Count sizes the functionality added, changed or deleted to an existing application plus any conversion functionality needed. This is done for continuing development, when work is done to modify an existing application to support new or changed business functions or user requirements, usually on a regular basis.
The Enhancement Count represents the sum of the functionality being added, changed, or deleted when the project is complete. This count is applied to the Baseline Count to get the new application baseline, not added to it. The new baseline count may be higher, lower, or the same as the previous Baseline.

What is a count used for?
Function Point Analysis sizes the functionality delivered to the customer based on the user’s Business Requirements. The resulting Function Point Count provides a basis for creating a variety of valuable software process performance and quality measures which can be used for benchmarking as well as for measuring the improvements in the software development process. The Function Point Count used in conjunction with other metrics, can be used to predict or determine project costs, duration (in calendar months), Quality (potential and delivered defects), and Productivity (person-months). Counts done early in the project life cycle can be used for project estimating, such as staff-months required, the duration of the project, testing time required, or the number of headcount required.

What is counted?
The function point counting rules can accurately be applied to a variety of software environments and technologies including, but not limited to, client/server applications, embedded software, middleware, real time, rules-based systems, web-based applications, and conversant applications. Function point analysis is independent of the technology or process employed.

Function Points measure components that are visible and important to the user. As shown in the diagram, software functionality is classified into five different function types (two Data function types or files, and three Transactional function types). The Unadjusted Function Points are computed by assigning a weight based on their respective functional complexity, to each of the function types.

The Data function types are:
• Internal Logical Files (ILF) (ILF) are logically related, user identifiable data or control information used by the application. The primary intent of an ILF is to hold data to be maintained (modified) and stored within the boundaries of the application being counted.
• External Interface Files (EIF) are logically related, user identifiable data or control information used by the application, but maintained (modified) and stored by another application outside the boundaries of the system. The primary intent of an EIF is to hold data to be referenced by the application being counted. An EIF in the application being counted must be an ILF in a different application.

The Transactional function types are:
• External Inputs (EI) are transactions representing an application’s data maintenance and control processing requirements. It is data that enters the application from outside its boundaries, is unique in its format or in the processing logic it initiates. The primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system. are transactions representing an application’s data maintenance and control processing requirements. It is data that enters the application from outside its boundaries, is unique in its format or in the processing logic it initiates. The primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system.
• External Outputs (EO) are transactions representing an application’s output processing requirements. The data is sent outside the boundaries of the application, where the format or the logic creating the output is unique. The primary intent of an EO is to present information to a user, using at least one mathematical formula or calculation or deriving the data. The EO may also update an ILF and/or alter the behavior of the system.
• External Inquiries (EQ) are unique transactions representing an application’s inquiry or data retrieval processing requirements. The primary intent of an EQ is to present information to a user through a retrieval process. It does not process the data retrieved, and it cannot update an ILF nor alter the behavior of the system.

Adjusting the Function Point Count
The overall characteristics of a system must be assessed and factored in to get the total number of Adjusted Function Points. This is done by examining 14 general system characteristics of the system, such as the transaction rate, performance, and installation ease. Each characteristic is evaluated as to its degree of influence on the system. The Total Degree of Influence is used in a formula to give the Adjusted Function Point Count, commonly called the Function Point Count.

 


Consulting | Training | Staffing | Expert Witness
Home | About SMS | Promotions  | Contact | Careers


Copyright © 1999-2015. Software Management Solutions