|
The idea of being able to measure the size of software requirements or specifications, independent of the technology used to build the software, was first proposed by Allan Albrecht of IBM in 1979. His method, known as Function Point Analysis (FPA) has evolved into the IFPUG method, supported by the International Function Point User Group based in the USA.
He developed a composite index of counts of the functions required (inputs, outputs, inquiries, logical files and interfaces), and of the degree of influence of some 14 quality and technical requirements. The method could therefore be used for comparing performance across projects using different technologies (using measures such as productivity, defined as size / effort) and as a first step in methods for estimating effort early in a project's life-cycle. This was a big step forward compared with the use of counts of Source Lines of Code (SLOC), which had been the only size measure up to that point.
Definitions of the FPA Measurement Process:
- Determine the type of function point count
- Identify the application boundary of the software
- Identify the data functions to determine their complexity and Unadjusted FPS
- Idenitfy the transaction functions to determine their complexity and Unadjusted FPS
- Determine the Unadjusted FP count
- Determine the Value Adjustment Factor
- Calculate the Adjusted Function Point Count
Definitions of the current version IFPUG 4.2:
User - any person that specifies Functional User Requirements and/or any person or thing that communicates or interacts with the software at any time
User View - is a description of the business function; is approved by the user; can be used to count function points; can vary in documented physical form.
User Idenfiable - defined requirements for processes and/or groups of dat that are agreed upon and understood by both the users and the software developers.
Application Boundary:
- defines the external limitations of the application;
- is the conceptual interface between internal application and external user world; acts as a membrane through which data passes into and out from the application;
- encloses the logical dat maintained by the application;
- assists in identifying the logical data referenced by buit not maintained within the application;
- is dependent on the user's external business view of the application; it is independent of technical and/or implementation considerations.
Scope - defines a (sub) set of the software being sized; is determined by the purpose of the count; identifies which functions will be included in the function point count; could include one or more than one application.
Control information - is data that influences an elementary process of the appl9ication. It specifies what, when or how data is to be processed.
IFPUG - the International Function Point User Group is the control authority for the IFPUG method.
|