Software Estimation & Function Point Analysis

Description
Software Estimation & Function Point Analysis

Software Estimation & Function Point Analysis
Practical Approach…

Project Successes
Why projects succeed … ? User Involvement ? Management Support ? Clarity in requirements ? Proper planning ? Realistic Expectations

Project Successes (…cont.)
Why projects succeed … ? Smaller Project milestones ? Competent Staff ? Ownership ? Clear Vision and Objectives ? Risk planning, Identification and Mitigation

Software Estimation
"The dual meaning of software estimation"
Forecasting the costs, times and efforts of software implementation cannot be achieved without the exact or at least approximated measurement of the size of the software.

WHY ESTIMATE?
Helps assess software costs ? Helps in systematic project planning ? Establishes bases for productivity and quality metrics ? Helps identify critical project resources ? Helps identify efforts
?

What to Estimate?
Application Size ? Effort, Team size, Schedule and Cost ? Critical Project resources ? Documentation ? Defects size
?

When to Estimate?
After requirement definition? ? After Analysis? ? After Design? ? After or in between Coding phase? ? End of Project?
?

Definition of Software Sizing?
A size of the software derived by quantifying the Functional User Requirements. -- ISO 1997

What is Function Points?
A measure of the functionality content of the system

What are objectives of FPA?
Measure application software functionality based on End User View ? Minimize overhead of the measurement process ? Provide measure which is consistent
?

Advantages of FPA?
Can be counted early in the life cycle ? Independent of environment (language/OS) ? Stable FP versus LOC (upto 3GL) mapping available ? 2 way abstraction in which user requirements are represented in the data and items of data are mapped in to numbers
?

Function Points
Is the most widespread functional type metrics which is suitable for quantifying a software application. It is based on 5 user identifiable logical "functions" which are divided into 2 data function types and 3 transactional function types. For a given software application, each of these elements is quantified and weighted, counting its characteristic elements, like file references or logical fields.

Function Point Count
UFPC (Unadjusted Function Point Count)
Data Function Types
Transaction Function Types

External Input (EI)

External Output (EO)

External Inquiry (EQ) Internal Logical Files (ILF)

External Interface Files (EIF)

Function Point Count (FPC) = UFPC * VAF (14 GSCs)

Identify Boundaries
A boundary indicates the border between the application being measured and the external applications or the user domain A boundary determines what functions are to be included in the function point count.
Boundary

Determine UFPC
The unadjusted Function Point Count (UFPC) reflects the specific countable functionality provided to the user by the application. UFPC = Data Function Type (ILF, EIF) + Transaction Function Type (EI, EO, EQ)

Value Adjustment Factor
The value adjustment factor indicates the general functionality provided to the user of the application. VAF comprises 14 general system characteristics (GSCs). For each GSC, the degree of influence (DI) is determined on a 0 to 5 scale VAF = 0.65 + (0.01 * Total DI)

Data Function Type
Data function types represent the functionality provided to the user to meet internal and external data requirements.

Transactional Function Type
Transactional function types represent the functionality provided to the user to process data by an application.

Determine UFPC
The unadjusted Function Point Count (UFPC) reflects the specific countable functionality provided to the user by the application. UFPC = Data Function Type (ILF, EIF) + Transaction Function Type (EI, EO, EQ)

Internal Logical File - ILF
An Internal Logical File (ILF) is a user identifiable group of logically related data mentioned within the boundary of the application being counted Rules: ? Data is logical, user identifiable and satisfies specific user requirements. ? Data is maintained within the application ? Data has not been counted as EIF

External Interface Files - EIF
An external Interface file (EIF) is a user identifiable group of logically related data maintained outside he boundary of the application being counted.

Rules:
? ? ?

?
?

Data is logical, user identifiable and satisfies specific user requirements. Data is referenced by the application being counted Data is not maintained by the application Data has not been counted as ILF Data will be considered ILF in some other applications

ILF/EIF Complexity
?

Each ILF and EIF contributes to the UFPC. The number of UFPCs contributed by each ILF/EIF depends upon its complexity
Complexity of an ILF/EIF depends on the number of data element types (DET) and record element types (RET) in the ILF/EIF.

1 to 19 DETs
1 RET Low

20 to 50 DETs
Low

51 + DETs
Average

?

2 to 5 RETs 6 and more RETs

Low

Average

High

Average

High

High

ILF/EIF - DET
A data element type is a unique user recognizable field on an ILF/EIF. Rules: ? Count all foreign keys to other ILF/EIF ? Ignore fields introduced during normalization ? Repeating fields (identical in format and meaning) which exist to allow multiple occurrences are not to be counted as single DET ? Do not count foreign keys within ILF/EIF

ILF/EIF - RET
A record element type is a unique user recognizable sub group of data elements within an ILF/EIF. RET may be optional or mandatory Rules: Normalization of IEF/EIF is likely to identify the RETs

ILF/EIF Hints
An ILF/EIF is counted only once in an application A group of data can be counted either as an ILF or as an EIF in an application. Do not use normalized data – consider user’s view of the data Some physical files may not be considered as part of any ILF/EIF Some group of data may be counted as ILF in more than one application – if the group of data is maintained in multiple application

Facts on ILF/EIF
Stand-alone applications will have no EIFs Some file cannot be ILF as well as EIF in the same application Every EIF must be an ILF in at-least one system The same file can be an ILF in more than one application if it is updated in more than one application

Guidelines
Master files used by System-A but maintained by System B will EIFs in System-A and ILFs in system-B Do not count files like, sort files, work files. Check point files and index file. In a development project (computerizing a manual application), use the physical “files” held by the user as a starting point. Do not use the normalized view of the files; consider pre-normalized data stores An ILF/EIF may actually end up being multiple tables/ files after normalization

Guidelines (contd…)
The complexity of the ILF/EIF – Simple, Average or Complex – affects the FP count. The complexity depends on the number of Record Element Types (RETs) and Data Element Types (DETs) in the ILF/EIF
A DET is a unique user-recognizable field in the ILF/EIF An RET is a user-recognizable sub-group (record types) of DETs in the ILF/EIF

Guidelines (contd…)
Guidelines on RETs and DETs
? ? ?

?

Use sub-groups of DETs relating of different sub-entities as RETs Sub-groups of DETs on interest to different user departments may be identified as different RETs Sub-groups of DETs which typically get updated together may be treated as RETs Any ILF/EIF will have at least one RET

Transactional Function Types
Transactional function types represent the functionality provided to the user to process data by an application. They are contributed by:
External Inputs (EIs), External Outputs (EOs) & External Inquiries (EQs)

External Input (EI)
An EI processes or refers to data that comes from outside the application boundary. An EI maintains one or more ILFs Rules
Data is received from outside the application boundary The input maintains at least one ILF The input is the smallest business transaction as seen by the user Control information identified by the user to ensure compliance with business requirements is also to be treated as an EI

External Input Complexity
Complexity of an EI depends on the number of data element types (DETs) and file types referenced (FTRs) in the EI
1 to 4 DETs Low 5 to 15 DETs Low 16 and more DETs Average

1 FTR

2 FTR
3 or more FTR

Low

Average

High
High

Average High

External Input - FTR
A file type referenced is an ILF maintained or read for completing the EI, or an EIF read for completing the EI Rules
? Count

a FTR for each ILF maintained or read by the EI ? Count a FTR for each EIF read by the EI ? For an EI do not count an ILF/EIF more than once

External Input - DET
A data element type is a unique user recognizable field maintained on an ILF by an EI Rules
Once only attributes that cross application boundary are to be counted Multiple physical storage is to be counted as a single DET Do not count screen prompts, field legends as DETs Do not count error messages as individual DETs

External Input - Summary
? ?

FPs from EIs are influenced by EIs complexity The complexity of EI (Simple, Average, Complex) depends on the Data Elements (DETs) and File Types referenced (RETs)




An FTR is no. of ILF/EIF accessed to complete the External Input. An ILF/EIF must be counted once only, irrespective of the number of times or modes in which it is accessed by the EI DETs are the number of data elements (fields) in ILFs which cross application boundary within EI

External Output
An External Output (EO) is a process that generates data sent outside the application boundary. An EO may be generated usingone or more ILFs/EIFs Rules
• •



Data is sent outside the application boundary The output is meaningful to the user’s business An EO may result in updates to ILFs

External Output Complexity
Complexity of an EO depends on the number of data element types (DETs) and file types referenced (FTRs) in the EO
1 to 5 DETs Low 6 to 19 DETs Low 20 and more DETs Average

1 FTR

2 -3 FTR
4 or more FTR

Low

Average

High
High

Average High

External Output - FTR
A file type referenced is an ILF used for completing the EO or an EIF read for completing the EO Rules
? Count

a FTR for each ILF used by EO ? Count a FTR for each EIF read by the EO ? For an EO do not count an ILF/EIF more than once

External Output - DET
A data element type is a unique user recognizable field that is output across the application boundary or input from outside the application boundary Rules
Do not count report titles, screen identifications, column headings amd field titles as DETs ? Do not count page numbers, date and time of printing/ execution as DETs ? Field combined for output and recognized by the user as a single field should be counted as a single DET
?

External Output - Summary
? ?

?
?

?

Primary intent of an EO is to present information to the user Eos are typically available as hard copy outputs or computer files which are taken out of the system (downloaded or sent to another application) The FPS from Eos are influenced by EO’s complexity The complexity of an EO also depends on the data Element Types (DETs) and the File Type Referenced (FTRs) An ILF/EIF must be counted as one FTR irrespective of the number of times or modes in which it is accesed by the EO

External Inquiry - EQ
An External Inquiry (EQ) is a process made up of an input output combination that results in a data retrieval. An EQ may be generated using one or more ILFs/EIFs Rules
Retrieves data from ILF or EIF ? Does not contain a math formula or calculation ? Does not create derived data ? Does not maintain an ILF ? Does not alter the behavior of the system
?

External Inquiry Complexity
Complexity of an EQ input/output depends on the number of data element types (DETs) and file types referenced (FTRs) in the EQ input/output
1 to 5 DETs 6 to 19 DETs 20 and more DETs

1 FTR 2 -3 FTR

Low Low

Low Average High

Average High High

4 or more FTR Average

External Inquiry – FTR & DET
FTR - A file type referenced is an ILF or EIF read for completing the EQ. Count all the FTRs used for the inpu side as well as the output side together DET - A data element type is a unique user recognizable field that appears in the EQ. Count all the data elementsthat cross the application boundary as input or output into a single set

External Inquiry - Summary
? ? ?

?

FPs contributed by an EQ are influenced by EQ’s complexity EQ’s complexity depends on Data Element Types (DETs) and file type referenced (FTRs) An ILF/EIF must be counted as one FTR irrespective of the number of times or modes in which it is accessed by the EQ Do not count DETs and FTRs separately for input part of the inquiry and output part of the inquiry

FPA - Procedure
Identify Counting boundary ? Compute Data Function Types ? Compute Transactional Function Points ? Calculate UFPC (Data +Transactional FP) ? Determine Value adjustment Factor (VAF) ? Calculate Final Adjustment FPs
?

EI Rating Table
Data Elements

FTR Less than 2
2 >2

1 to 4 3
3 4

5-15 3
4 6

>15 4
6 6

EO Rating Table
Data Elements

FTR Less than 2
2–3 >3

1 to 5 4
4 5

6 - 19 4
5 7

>19 5
7 7

EQ Rating Table
Data Elements

FTR Less than 2
2–3 >3

1 to 5 3
3 4

6 - 19 3
4 6

>19 4
6 6

ILF Rating Table
Data Elements

RET 1 RET
2–5 ?6

1 to 19 7
7 10

20 -50 7
10 15

51 and more 10
15 15

EIF Rating Table
Data Elements

RET 1 RET
2–5 ?6

1 to 19 5
5 7

20 -50 5
7 10

51 and more 7
10 10

VAF – General System Characteristics
? ?

There are 14 General System Characteristic (CGSC) They constitute the environment in which the application needs to operate, and thus impact the FP count.
1. Data communication
2. Distributed Data Processing 3. Performance 4. Transition Rate 5. Heavily Used Configuration 6. On-line Data entry 7. End-User efficiency

8. On-line Update
9. Complex Processing 10. Reusability 11. Installation Ease 12. Operational Ease 13. Multiple Sites 14. Facility Changes

GRS Rating
Each of the 14 parameters is assessed on 0-5 scale. The score thus give to any parameter is termed its Degree of influence (DI) Score meaning 0 absent or no influence 1 incidental influence 2 moderate influence 3 average influence 4 significant influences 5 storage influence throughout The sum of 14 DIs is termed as a total degree of influence (TDI)

Data Communication
Guidelines for scoring: Score Meaning 0 Pure batch or stand- alone PC 1 Batch with remote data entry or remote printing 2 Batch with remote data entry or remote printing 3 On line data collection 4 Online data update with remote data entry and remote printing 5 Support multiple Tele-processing protocols

Distributed Data processing
Guidelines for scoring:
Score Meaning 0 Application does not aid the transfer of data or processing function between component of the system 1 Application prepares data for end user processing on another component of the system such as PC spreadsheet or PC database 2 Data is prepared for transferred, then is transferred and processed on other component of the system 3 Distributed process and the data transfer on-line in both direction only 4 Distributed process and the data transfer on-line in both direction 5 Processing function are dynamically performed on the most appropriate components of the system

Performance
Guidelines for scoring
Score
0 1

Meaning

2
3 4 5

No special performance requirements were stated by the user Performance and the design requirement were stated but no special action were required Response times are throughput is crucial during all business peak hours. Feasibility can be established with the minimal design effort Response time is crucial in all business hours. Processing deadline requirements with interfacing system are constraining In addition, stated user performance requirement are stringent enough to require performance analysis benchmarking in the design phase In addition, performance analysis tool are required in design, development and installation / operational phase to monitor and turn performance

Heavily Used Configuration
Guidelines for scoring:
Score Meaning 0 No explicit or implicit restriction are included (e.g.: dedicated hardware) 1 Operational restrictions do exists, but are not restrictive. No special effort is needed to meet restrictions 2 Some security are timing consideration are required 3 Special process requirement for the specific piece of the application are included 4 Stated operation restriction requires special constrains on the application in the central processor 5 In addition, there are special constrains on the application in the distributed components of the system

Transaction Rate
Guidelines for scoring: Score Meaning 0 No peak transaction period is anticipated 1 Monthly/quarterly/half-yearly/annual peak transaction period anticipated 2 Weekly peak transaction period anticipated 3 Daily peak transaction period anticipated 4 High transaction rates started by the user in the application requirements or service level agreements require performance analysis task in the design phase 5 High and unpredictable transaction rates started by the user in the application requirement or service level agreements require performance analysis task and in the addition, requires the use of performance tool in the design , development and or/ installation phases

On-line Data Entry
Guidelines for scoring:
Score Meaning 0 All transaction are processed in the batch mode 1 1% to 7% of the transaction are interactive data entry 2 8% to 15% of the transaction are interactive data entry 3 16% to 23% of the transaction are interactive data entry 4 24% to 30% of the transaction are interactive data entry 5 More than 30% of the transaction are interactive data entry

End – User Efficiency
Factors to be considered:
? ? ? ?

?
? ? ?

?
? ?

Navigation aids( function keys, jumps, dynamically generated menus) menus Online help Automated cursor movement Scrolling Remote printing Press assigning function key Batch job from online transaction Cursor selection of screen data Heavy user of highlighting, reverse, viedo, underlining etc Pop up windows Mouse interface

End – User Efficiency
Guidelines for scoring:
Score Meaning

0 1 2 3 4 5

Non of the factor are presented One of the three of the factor Four to five factor Six to eight factor are presented Nine or more factors presented In addition, end user efficiency is strongly stated requirements

On – Line Update
Guidelines for scoring:
Score Meaning 0 no online updates 1 some on –line update; volume is low; recovery is easy 2 medium level on online updates, volume is low; recovery is easy 3 high degree of online updates 4 in addition, protection against the data lost is essential and has to be specially designed and programmed 5 in addition, high automated recovery procedure with minimal operation intervention are required

Complex Processing
Factors to be considered:
? ?

?
? ?

Sensitive control and or application specific security processing Extensive logical processing Extensive mathematical processing Much exception processing to handle incomplete transaction Complex processing to handle multiple input/output possibilities, for example, multimedia, or device independence

Complex Processing
Guidelines for scoring:
Score 0 1 2 3 4 5 Meaning None of the factor is present Any one of the above Any two of the above Any three of the above Any four of the above Any five of the above

Complex Processing
Guidelines for scoring:
Score 0 1 2 3 4 5 Meaning None of the factor is present Any one of the above Any two of the above Any three of the above Any four of the above Any five of the above

Complex Processing
Guidelines for scoring:
Score 0 1 2 3 4 5 Meaning None of the factor is present Any one of the above Any two of the above Any three of the above Any four of the above Any five of the above

Reusability
Guidelines for scoring:
Score Meaning 0 Reusability is not a factor 1 Development to cater for later enhancement within the application 2 Less than 10% code to be made reusable for other application 3 10% to 20% code to be made reusable 4 20% to 35% code to be made reusable 5 Over 35% code to be made reusable

Installation Ease
Guidelines for scoring: Score Meaning
0 No special consideration where stated by the user, and no special setup is required for the installation 1 No special consideration are stated by the user, but special setup is required for the installation 2 Installation requirement are stated by the user, and installation guides are to be provided and tested. The important of installation is not considered very important 3 Installation requirement are stated by the user, and installation guides are to be provided .each of installation perceived as very important to the user 4/5 In addition, tool are required to automate installation

Operation Ease
Guidelines for scoring:
Score Meaning 0 no special operation consideration other then normal back-up procedure were stated by the user 1/4-# one, some, or all of the following items apply to the application. # effective start up, backup and recovery process with significant operator intervention. # Effective startup, back up and recovery process with no operator intervention # In addition, application is to be designed fir minimum operator intervention 5 Application is designed for unattended operation. Automatic error recovery is to be a part of the application

Multiple Sites
Guidelines for scoring:
Score
0 1

Meaning

2
3 4 5

One user, single installation Needs of multiple sites are to be considered in the design, to operate under identical hardware and software environment Needs of multiple sites are to be considered in the design, to operate under similar hardware and software environment Needs of multiple sites are to be considered in the design, to operate under different hardware and software environment Documentation and the support planes in addition to 2 above Documentation and the support planes in addition to 3 above

Facilitate Changes
Guidelines for scoring:
Score Meaning 0 No flexible query/reporting 1 Flexible query and report facilities using simple request on single tables 2 Flexible query and report facilities using average complex request on multiple tables combined 3 Flexible query and report facilities using complex request on multiple tables combined 4 Flexible query and report facilities using simple/average complexity request with facility with save/reuse query 5 Flexible query and report facilities using complex request with facility to save/reuse query

Final FP count
?

?
? ? ? ? ?

Max value of TDI = 14* 5= 70 Min value of TDI = 14* 0 = 0 VAF = (Total DI * 0.01) +0.65 VAF therefore varies between 0.65 and 1.35 Final data FPC = Data UFPC * VAF Final Trans FPC = Trans UFPC * VAF Final FPC = Final Data FPC + Final Trans FPC

Drawbacks of FPA
? ?

? ? ?

Subjectivity in RETs, DETs, FTRs and GSCs Algorithms, calculations and complex processing not considered adequately – they should be considered as part of functions rather than for working out an adjustment factor Complexity based weight jumps for EI, EO, ILF, EIF, EQ not completely logical Time consuming Estimates by two persons may differ

Simple Customer Project
?

This is a simple project requirement where we are supposed to do the customer form and with address details of it. Following is the screen.

Simple Customer Project
?

There are 2 ILFs in the above screen:
?

The customer ILF. ? The Customer Address ILF.
?

There are no EIFs in the form itself.
?

But the credit card information referenced is EIF

Simple Customer Project
ILF Customer Description There are total 10 DETs, all add and update buttons, even the credit check button, the address list box, check box active, all text boxes. There is only one RET, the customer addresses. Note i have not included the credit check as RET as they are not Subelements (Child elements of Customer ILF). Number of DET 10 Number of RET 1

So according to the above ILF ranking table

Total function

7

Simple Customer Project
ILF Customer addresses
Description There are total 3 DETs, all the column names in the list box, city name, street name and pin code. For the customer address ILF there are no RET.Please note if this customer address screen is any where else and they have RET then make changes accordingly. Total FP 7 Number of DET 3 Number of RET 0

Simple Customer Project
EIF Credit card Information
Description The credit card information referenced is EIF. Note this file is only referenced for credit card check. There's only one textbox credit card number and hence one DET is put in the side column. and RET 0.Looking at the above rating table the total FP is 5. Number of DET 1 Number of RET 0

Total FP

5

Simple Customer Project
EI Customer
Description Number of DET Number of FTR 2 There are total 10 DETs, 10 all add and update buttons, even the credit check button, the address list box, check box active, all text boxes. There are 2 FTRs, one is the address and the second is the credit card information. Referring ranking table above Total Function

4

Simple Customer Project
? ? ? ? ?

?

While counting EI, we may tend to multiplying it by 3. That means we are going to do all CRUD functionality (ADD,UPDATE,DELETE). This is not fair as it just shows laziness of the Cost estimation team. Here the customer screen has add and update. We can say the 2 * 4 that's = 8 FP for this EI customer. But i adjust this factor in my buffer. If you start multiplying for every master screen like this it will be not fair for the customer. So make a genuine count at the first half and later in buffer add the extra FPs. So over here we count this as 1 EI and not multiply by any factor.

Simple Customer Project
EO Customer
No EO for this screen. As Customer system is not sending any information to external system which will add or update the external system.

EQ Customer
No EQ for this screen.At this moment there is no reports section here.Please note the display of cutomer addresses is not counted as EQ.

Simple Customer Project
So now, let's add the total function point got from above tables :

Section Name
ILF Customer ILF Customer Address

Function Point Counted
7 7

EIF credit card information
EI Customer Total Unadjusted Function Points

5
5 24

So all function point comes to 24.Please note i have said this as Unadjusted function as we have not accounted other variance factor of project (Programmers leaving job, Language we will use, What architecture etc etc).

Simple Customer Project
GSC Data communications Distributed data processing Value(0-5) 1 1

Performance
Heavily used configuration Transaction rate On-Line data entry End-user efficiency On-Line update Complex processing Reusability Installation ease Operational ease Multiple sites Facilitate change Total

4
0 1 0 4 0 0 3 4 4 0 0 22

Simple Customer Project
? ?

VAF = 0.65 + ((sum of all GSC factor)/100). = 0.65 + (22/100) = 0.87. This factor affects the whole FP like anything, be very particular with this factor. So now, calculating the adjusted FP = VAF * Total unadjusted FP = 0.87 * 24 = 20.88 = rounded to 21 FP.

Simple Customer Project
? ?

?

?

Now we know that the complete FP for the customer GUI is 21 FP. Now calculating the efficiency factor, we say that we will complete 3 FP per day, that is 7 working days for project So, the whole customer GUI is of 7 working days (Note do not consider Saturday and Sundays in this). I know upper manager people will say make it 7 FP per day and over load the programmer. Thats why programmer works at night.

s
?

1

Useful Links
?
? ? ? ?

Useful Links
http://www.sei.cmu.edu/str/descriptions/fpa_body.html http://www.dpo.it/english/topics/methods/ifpug-fp.htm http://www.dpo.it/english/resources/papers.htm http://www.codeproject.com/KB/architecture/Softwarecosting.aspx



doc_521851727.ppt
 

Attachments

Back
Top