|
|
Mark II Function Point Analysis (FPA)I wanted a summary of the function point counting process as the various manuals and books tended to be overly fulsome. The effort involved in a count typically takes 0.2% - 0.4% of the total project effort for a new large development project (UKSMA, 1998). Step1: Determine Scope of CountType of count: Development/Application or Change? Step 2: Identify the Logical TransactionsNote: Step 2-4 are likely to be concurrent and iterative. Analyse the requirements to find the Logical Transactions, although we're only interested in these so we can find their associated Entities (Step 3) and Data Element Types (Step 4) and from this determine a Functional Size (Step 5). Logical Transaction …
Most Entities in the system are going to have at least 5 transactions: Create, Read, Update, Delete, and List (CRUDL). For example, a requirement to "Maintain Customer" will correspond to these five transactions, and may well have more if there are variations in processing.
Step 3: Count the EntitiesThe processing element of the Function Point Count corresponds to the storage and retrieval of information about Entities of interest to the external world. It is useful to draw an Entity Relationship Diagram (ERD) to find the primary Entities in the system; because we're only interested in the primary Entities, this doesn't have to be full Third Normal Form. Entity (or Data Entity Type) …
A non-primary Entity is created to satisfy Third Normal Form, e.g. master tables only used for validation of data entry. They are fairly static and only have a few attributes, e.g. code, description. All references to non-primary entities are considered references to a single entity called the System Entity; there is only ever one System Entity. Counting rules:
Step 4: Count the Data Elements (DET)Data Element Type (DET) …
An Input DET (In-DET) comes from outside the system boundary and changes the state of the system. They are concerned with acquisition and validation of data. An Output DET (Out-DET) goes back across the system boundary so a user can see/use it. They are concerned with formatting and presentation of data. Counting Rules:
Step 5: Calculate the Function Point Index (FPI)Calculate the functional size or Function Point Index (FPI) of each Logical Transactions whose input and output components cross the system boundary.
The functional size of the system, i.e. the total FPI, is the sum of the sizes of each of the Logical Transactions.
Example:
For counting changes to systemsCount Entities and DETs if they are touched by the change, i.e. added, modified, or deleted. If a component is not changed, then don't count it.
Note: this has the interesting effect that the cost of deleting functionality is the same as it originally cost to build it. Rough Function Point Count based on Use CasesIf you don't have time to itemise each Logical Transaction for a Use Case, you could try approximating it with the following:
ContingencyIf you've done the count very early in the development process, i.e. before the requirements are detailed, you'll have to add a bigger contingency to the total FPI to take into account unknown requirements. Technical Complexity AdjustmentsFollowing the suggestion of UKSMA (1998), I have ignored Technical Complexity Adjustments as they don't add value. Mk II versus Albrecht/IFPUGI used Albrecht/IFPUG FPA in the past, but I now have a preference for Mk II FPA because:
ReferencesUKSMA. (1998 Sept). MK II Function Point Analysis: Counting Practices Manual, Version 1.3.1. United Kingdom Software Metrics Association (UKSMA).
Function Point FAQ - Frequently asked questions about FPA.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © 2001 - 2008 Steven Thomas | Contact Me |