- Invented by Allan Albrecht in mid 1970s as an alternative to Source Lines of Code as a measure of software sizing
- First paper published internally at IBM in 1979
- In 1981, the same paper reprinted in IEEE
- In 1984, Albrecht introduced “General System Characteristics” to FPA
- International Function Point User’s Group (IFPUG) created in 1986
- In 1990, the first version of Counting Practices Manual (CPM) - IFPUG
- Measure functionalities based on the user’s view of application software functionalities
- Minimize the overhead of measurement
- Set up a size measurement method which is consistent across organizations
- Size can be determined early in the project life cycle
- Forms a basis for measuring, improving productivity
- FP is a unit for software measure like “m” is a unit for distance measure or “Co” is a unit for temperature measure.
- Independent of development tools and environments – hence, can be used to measure productivities across various tools and environments
- Provides consistent size measures across groups and organizations
- Sizing is an important component in determining productivity (outputs/inputs), predicting effort, understanding unit cost, and so on.
- Is a description of the business functions
- Is approved by the user
- Can be used to count function points
- Can vary in physical form (e.g., catalog of transactions, proposals, requirements document, external specifications, detailed specifications, user handbook)
Function point counts can be associated with either projects or applications. There are three types of function point counts:
- Development project - The development project function point count measures the functions provided to the users with the first installation of the software delivered when the project is complete.
- Enhancement project - The enhancement project function point count measures the modifications to the existing application that add, change, or delete user functions delivered when the project is complete.
- Application - The application function point count is associated with an installed application. This count provides a measure of the current functions the application provides the user.
The scope:
- Defines a (sub) set of the software being sized
- Is determined by the purpose for performing the function point count
- Identifies which functions will be included in the function point count so as to provide answers relevant to the purpose for counting
- Could include more than one application
The application boundary:
- Defines what is external to the application
- Is dependent on the user’s external business view of the application and independent of technical and/or implementation considerations
- Acts as a ‘membrane’ through which data processed by transactions (EIs, EOs and EQs) pass into and out from the application
- Encloses the logical data maintained by the application (ILFs)
- Assists in identifying the logical data referenced by but not maintained within this application (EIFs)
Internal Logical Files (ILFs):
ILF/EIF Identification Rules
ILF Identification Rules:
All of the following counting rules must apply for the information to be counted as an ILF.
- The group of data or control information is logical and user identifiable.
- The group of data is maintained through an elementary process within the application boundary being counted.
- The group of data or control information is logical and user identifiable.
- The group of data is referenced by, and external to, the application being counted.
- The group of data is not maintained by the application being counted.
- The group of data is maintained in an ILF of another application.
A functional complexity of each identified ILF and EIF bases on the number of data element types (DETs) and record element types (RETs) associated with the ILF or EIF.
- A data element type (DET) is a unique user recognizable and non-repeated field.
- A record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF. There are two types of subgroups: Optional and Mandatory
The following rules apply when counting DETs:
- Count a DET for each unique user recognizable, non-repeated field maintained in or retrieved from the ILF or EIF through the execution of an elementary process.
- When two applications maintain and/or reference the same ILF/EIF, but each maintains/references separate DETs, count only the DETs being used by each application to size the ILF/EIF.
- Count a DET for each piece of data required by the user to establish a relationship with another ILF or EIF.
One of the following rules applies when counting RETs:
- Count a RET for each optional or mandatory subgroup of the ILF or EIF.
- If there are no subgroups, count the ILF or EIF as one RET.
No comments:
Post a Comment