0% found this document useful (0 votes)
278 views64 pages

Function Point Analysis

The document provides an overview of function point analysis (FPA), a method for estimating software project size and effort. It discusses why estimation is important, factors that can lead to wrong estimates, and advantages of using function points over lines of code. The document outlines the FPA process, including identifying system boundaries, counting data and transactional function points, and adjusting the initial function point count based on system characteristics. Key aspects of FPA covered include definitions of terms like internal logical files, external interface files, and transactions.

Uploaded by

austinfru
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
278 views64 pages

Function Point Analysis

The document provides an overview of function point analysis (FPA), a method for estimating software project size and effort. It discusses why estimation is important, factors that can lead to wrong estimates, and advantages of using function points over lines of code. The document outlines the FPA process, including identifying system boundaries, counting data and transactional function points, and adjusting the initial function point count based on system characteristics. Key aspects of FPA covered include definitions of terms like internal logical files, external interface files, and transactions.

Uploaded by

austinfru
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 64

Estimation Using Function Points

Quality Management Group

Training Agenda

Introduction to FPA Overview of Function Point Analysis

Using the results


Case Study Summary

2
Company confidential

Why Estimate?

A software project estimate, predicts the size of a new project, or the amount of effort required to complete a project An estimate is a prediction based on probabilistic assessment

3
Company confidential

Factors of wrong estimation

Lack of formal process

Person dependent estimation


Inadequate requirements / imprecise and changing requirements Project contract is determined by commercial or political interests There is natural human tendency to underestimate
4
Company confidential

Sizing Measures

KLOC

FP

5
Company confidential

Problems with KLOC as UoM

Higher Level Languages produce less LOC

Better programmers produce less LOC


Actual LOC are known too late to be used for estimating No consistent method to count LOC especially between languages

6
Company confidential

What is Function Point?

Is a structured technique to classifying components of a system

Is a method to break systems into smaller components, so they can be better understood and analyzed
Measures software by quantifying its functionality provided to the user based primarily on the logical design A standard method for measuring software development from the customer point of view Logical Functionality from a Sophisticated User view rather than a physical view
7
Company confidential

What is Sophisticated User View?

Defines Requirements Participates in Acceptance Testing Understands flow of Information

Subject Matter Experts

8
Company confidential

Brief History of FPA

Developed by Alan Albrecht at IBM in the late 1970s Grew out of an interest in the general problem of measuring productivity in systems development The Function Point was created as an alternative to estimating KLOC Function points exist at a more macro level than KLOC and rely on capturing information such as the number of input transaction type and the number of unique reports to be generated
9
Company confidential

Advantages of FPA

Unlike algorithmic cost estimation models, Function point do not require an estimate of the number of KLOC in order to get work months and duration estimates Function Points can usually be estimated fairly early in the lifecycle

Function points avoid the effects of language and implementation differences, offering the prospect of a standard measure. Can be counted by different people, at different times, to obtain the same measure within a reasonable margin of error, and also understood by non-technical users
10
Company confidential

Definitions
Record Element Type (RET) - A RET is user recognizable sub-group of data elements within an ILF or an EIF. It is best to look at logical groupings of data to help identify them Data Element Type (DET) - A DET is an unique user recognizable, nonrecursive fields File Type Referenced (FTR) - A FTR is a file type referenced by a transaction. An FTR must either be Internal Logical File or an External Internal File

11
Company confidential

Function Point Counting Process

Determine the Type of Count Identify System Boundaries Count Data Function Points

Count Transactional Function Points


Calculate Unadjusted Function Points

Determine General System Characteristics


Calculate Adjusted Function Points
12
Company confidential

Types of Count

Development Projects

User functionality in the project on first installation Results in an application base

Application or Baseline FP (Existing Projects)

Current functions of the application Updated every time after enhancements

Enhancement Projects
Size of renovation / modification of the project Enhancement of existing project Equal to sum of areas of New FP, Changed FP and Removed FP

13
Company confidential

Function Point Counting Process

Determine the Type of Count Identify System Boundaries Count Data Function Points

Count Transactional Function Points


Calculate Unadjusted Function Points

Determine General System Characteristics


Calculate Adjusted Function Points
14
Company confidential

Application Boundaries
Background Check (EIF)
Human Resource Application

New Emp Information (EI) Emp. Info. (ILF)

Employee Record (EO)

User 1

Request and Display Emp. Info. (EQ) User 1

User 1

15
Company confidential

Application Boundaries

The border between the application and external applications or manual user domains Determine the scope of work to be automated (functionality) Boundary is not a physical form Use a boundary to

Identify interfaces with other systems Identify interfaces with users Identify data stores and data entities

The boundary for an internet application is defined in a similar way for traditional applications

16
Company confidential

Function Point Overview

EI

Update Master File

Weekly Summary Report

EO

Master File

Produce Weekly Report


System Boundary

ILF

Key Master File Details Details


Company confidential

File On Another System

EQ

EIF
17

Function Point Counting Process

Determine the Type of Count Identify System Boundaries Count Data Function Points

Count Transactional Function Points


Calculate Unadjusted Function Points

Determine General System Characteristics


Calculate Adjusted Function Points
18
Company confidential

Data Function Points

ILF Internal Logical Files EIF External Interface Files Two inputs required

RET Record Element Type DET Data Element Type

19
Company confidential

DET Data Element Type

A Data Element Type (DET) is a unique attribute or a field It has information that is dynamic and not static

20
Company confidential

DET Counting Rules

Count a DET for each unique user recognizable, nonrepeating field maintained in the ILF or retrieved from the 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 each DET for each piece of data required by the user establish relationship with another ILF / EIF

21
Company confidential

RET Record Element Type

A Record Element Type (RET) is a user recognizable subgroup of data elements with the ILF / EIF

22
Company confidential

RET Counting Rules

Count a RET for each optional or mandatory subgroup of the ILF / EIF If there are not subgroups, count the ILF or EIF as a RET

23
Company confidential

Things to remember

Stand alone systems will not have an EIF Same file cannot be an ILF and EIF in the same application Same file can be EIF for multiple applications

Same file can be ILF for multiple applications, if all these applications are updating the file

24
Company confidential

ILF Internal Logical File

It is a user identifiable group of logically related data or control information maintained within an application boundary The primary intent of an ILF is to hold data maintained through one or more elementary processes of the application being counted

25
Company confidential

ILF Identification Rules

Group of Data or control information is logical, user identifiable, and fulfils specific user requirements Data is maintained within the application boundary Data is modified via an elementary process (One or more EIs) Has not been counted as an EIF for the application Each ILF is counted only once in the application

26
Company confidential

ILF - Rating
RET DET 1 19 DET 20 50 DET 51 +

01

LOW

LOW

AVG

25

LOW

AVG

HIGH

6+

AVG

HIGH

HIGH

27
Company confidential

EIF External Interface File

A user identifiable group of logically related data that resides entirely outside the applications boundary and is not maintained by the application An External Interface File is an Internal Logical File for another Application

28
Company confidential

EIF Identification Rules

Group of data or Control information is a logical, user identifiable, and fulfils specific user requirements Group of data is referenced by, and external to, the application being counted

Group of data has not been counted as an ILF by the application


Each EIF is counted only once in the application

29
Company confidential

EIF - Rating
RET DET 1 19 DET 20 50 DET 51 +

01

LOW

LOW

AVG

25

LOW

AVG

HIGH

6+

AVG

HIGH

HIGH

30
Company confidential

ILF and EIF

Do not count system files, like sort files, index files etc Consider an un-normalized view of the file Any ILF / EIF may become multiple tables after normalization

Every EIF must be an ILF in atleast one other application

31
Company confidential

Function Point Counting Process

Determine the Type of Count Identify System Boundaries Count Data Function Points

Count Transaction Function Points


Calculate Unadjusted Function Points

Determine General System Characteristics


Calculate Adjusted Function Points
32
Company confidential

Transaction Function Points


Transactions are the data that do the processing in the application Transaction Function Points are contributed by

External Inputs (EI) External Outputs (EO) External Inquiries (EQ) FTR File Type Referenced DET Data Element Type

Two inputs required

33
Company confidential

FTR File Type Referenced

FTR is a File Type Referenced by a transaction FTR must also be an ILF or EIF

34
Company confidential

FTR Counting Rules

Count a FTR for each ILF maintained Count only one FTR for each ILF maintained and read in the transaction

35
Company confidential

EI External Input

It is an elementary process that processes data or control information that comes from outside the application boundary The primary intent of an EI is to maintain one or more ILFs and / or to alter the behavior of the system Each EI will maintain atleast one ILF Data may come from a data input screen or an other application Transactions are not be confused with file data

Transactions that cause the application files to change are counted as inputs, while files belonging to another application such as master files are not EIs.

36
Company confidential

EI Identification Rules

Each unique class of batch transaction is counted as 1 input type, even if many different classes come inside one file structure. These could be different record formats. Add, modify and Delete will be 3 inputs Dont count multiple occurrences of the same unique logical data item more than once, eg. Repeating rows on a screen Count data items not displayed but created as a result of input (error messages, confirmation messages, calculated fields etc) Dont count static information such as constants, screen prompts etc

37
Company confidential

EI - Rating
FTR DET 1 - 4 DET 5 - 15 DET 16 +

0-1

LOW

LOW

AVG

LOW

AVG

HIGH

3+

AVG

HIGH

HIGH

38
Company confidential

EO External Output

It is an elementary process that sends data or control information outside the application boundary The primary intent of an EO is to present information to a user through processing logic other than, or in addition to, the retrieval of data or control information Derived data is the data that is processed beyond direct retrieval and editing of information from ILF or EIF

39
Company confidential

EO Identification Rules

The processing logic must contain atleast one mathematical formula or calculation or create derived data It may create report of output files to be sent to another application It uses atleast one ILF or EIF Each unique batch transaction type being sent to another application is counted as 1 type Each medium output is counted as 1 EO Multiple occurrences of the same unique logical data item are not be counted more than once (repeating rows) Static information or system generated information like report headings, data / time stamps, automatic page numbers are not counted
40
Company confidential

Classification of Messages 1

Error messages

Employee not found Pin code is missing Wait. Search is on

Confirmation messages

Neither of these types of messages is treated as an EO They are treated as data elements (DET) for the appropriate transaction

41
Company confidential

Classification of Messages 2

Notification Messages

Processing completed successfully insufficient funds in account

Notification message is a business type message It is the basis of processing and a conclusion being drawn A notification message is treated as an EO

42
Company confidential

EO - Rating
FTR DET 1 4 DET 5 19 DET 20 +

01

LOW

LOW

AVG

23

LOW

AVG

HIGH

4+

AVG

HIGH

HIGH

43
Company confidential

EQ External Inquiry

It is an elementary process that sends data or control information outside the application boundary The primary intent of an external inquiry is to present information to a user through the retrieval of data or control information from an ILF or EIF

44
Company confidential

EQ Identification Rules

An EQ is made up of input and output It requests immediate retrieval of data and does not result in any updates of ILF EQ may use one or more ILF / EIF An EQ can not have calculated or derived data No ILF is maintained in the process

45
Company confidential

EQ - Rating
FTR DET 1 4 DET 5 19 DET 20 +

01

LOW

LOW

AVG

23

LOW

AVG

HIGH

4+

AVG

HIGH

HIGH

46
Company confidential

Function Point Counting Process

Determine the Type of Count Identify System Boundaries Count Data Function Points

Count Transactional Function Points


Calculate Unadjusted Function Points

Determine General System Characteristics


Calculate Adjusted Function Points
47
Company confidential

Calculating Unadjusted Function Points


Element EI EO EQ Low __ x 3 __ x 4 __ x 3 Average __ x 4 __ x 5 __ x 4 High __ x 6 __ x 7 __ x 6 Total

ILF
EIF

__ x 7
__ x 5

__ x 10
__ x 7

__ x 15
__ x 10

Unadjusted Function Points (UFP)

48
Company confidential

Recap Counting Unadjusted Function Points

Count data function points (data at rest)

Internal Logical Files (ILF) External Interface Files (EIF)

Count transaction function points (data on move)

External Input External Output External Inquiries

49
Company confidential

Function Point Counting Process

Determine the Type of Count Identify System Boundaries Count Data Function Points

Count Transactional Function Points


Calculate Unadjusted Function Points

Determine General System Characteristics


Calculate Adjusted Function Points
50
Company confidential

General System Characteristics

There are 14 General System Characteristics (GSCs) that rate the general functionality of the application being counted Each characteristic has associated description that help determine the degree of influence of the characteristics

The Degrees of Influence range on a scale of Zero to Five, from no influence to strong influence. The Ratings are:

0 - Not Present, or No Influence 1 - Incidental Influence 2 - Moderate Influence 3 - Average Influence 4 - Significant Influence 5 - Strong Influence Throughout
51

Company confidential

The 14 GSCs 1 thru 5

Data Communication - How many communication facilities are there to aid in the transfer or exchange of information with the application or system Distributed Data Processing - How are the distributed data and processing functions handled Performance - Did the user require response time or throughput Heavily used configuration - How heavily used is the current hardware platform where the application will be executed Transaction Rate - How frequently are transactions executed

52
Company confidential

The 14 GSCs 6 thru 10

Online Data Entry - What percentage of Information is entered online End User Efficiency - Was the application designed with end user efficiency in mind Online Update - How many ILFs are updated by online transaction Complex Processing - Does the application have extensive logical or mathematical processing Reusability - Was the application developed to meet one or many users needs

53
Company confidential

The 14 GSCs 11 thru 14

Installation Ease - How difficult is conversion and installation Operational Ease - How effective and/or automated are startup, back up, and recovery procedures Multiple Sites - Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple organizations Facilitate Change - Was the application specifically designed, developed, and supported to facilitate change

54
Company confidential

Function Point Counting Process

Determine the Type of Count Identify System Boundaries Count Data Function Points

Count Transactional Function Points


Calculate Unadjusted Function Points

Determine General System Characteristics


Calculate Adjusted Function Points
55
Company confidential

Calculating Adjusted Function Points

FPC = UFP * VAF Where VAF = [ (GSC * 0.01) + 0.65] Where

FPC Adjusted Function Point Count UFP Unadjusted Function Points VAF Value Adjustment Factor GSC Sum total of ratings of all 14 GSCs

56
Company confidential

Calculating FP for Enhancement Projects

EFP = [(ADD + CHGA) * VAFA] + (DEL * VAFB) Where : EFP is the Enhancement Project Function Point Count ADD is the unadjusted function point count of those functions that were added by the enhancement project. CHGA is the unadjusted function point count of those functions that were modified by the enhancement project. This number reflects the functions after the modifications VAFA is the Value Adjustment Factor of the application after the enhancement project DEL is the unadjusted function point count of those applications that were deleted by the enhancement project VAFB is the Value Adjustment Factor of the application before the enhancement project
57
Company confidential

Calculating FP for Application after Enhancements

AFP = (UFPA + ADD + CHGA - CHGB - DEL) * VAFA Where : UFPB is the Unadjusted Function Points Before ADD is the Added Function Points CHGA is the Change After Enhancement CHGB is the Change Before Enhancement DEL is the Deleted Functions during Enhancement VAFA is the Value Adjustment Factor after Enhancement (Assume it as 1.0)

58
Company confidential

Estimating Efforts based on Size Estimation

Convert FPC into PDs based on productivity of the technology under consideration Productivity = Size / Efforts Efforts = Size / Productivity

59
Company confidential

Mapping Efforts to Schedule

Analysis High Level Design Low Level Design Coding Unit Testing Integration & System Testing Project Management

15% 15% 10% 35% 11% 10% 4% At actual At actual At actual


60

Customer Acceptance Testing Implementation Warranty Support


Company confidential

Quick FPA

Carried out at a very early stages of project

May be at the time of proposal preparation stage Lack of time Lack of information Difference between High and Low is not much, hence Average is used for calculation Use a judgment call for overall complexity

Carried out because

Assumptions

61
Company confidential

Quick FPA - Calculation

Identify and count EIs, EOs, EQs, ILFs and EIFs Do not count RETs, DETs and FTRs Classify all functions as average To calculate unadjusted function points, use the coefficients

EI 4 EO 5 EQ 4 ILF 10 EIF 7

VAF = 0.65 to 1.35 FPC = UFC * VAF

62
Company confidential

Quick FPA - Accuracy

With al information Quick FPA gives a result which is + / - 10 % of detailed FPA It is INEFFECTIVE if used by persons who do not have expertise in detailed FPA

63
Company confidential

Thank You for your participation

For any query, feel free to contact us at:


[email protected]
64
Company confidential

You might also like