You are on page 1of 62

Function Point Analysis

Why Estimate? 

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

2

Factors of Wrong Estimation 
   

Lack of formal process Person dependent estimation Inadequate or imprecise and changing requirements Project contract is determined by commercial or political interests There is a natural human tendency to underestimate
3

Sizing Measures        KLOC FP Classes Objects Screens Reports « 4 .

Problems with KLOC as UoM     Higher level languages produce less LOC Better programming produce less LOC Actual LOCs are known too late to be used for estimation No consistent method to count LOC especially between languages 5 .

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 6 .What is Function Point?      Is a structured technique to classifying components of a system Is a method to break systems into smaller components.

Brief History of FPA     Developed by Alan Albrecht at IBM in the late 1970¶s 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 7 .

Function Point Counting Process Function point analysis follows specific steps for counting:  Identification of the subsystem boundaries  Identification of the data functions (internal logical files and external interface files) Identification of transactional functions (external inputs. external outputs and external inquiries) Calculation of the Unadjusted Function Point (UAF) Count Determination of the Value Adjustment Factor (VAF) using General System Characteristics (GSC) Calculation of the final Function Point Count 8     .

Components of Function Points  Data Function Points   Internal Logical Files (ILF) External Interface Files (EIF)  Transaction Function Points    External Input (EI) External Output (EO) External Inquiry (EQ) 9 .

(ILF) Employee Record (EO) User 1 Request and Display Emp. Info.Application Boundaries Human Resource Application Background Check (EIF) New Emp Information (EI) Emp. Info. (EQ) User 1 User 1 10 .

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

12 .

Data Function Points   ILF ± Internal Logical Files EIF ± External Interface Files Two inputs required    RET ± Record Element Type DET ± Data Element Type 13 .

14 .External Inputs ‡ Data crosses from Outside to inside ‡ Data may come from a data input screen or another application ‡ The data may be used to maintain one or more internal logical files. ‡ The graphic represents a simple EI that updates 2 ILF's (FTR's).

EI . while files belonging to another application such as master files are not EIs. 15 .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 Transactions are not be confused with file data  Transactions that cause the application files to change are counted as inputs.

These could be different record formats. calculated fields etc) Don¶t count static information such as constants. confirmation messages. Repeating rows on a screen Count data items not displayed but created as a result of input (error messages. eg. screen prompts etc 16 . Add.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. modify and Delete will be 3 inputs Don¶t count multiple occurrences of the same unique logical data item more than once.

External Outputs ‡ Derived data crosses from inside to outside ‡ Data creates reports or output files sent to other applications. ‡ These reports and files are created from one or more internal logical files and external interface file. ‡ The graphic represents a simple EO with two FTRs. 17 .

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 18 .

automatic page numbers are not counted 19 . data / time stamps.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.

and the output side does not contain derived data. ‡ An 20 . ‡ The graphic below represents an EQ with two ILF's and no derived data. ‡ The input process does not update any Internal Logical Files.External Inquiries elementary process with both input and output components that result in data retrieval from one or more internal logical files and external interface files.

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 21 .

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

22

Unadjusted FP  

After the components have been classified as one of the five major components (EI¶s, EO¶s, EQ¶s, ILF¶s or EIF¶s), a ranking of low, average or high is assigned. For transactions (EI¶s, EO¶s, EQ¶s) the ranking is based upon the number of files updated or referenced (FTR¶s) and the number of data element types (DET¶s). For both ILF¶s and EIF¶s files the ranking is based upon record element types (RET¶s) and data element types (DET¶s). A record element type is a user recognizable subgroup of data elements within an ILF or EIF. A data element type is a unique user recognizable, nonrecursive, field.
23

Unadjusted FP «.. 

Each of the following tables assists in the ranking process (the numerical rating is in parentheses). For example, an EI that references or updates 2 File Types Referenced (FTR¶s) and has 7 data elements would be assigned a ranking of average and associated rating of 4. Where FTR¶s are the combined number of Internal Logical Files (ILF¶s) referenced or updated and External Interface Files referenced.

24

.Unadjusted FP «. 25 .

Unadjusted FP «. 26 ..

Average or High) like an EO. If the same FTR is used on both the input and output side. nonrecursive field on an ILF or EIF. A Data Element Type (DET) is a unique user recognizable. For both ILF¶s and EIF¶s the number of record element types and the number of data elements types are used to determine a ranking of low. then it is counted only one time.   Like all components. If the same DET is used on both the input and output side. Basically. The rating is based upon the total number of unique (combined unique input and out sides) data elements (DET¶s) and the file types referenced (FTR¶s) (combined unique input and output sides). 27 . A Record Element Type is a user recognizable subgroup of data elements within an ILF or EIF. EQ¶s are rated and scored. then it is only counted one time. average or high.Unadjusted FP «. an EQ is rated (Low. but assigned a value like and EI.

28 .Unadjusted FP «.

 The counts for each level of complexity for each type of component can be entered into a table such as the following one. The rated values on each row are summed across the table. giving a total value for each type of component. giving a total value for each type of component. Each count is multiplied by the numerical rating shown to determine the rated value. 29 . These totals are then summoned down to arrive at the Total Number of Unadjusted Function Points.Unadjusted FP «. These totals are then summed across the table.

30 .Unadjusted FP «.

from no influence to strong influence. 31 .VAF  The value adjustment factor (VAF) is based on 14 general system characteristics (GSC's) that rate the general functionality of the application being counted. The IFPUG Counting Practices Manual provides detailed evaluation criteria for each of the GSC'S. the table below is intended to provide an overview of each GSC. Each characteristic has associated descriptions that help determine the degrees of influence of the characteristics. The degrees of influence range on a scale of zero to five.

Not Present.Significant Influence  5 . from no influence to strong influence.Moderate Influence  3 .Average Influence  4 . The Ratings are:  0 .Strong Influence Throughout 32 .Incidental Influence  2 .GSC ± General System Characteristics    There are 14 General System Characteristics (GSC¶s) 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. or No Influence  1 .

The 14 GSCs « 1 thru 8         Data communication Distributed data processing Performance Heavily used configuration Transaction rate Online data entry End user efficiency Online update 33 .

weekly. monthly. etc.? What percentage of the information is entered OnLine? Was the application designed for end-user efficiency? How many ILF¶s are updated by On-Line transaction? 34 Distributed data processing Performance Heavily used configuration Transaction rate On-Line data entry End-user efficiency On-Line update .GSC Brief Description Data communications How many communication facilities are there to aid in the transfer or exchange of information with the application or system? How are distributed data and processing functions handled? Was response time or throughput required by the user? How heavily used is the current hardware platform where the application will be executed? How frequently are transactions executed daily.

GSC Brief Description Complex processing Reusability Installation ease Operational ease Multiple sites Does the application have extensive logical or mathematical processing? Was the application developed to meet one or many user¶s needs? How difficult is conversion and installation? How effective and/or automated are start-up. and recovery procedures? Was the application specifically designed. and supported to be installed at multiple sites for multiple organizations? Was the application specifically designed. and supported to facilitate change? 35 Facilitate change . developed. developed. back-up.

65] Where      FPC ± Adjusted function point count UFP ± Unadjusted function points VAF ± Value adjustment factor GSC ± Sum total of ratings of all 14 GSCs 36 .01) + 0.Calculating Adjusted Function Points  FPC = UFP * VAF   Where VAF = [ ( GSC * 0.

Estimating Efforts based on Size Estimation  Convert FPC into PDs based on productivity of the technology under consideration Productivity = Size / Efforts Efforts = Size / PRoductivity   37 .

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% 38 .

 Thank You 39 .

DET ± Data Element Type  A DET is a unique attribute or a field It has information that is dynamic and not static  40 .

count only the DET¶s 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 41 . but each maintains/references separate DET¶s.DET ± Counting Rules    Count a DET for each unique user recognizable. non-repeating 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.

RET ± Record Element Type  A RET is a user recognizable subgroup of data elements within the ILF or EIF Counting Rules    Count a RET for each optional or mandatory subgroup of the ILF / EIF If there are no subgroups. count the ILF or EIF as a RET 42 .

ILF ± Internal Logical Files   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 43 .

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

Ruling RET 0±1 DET 1 ± 19 DET 20 ± 50 DET 51 + LOW LOW AVG 2±5 LOW AVG HIGH 6+ AVG HIGH HIGH 45 .ILF .

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 EIF is an ILF for another application  46 .

EIF ± Identification Rules  Group of data or Control information is a logical. and fulfils specific user requirements Group of data is referenced by. user identifiable. 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 47    . and external to.

EIF .Rating RET 0±1 DET 1 ± 19 DET 20 ± 50 DET 51 + LOW LOW AVG 2±5 LOW AVG HIGH 6+ AVG HIGH HIGH 48 .

if all these applications are updating the file 49    .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.

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 50 .ILF and EIF     Do not count system files. like sort files.

Transaction Function Points  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   51 .

FTR ± File Type Referenced   FTR is a file type referenced by a transaction FTR must also be an ILF or EIF Counting Rules    Count a FTR for each ILF maintained Count only one FTR for each ILF maintained and read in the transaction 52 .

15 DET 16 + 0-1 LOW LOW AVG 2 LOW AVG HIGH 3+ AVG HIGH HIGH 53 .Rating FTR DET 1 .EI .4 DET 5 .

EO ± Rating FTR DET 1 ± 4 DET 5 ± 19 DET 20 + 0±1 LOW LOW AVG 2±3 LOW AVG HIGH 4+ AVG HIGH HIGH 54 .

EQ ± Rating FTR DET 1 ± 4 DET 5 ± 19 DET 20 + 0±1 LOW LOW AVG 2±3 LOW AVG HIGH 4+ AVG HIGH HIGH 55 .

Calculating Unadjusted Function Points Element EI EO EQ ILF EIF Low __ x 3 __ x 4 __ x 3 __ x 7 __ x 5 Average __ x 4 __ x 5 __ x 4 __ x 10 __ x 7 High __ x 6 __ x 7 __ x 6 __ x 15 __ x 10 Total Unadjusted Function Points (UFP) 56 .

Recap  Count data function points (data at rest)   ILF .Internal Logical Files EIF ± External Interface Files  Count transaction function points (data on move)    EI ± External Inputs EO ± External Outputs EQ ± External Inquiries 57 .

The 14 GSCs « 9 thru 14       Complex processing Reusability Installation ease Operational ease Multiple sites Facilitate change 58 .

hence Average is used for calculation Use a judgment call for overall complexity  Carried out because    Assumptions   59 .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.

ILFs and EIFs Do not count RETs. EOs. DETs and FTRs Classify all functions as average To calculate unadjusted function points.Quick FPA . use the coefficients      EI ± 4 EO ± 5 EQ ± 4 ILF ± 10 EIF ± 7   VAF = 0. EQs.65 to 1.35 FPC = UFC * VAF 60 .Calculation     Identify and count EIs.

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

Questions ??? .