SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Software Project CostSoftware Project Cost
EstimationEstimation
UsingUsing
Function PointsFunction Points
ByBy
Drew TkacDrew Tkac
Program Estimation ExampleProgram Estimation Example
• Phone order company thinks they need a customer /
order taking program.
• New customer contact information is entered into data
base controlled by the program. Fields are:
– First Name
– Last Name
– Street Address
– City
– State
– Zip Code
– Phone Number
– Initial Contact Date
Program Estimation ExampleProgram Estimation Example
• Inventory data base, controlled by another program, is referenced
for orders.
– Stock Number
– Quantity in Stock
– Selling Price
• Customer order data base is maintained by the program. Fields are:
– First Name
– Last Name
– Stock Number of Item Purchased
– Quantity Purchased
– Date of Purchase
• All records within the program may be created, modified or deleted.
• How long will it take and how much will it cost to write
this program?
The Point of Function Points….The Point of Function Points….
• A unit of software work
• Generated during the requirements stage
for size and effort estimation.
• Worst estimation technique, ahead of all
the others.
• Something to count at the requirements
stage as opposed to lines of code.
• Calibrated to type of software and past
staff performance.
Function Point Users GroupFunction Point Users Group
• The standard for function point counting is
International Function Point Users Group
(IFPUG) www.ifpug.org
• Offer classes, seminars and certification.
• Maintain data bases and references.
Useful Regardless of SoftwareUseful Regardless of Software
ModelModel
Requirements Design Implementation Verification Maintenance
Adaptive Predictive
Big Giant
Requirements
Bite Sized
Requirements
Design Implementation Verification Maintenance
Predictive
Adaptive
Function Points Useful to….Function Points Useful to….
• The business / department
– Used to determine ROI
– What features can be compromised?
• The technical staff / consultant
– Used to determine staffing requirements
– Used for performance review
– Used to establish schedule
– Used to estimate cost
Function Points ProvideFunction Points Provide
An EstimateAn Estimate
• How long does it take you to get here from
home?
• Normal conditions: 10 min.
• Could it ever be 1 min?
• Could it ever be 20 min?
• Could it ever not happen?
• Estimation – Has a probability attached – 98% of
the time it takes 10 min +/- 2 min
Software Cost Estimates:Software Cost Estimates:
Black Art or Real Science?Black Art or Real Science?
• Currently typical software organizations are
struggling to avoid estimates that are
incorrect by 100% or more.
• Most common estimation technique -
compare new project with past project
based on personal memory. Guessing,
intuition and unstructured expert judgment
are used for 60% to 85% of estimates.
Results of Past ProjectsResults of Past Projects
Some Past Project SizesSome Past Project Sizes
Performing Function PointPerforming Function Point
AnalysisAnalysis
1. Start with the project requirements.
2. Count function points.
3. Convert function points to lines of code based
on programming language.
4. Convert lines of code to programmer hours
based on project type, and performance
history.
5. Convert programmer hours to dollars using
average values or staff salaries.
Characteristics of a Software
Program
Input Output
External Files
Process
Internal Files
Program
What to Count?What to Count?
• External Inputs (EI)
• External Outputs (EO)
• External Queries (EQ)
• Internal Logical File (ILF)
• External Interface File (EIF)
External Inputs (EI)External Inputs (EI)
• Screens, forms, dialog boxes, or control signals
through which an end user or other program
adds, deletes, or changes program data.
• Grouped logically.
• Number of data elements determine the logical
inputs complexity. (Data element type DET)
• Include any input that has a unique format or
unique processing.
External Input ExampleExternal Input Example
Name
Street Address
Zip
Phone
Part Number
Part Description
Program
1 External Input with 4 DET
1 External Input with 2 DET
External Outputs (EO)External Outputs (EO)
• Screens, reports, graphs, or control
signals that the program generates for use
by an end user or other program.
• Grouped logically.
• Number of data elements determine an
outputs complexity. (DET)
• They include any output that has a
different format or different processing
than other types.
External Output ExampleExternal Output Example
Program
1 External Output with 4
DET
First Name
Last Name
Date of Purchase
Item Purchased
External Queries (EQ)External Queries (EQ)
• Input/output combinations in which an
input results in an immediate, simple
output.
• Receive data directly from a data base
with little formatting.
Internal Logical Files (ILF)Internal Logical Files (ILF)
• Major logical groups of end user data that
is completely controlled by the program.
• Number of data elements control
complexity.
• Single table in a data base or a data file
External Interface Files (EIF)External Interface Files (EIF)
• Files controlled by another program with
which the program interacts.
• Major logical group of data.
• Number of data elements control
complexity.
Tally the Points, AccountingTally the Points, Accounting
WorkWork
• Each EI, EO, EQ, EIF, and ILF have
values attached.
• Complexities for each are considered.
• Additional factors are applied to produce
adjusted function points.
• Can be cross checked to other methods.
• Tables are available via IFPUG
The Dutch MethodThe Dutch Method
• Works well early in the project
• High degree of uncertainty
• Best applied to data base related projects
• Great to determine if the project is worth
taking the next step.
• Developed by Netherlands Software
Metrics Association (NESMA)
• Formula: Function Point Count = (35 X Internal
Logical Files) + (15 X External Interface Files)
Convert Function Points to LinesConvert Function Points to Lines
of Codeof Code
Lines of Code per Staff MonthLines of Code per Staff Month
Diseconomies of ScaleDiseconomies of Scale
Convert Staff Hours to CostConvert Staff Hours to Cost
Programmer’s SalariesProgrammer’s Salaries
Haskell $198,000
Erlang $99,000
Objective-C $82,000
Pascal $81,000
C++ $80,000
SmallTalk $80,000
TCL $80,000
C# $79,000
Java $79,000
Python $78,000
Perl $77,000
Ruby $74,000
COBOL $73,000
JavaScript $72,000
ColdFusion $64,000
Delphi $64,000
PHP $64,000
Visual Basic $64,000
C $60,000
Our ExampleOur Example
Calculate Function PointsCalculate Function Points
• Internal Logical Files
– Customer Contact File
– Customer Purchase File
• External Interface Files
- Inventory Data Base
• Using the Dutch Method:
FP = (35 X 2) + (15 X 1) = 85 FP’s
Our ExampleOur Example
Convert Function Points to Lines of CodeConvert Function Points to Lines of Code
• Choose the programming language that requires
the fewest number of lines of code to implement
a function point
• Consider cost of a programmer for this language
and availability
• Consider maintenance factors
• My choice was: Visual Basic
• Example program: 32 lines of code / function
point or 32 X 85 = 2720 LOC
Our ExampleOur Example
Convert Lines of Code to CostConvert Lines of Code to Cost
• VB Programmers $64K / year X 1.25
benefits = $80K / 12 months = $6667/mo
• Lines of code per month for a business
system, medium performance, small
project = 3000
• 2720 Lines of code / 3000 Lines of code
per month = 0.9 Months or $6045
ReferencesReferences
Garmus, David and Herron, David, Function Point Analysis,
ISBN-0-201-69944-3
McConnell, Steve, Software Estimation, ISBN10: 0-7356-
0535-1
International Function Point Users Group
Brooks, Fred, The Mythical Man-Month: Essays on
Software Engineering

Weitere ähnliche Inhalte

Was ist angesagt?

Issues in software cost estimation
Issues in software cost estimationIssues in software cost estimation
Issues in software cost estimation
Kashif Aleem
 

Was ist angesagt? (20)

Introduction to Software Cost Estimation
Introduction to Software Cost EstimationIntroduction to Software Cost Estimation
Introduction to Software Cost Estimation
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
Lecture5
Lecture5Lecture5
Lecture5
 
Software cost estimation project
Software  cost estimation projectSoftware  cost estimation project
Software cost estimation project
 
Issues in software cost estimation
Issues in software cost estimationIssues in software cost estimation
Issues in software cost estimation
 
Software Estimation Technique
Software Estimation TechniqueSoftware Estimation Technique
Software Estimation Technique
 
Best Practices in Software Cost Estimation - Metrikon 2015 - Frank Vogelezang
Best Practices in Software Cost Estimation - Metrikon 2015 - Frank VogelezangBest Practices in Software Cost Estimation - Metrikon 2015 - Frank Vogelezang
Best Practices in Software Cost Estimation - Metrikon 2015 - Frank Vogelezang
 
Software Cost Estimation
Software Cost EstimationSoftware Cost Estimation
Software Cost Estimation
 
Software effort estimation
Software effort estimationSoftware effort estimation
Software effort estimation
 
Effort estimation( software Engineering)
Effort estimation( software Engineering)Effort estimation( software Engineering)
Effort estimation( software Engineering)
 
Software Project Estimation
Software Project EstimationSoftware Project Estimation
Software Project Estimation
 
Wideband Delphi Estimation
Wideband Delphi EstimationWideband Delphi Estimation
Wideband Delphi Estimation
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
DELPHI METHOD (COST ESTIMATION MODELT)
DELPHI METHOD (COST ESTIMATION MODELT)DELPHI METHOD (COST ESTIMATION MODELT)
DELPHI METHOD (COST ESTIMATION MODELT)
 
Effort estimation for software development
Effort estimation for software developmentEffort estimation for software development
Effort estimation for software development
 
Guide to Software Estimation
Guide to Software EstimationGuide to Software Estimation
Guide to Software Estimation
 
Software Estimation
Software EstimationSoftware Estimation
Software Estimation
 
Decomposition technique In Software Engineering
Decomposition technique In Software Engineering Decomposition technique In Software Engineering
Decomposition technique In Software Engineering
 
Basic Software Effort Estimation
Basic Software Effort EstimationBasic Software Effort Estimation
Basic Software Effort Estimation
 
Software Estimation
Software EstimationSoftware Estimation
Software Estimation
 

Andere mochten auch (10)

Unit2 140919045718-phpapp01
Unit2 140919045718-phpapp01Unit2 140919045718-phpapp01
Unit2 140919045718-phpapp01
 
Zeeshan Estimation
Zeeshan EstimationZeeshan Estimation
Zeeshan Estimation
 
Software Estimation Part I
Software Estimation Part ISoftware Estimation Part I
Software Estimation Part I
 
Project Estimation
Project EstimationProject Estimation
Project Estimation
 
Cost Plus Pricing
Cost Plus PricingCost Plus Pricing
Cost Plus Pricing
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
Mandays Dan Total Cost Estimation For Application Development Project
Mandays Dan  Total  Cost  Estimation For  Application Development ProjectMandays Dan  Total  Cost  Estimation For  Application Development Project
Mandays Dan Total Cost Estimation For Application Development Project
 
Pricing methods..
Pricing methods..Pricing methods..
Pricing methods..
 
PPT on pricing strategies
PPT on pricing strategiesPPT on pricing strategies
PPT on pricing strategies
 
State of the Word 2011
State of the Word 2011State of the Word 2011
State of the Word 2011
 

Ähnlich wie Software Project Cost Estimation

Pm Scheduling Cost Pricing
Pm Scheduling Cost PricingPm Scheduling Cost Pricing
Pm Scheduling Cost Pricing
jonathan077070
 

Ähnlich wie Software Project Cost Estimation (20)

Managing software project, software engineering
Managing software project, software engineeringManaging software project, software engineering
Managing software project, software engineering
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
OOSE Unit 2 PPT.ppt
OOSE Unit 2 PPT.pptOOSE Unit 2 PPT.ppt
OOSE Unit 2 PPT.ppt
 
project planning components.pdf
project planning components.pdfproject planning components.pdf
project planning components.pdf
 
5_6134023428304274682.pptx
5_6134023428304274682.pptx5_6134023428304274682.pptx
5_6134023428304274682.pptx
 
Introduction to computer programming
Introduction to computer programmingIntroduction to computer programming
Introduction to computer programming
 
Resume_Vellaiyan
Resume_VellaiyanResume_Vellaiyan
Resume_Vellaiyan
 
dokumen.tips_spm-5e-software-effort-estimation-the-mcgraw-hill-companies-2009...
dokumen.tips_spm-5e-software-effort-estimation-the-mcgraw-hill-companies-2009...dokumen.tips_spm-5e-software-effort-estimation-the-mcgraw-hill-companies-2009...
dokumen.tips_spm-5e-software-effort-estimation-the-mcgraw-hill-companies-2009...
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
 
Software Sizing
Software SizingSoftware Sizing
Software Sizing
 
Project Management (Practical Qustion Paper) [CBSGS - 75:25 Pattern] {2013-20...
Project Management (Practical Qustion Paper) [CBSGS - 75:25 Pattern] {2013-20...Project Management (Practical Qustion Paper) [CBSGS - 75:25 Pattern] {2013-20...
Project Management (Practical Qustion Paper) [CBSGS - 75:25 Pattern] {2013-20...
 
Cost effort.ppt
Cost effort.pptCost effort.ppt
Cost effort.ppt
 
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
 
Pm Scheduling Cost Pricing
Pm Scheduling Cost PricingPm Scheduling Cost Pricing
Pm Scheduling Cost Pricing
 
Shaik Niyas Ahamed M Resume
Shaik Niyas Ahamed M ResumeShaik Niyas Ahamed M Resume
Shaik Niyas Ahamed M Resume
 
Algorithmic Software Cost Modeling
Algorithmic Software Cost ModelingAlgorithmic Software Cost Modeling
Algorithmic Software Cost Modeling
 
SampleProject1
SampleProject1SampleProject1
SampleProject1
 
Afrekenen met functiepunten
Afrekenen met functiepuntenAfrekenen met functiepunten
Afrekenen met functiepunten
 

Kürzlich hochgeladen

1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 

Software Project Cost Estimation

  • 1. Software Project CostSoftware Project Cost EstimationEstimation UsingUsing Function PointsFunction Points ByBy Drew TkacDrew Tkac
  • 2. Program Estimation ExampleProgram Estimation Example • Phone order company thinks they need a customer / order taking program. • New customer contact information is entered into data base controlled by the program. Fields are: – First Name – Last Name – Street Address – City – State – Zip Code – Phone Number – Initial Contact Date
  • 3. Program Estimation ExampleProgram Estimation Example • Inventory data base, controlled by another program, is referenced for orders. – Stock Number – Quantity in Stock – Selling Price • Customer order data base is maintained by the program. Fields are: – First Name – Last Name – Stock Number of Item Purchased – Quantity Purchased – Date of Purchase • All records within the program may be created, modified or deleted. • How long will it take and how much will it cost to write this program?
  • 4. The Point of Function Points….The Point of Function Points…. • A unit of software work • Generated during the requirements stage for size and effort estimation. • Worst estimation technique, ahead of all the others. • Something to count at the requirements stage as opposed to lines of code. • Calibrated to type of software and past staff performance.
  • 5. Function Point Users GroupFunction Point Users Group • The standard for function point counting is International Function Point Users Group (IFPUG) www.ifpug.org • Offer classes, seminars and certification. • Maintain data bases and references.
  • 6. Useful Regardless of SoftwareUseful Regardless of Software ModelModel Requirements Design Implementation Verification Maintenance Adaptive Predictive Big Giant Requirements Bite Sized Requirements Design Implementation Verification Maintenance Predictive Adaptive
  • 7. Function Points Useful to….Function Points Useful to…. • The business / department – Used to determine ROI – What features can be compromised? • The technical staff / consultant – Used to determine staffing requirements – Used for performance review – Used to establish schedule – Used to estimate cost
  • 8. Function Points ProvideFunction Points Provide An EstimateAn Estimate • How long does it take you to get here from home? • Normal conditions: 10 min. • Could it ever be 1 min? • Could it ever be 20 min? • Could it ever not happen? • Estimation – Has a probability attached – 98% of the time it takes 10 min +/- 2 min
  • 9. Software Cost Estimates:Software Cost Estimates: Black Art or Real Science?Black Art or Real Science? • Currently typical software organizations are struggling to avoid estimates that are incorrect by 100% or more. • Most common estimation technique - compare new project with past project based on personal memory. Guessing, intuition and unstructured expert judgment are used for 60% to 85% of estimates.
  • 10. Results of Past ProjectsResults of Past Projects
  • 11. Some Past Project SizesSome Past Project Sizes
  • 12. Performing Function PointPerforming Function Point AnalysisAnalysis 1. Start with the project requirements. 2. Count function points. 3. Convert function points to lines of code based on programming language. 4. Convert lines of code to programmer hours based on project type, and performance history. 5. Convert programmer hours to dollars using average values or staff salaries.
  • 13. Characteristics of a Software Program Input Output External Files Process Internal Files Program
  • 14. What to Count?What to Count? • External Inputs (EI) • External Outputs (EO) • External Queries (EQ) • Internal Logical File (ILF) • External Interface File (EIF)
  • 15. External Inputs (EI)External Inputs (EI) • Screens, forms, dialog boxes, or control signals through which an end user or other program adds, deletes, or changes program data. • Grouped logically. • Number of data elements determine the logical inputs complexity. (Data element type DET) • Include any input that has a unique format or unique processing.
  • 16. External Input ExampleExternal Input Example Name Street Address Zip Phone Part Number Part Description Program 1 External Input with 4 DET 1 External Input with 2 DET
  • 17. External Outputs (EO)External Outputs (EO) • Screens, reports, graphs, or control signals that the program generates for use by an end user or other program. • Grouped logically. • Number of data elements determine an outputs complexity. (DET) • They include any output that has a different format or different processing than other types.
  • 18. External Output ExampleExternal Output Example Program 1 External Output with 4 DET First Name Last Name Date of Purchase Item Purchased
  • 19. External Queries (EQ)External Queries (EQ) • Input/output combinations in which an input results in an immediate, simple output. • Receive data directly from a data base with little formatting.
  • 20. Internal Logical Files (ILF)Internal Logical Files (ILF) • Major logical groups of end user data that is completely controlled by the program. • Number of data elements control complexity. • Single table in a data base or a data file
  • 21. External Interface Files (EIF)External Interface Files (EIF) • Files controlled by another program with which the program interacts. • Major logical group of data. • Number of data elements control complexity.
  • 22. Tally the Points, AccountingTally the Points, Accounting WorkWork • Each EI, EO, EQ, EIF, and ILF have values attached. • Complexities for each are considered. • Additional factors are applied to produce adjusted function points. • Can be cross checked to other methods. • Tables are available via IFPUG
  • 23. The Dutch MethodThe Dutch Method • Works well early in the project • High degree of uncertainty • Best applied to data base related projects • Great to determine if the project is worth taking the next step. • Developed by Netherlands Software Metrics Association (NESMA) • Formula: Function Point Count = (35 X Internal Logical Files) + (15 X External Interface Files)
  • 24. Convert Function Points to LinesConvert Function Points to Lines of Codeof Code
  • 25. Lines of Code per Staff MonthLines of Code per Staff Month
  • 27. Convert Staff Hours to CostConvert Staff Hours to Cost Programmer’s SalariesProgrammer’s Salaries Haskell $198,000 Erlang $99,000 Objective-C $82,000 Pascal $81,000 C++ $80,000 SmallTalk $80,000 TCL $80,000 C# $79,000 Java $79,000 Python $78,000 Perl $77,000 Ruby $74,000 COBOL $73,000 JavaScript $72,000 ColdFusion $64,000 Delphi $64,000 PHP $64,000 Visual Basic $64,000 C $60,000
  • 28. Our ExampleOur Example Calculate Function PointsCalculate Function Points • Internal Logical Files – Customer Contact File – Customer Purchase File • External Interface Files - Inventory Data Base • Using the Dutch Method: FP = (35 X 2) + (15 X 1) = 85 FP’s
  • 29. Our ExampleOur Example Convert Function Points to Lines of CodeConvert Function Points to Lines of Code • Choose the programming language that requires the fewest number of lines of code to implement a function point • Consider cost of a programmer for this language and availability • Consider maintenance factors • My choice was: Visual Basic • Example program: 32 lines of code / function point or 32 X 85 = 2720 LOC
  • 30. Our ExampleOur Example Convert Lines of Code to CostConvert Lines of Code to Cost • VB Programmers $64K / year X 1.25 benefits = $80K / 12 months = $6667/mo • Lines of code per month for a business system, medium performance, small project = 3000 • 2720 Lines of code / 3000 Lines of code per month = 0.9 Months or $6045
  • 31. ReferencesReferences Garmus, David and Herron, David, Function Point Analysis, ISBN-0-201-69944-3 McConnell, Steve, Software Estimation, ISBN10: 0-7356- 0535-1 International Function Point Users Group Brooks, Fred, The Mythical Man-Month: Essays on Software Engineering