1 Introduction to Software Cost Estimation (Chapter 23, 24) COMP SCI: Software Engineering and...
-
Upload
harry-booth -
Category
Documents
-
view
215 -
download
0
Transcript of 1 Introduction to Software Cost Estimation (Chapter 23, 24) COMP SCI: Software Engineering and...
1
Introduction to Software Introduction to Software Cost Cost Estimation (Chapter 23, 24)Estimation (Chapter 23, 24)
COMP SCI: Software Engineering and Project COMP SCI: Software Engineering and Project
School of Computer ScienceSchool of Computer Science
The University of AdelaideThe University of Adelaide
How to calculate?How to calculate?
What What metricsmetrics and parameters do we need parameters do we need to estimate the software cost?to estimate the software cost?
Other factors do we need to consider?Other factors do we need to consider?
How to estimate the cost of a software project?
Developers' ability?Developers' ability?
Management involvement?Management involvement?
Organization’s culture?Organization’s culture?
Situation of marketSituation of market
Development process? Development process?
OverviewOverview
Parameters and factors that influence the cost estimationParameters and factors that influence the cost estimation
Software productivity and their measureSoftware productivity and their measure
• Lines of codeLines of code
• Function PointsFunction Points
• Object PointsObject Points
Cost Estimation techniquesCost Estimation techniques
• Algorithmic cost modelling.Algorithmic cost modelling.
• Expert judgement.Expert judgement.
• Estimation by analogyEstimation by analogy
• Parkinson's Law.Parkinson's Law.
• Pricing to win.Pricing to win.
Cost Estimation Model - COCOMO 81Cost Estimation Model - COCOMO 81
Learning Objectives
By the end of this session, you will be able to
Articulate the parameters and factors that influence the cost estimationparameters and factors that influence the cost estimation
Describe two metrics for software productivity assessmentDescribe two metrics for software productivity assessment
Understand and explain why different techniques should be used for Understand and explain why different techniques should be used for
software estimationsoftware estimation
Describe the basic idea and principles of the Function Point calculation Describe the basic idea and principles of the Function Point calculation
methodsmethods
Describe the basic idea and principles of the COCOMO model Describe the basic idea and principles of the COCOMO model
Use the techniques and model to estimate your project costUse the techniques and model to estimate your project cost
Fundamental Cost Estimation Fundamental Cost Estimation Questions and Classic Cost Estimation modelQuestions and Classic Cost Estimation model
How much effort is required to complete an activity?How much effort is required to complete an activity?
How much calendar time is needed to complete an activity?How much calendar time is needed to complete an activity?
What is the total cost of an activity?What is the total cost of an activity?
How to schedule and mange a software process so that the overhead cost How to schedule and mange a software process so that the overhead cost
can be controlled?can be controlled?
Software Cost Estimation
Process
Requirements
Cost Drivers
Effort
Loading
Duration
e.g.e.g. Complex Complex interface interface
Required software reliabilityRequired software reliability
Applications experienceApplications experience
Software Cost ParametersSoftware Cost Parameters
Hardware and software (used to develop the specific software product) Hardware and software (used to develop the specific software product)
costs.costs.
Travel and training costs.Travel and training costs.
Effort costs (the dominant factor in most projects)Effort costs (the dominant factor in most projects)
• The salaries of engineers involved in the project;The salaries of engineers involved in the project;
• Social and insurance costs.Social and insurance costs.
Effort costs must take overheads into accountEffort costs must take overheads into account
• Costs of building, heating, lighting.Costs of building, heating, lighting.
• Costs of networking and communications.Costs of networking and communications.
• Costs of shared facilities (e.g library, staff restaurant, etc.).Costs of shared facilities (e.g library, staff restaurant, etc.).
Costing and PricingCosting and Pricing There is not a simple relationship between the development cost and
the price charged to the customer.
• Beside the cost related to the developers, many other factors
needed to be considered, such as:
A measure of the rate at which individual engineers involved A measure of the rate at which individual engineers involved
in software development produce software and associated in software development produce software and associated
documentation over certain period of time.documentation over certain period of time.
• measure useful functionality produced per time unit essentially.measure useful functionality produced per time unit essentially. e.g. 50 function points/Person Monthe.g. 50 function points/Person Month
Software ProductivitySoftware Productivity
Size related measures (Lines of code)
• based on some output from the software process. This may be lines
of delivered source code, object code instructions, etc.
Function-related measures
• based on an estimate of the functionality of the delivered software.
Function-points are the best known of this type of measure. Function points,
Object points
Productivity MeasuresProductivity Measures
Line of code measureLine of code measure
• Cost estimation based on the measure of lines of code. Cost estimation based on the measure of lines of code. The measure was first proposed when programs were typed on cards with The measure was first proposed when programs were typed on cards with
one line per card;one line per card;
Problem with this method:Problem with this method:
• Hard to map to the statements in different language:Hard to map to the statements in different language: A statement in C, or Java, or C++ can be several statements in Assembly A statement in C, or Java, or C++ can be several statements in Assembly
language.language.
• What programs should be counted as part of the system?What programs should be counted as part of the system?
• Measures of productivity based on lines of code suggest that programmers Measures of productivity based on lines of code suggest that programmers
who write verbose code are more productive than programmers who write who write verbose code are more productive than programmers who write
compact codecompact code
Lines of CodeLines of Code
Estimation TechniquesEstimation Techniques
There is no simple way to make an accurate estimate of the effort required to There is no simple way to make an accurate estimate of the effort required to develop a software systemdevelop a software system
• Initial estimates are based on inadequate information in a user requirements Initial estimates are based on inadequate information in a user requirements definition;definition;
• The software may run on unfamiliar computers or use new technology;The software may run on unfamiliar computers or use new technology;
• The people in the project may be unknown.The people in the project may be unknown.
Changing technologies may influence the technique used for estimation of the costChanging technologies may influence the technique used for estimation of the cost
• Mean that previous estimating experience does not carry over to new systems, e.g.Mean that previous estimating experience does not carry over to new systems, e.g. Distributed object systems rather than mainframe systems;Distributed object systems rather than mainframe systems; Use of web services;Use of web services; Use of ERP or database-centred systems;Use of ERP or database-centred systems; Use of off-the-shelf software;Use of off-the-shelf software;
Project cost estimates may be self-fulfillingProject cost estimates may be self-fulfilling
• The estimate defines the budget The estimate defines the budget
• The product is adjusted to meet the budget.The product is adjusted to meet the budget.
Estimation TechniquesEstimation Techniques
Algorithmic cost modelling.Algorithmic cost modelling. Functional points approachFunctional points approach
Constructive Cost Model (COCOMO)Constructive Cost Model (COCOMO)
Expert judgement.Expert judgement.
Estimation by analogy.Estimation by analogy.
Parkinson's Law.Parkinson's Law.
Pricing to win.Pricing to win.
Function PointsFunction Points
Based on a combination of program characteristics (elements)Based on a combination of program characteristics (elements)
• Number of external inputs and outputs;Number of external inputs and outputs;
• Number of user interactions (Number of user interactions (Number of external inquiriesNumber of external inquiries ););
• Number of external interfaces;Number of external interfaces;
• Number of files used by the system.Number of files used by the system.
Steps in calculationSteps in calculation
(1) Calculating an Unadjusted Function point Count (UFC).
Can be complicated
(2) Multiplying the UFC by a Technical Complexity Factor (TCF).
The final number of (adjusted) Function Points is:FP = UFC TCF
14
1
0.65 0.01 jj
TCF F
N1
N2
N3
N4
W1
W2
W3
W4
Cost driver
Function PointsFunction Points• Technical Complexity Factor (TCF) is a weighted sum of 14
components (represented by F1 to F14), given below:
FF11 Reliable back-up and recoveryReliable back-up and recovery FF22 Data communicationsData communications
FF33 Distributed functionsDistributed functions FF44 PerformancePerformance
FF55 Heavily used configurationHeavily used configuration FF66 Online data entryOnline data entry
FF77 Operational easeOperational ease FF88 Online updateOnline update
FF99 Complex interfaceComplex interface FF1010 Complex processingComplex processing
FF1111 ReusabilityReusability FF1212 Installation easeInstallation ease
FF1313 Multiple sitesMultiple sites FF1414 Facilitate changeFacilitate change14
1
0.65 0.01 jj
TCF F
Each component is rated from 0 to 5, where 0 means the component is not relevant to
the system and 5 means the component is essential
COCOMO 81COCOMO 81M is multiplier that reflects the capability of the developers, the non-functional requirements, the familiarity with the development platform, etc.
thousand lines of delivered source instructions
EMi is an effort multiplier, rated result of a cost driver
Examples of Several Cost Drivers Examples of Several Cost Drivers ((Effort multiplierEffort multiplier))
DescriptionDescription VeryVery
LowLow
LowLow NominalNominal HighHigh VeryVery
HighHigh
ExtraExtra
HighHigh
RELYRELY Required software Required software reliabilityreliability
0.750.75 0.880.88 1.001.00 1.151.15 1.401.40 --
VIRTVIRT Virtual machine Virtual machine volatilityvolatility
-- 0.870.87 1.001.00 1.151.15 1.301.30 --
AEXPAEXP Applications Applications experienceexperience
1.291.29 1.131.13 1.001.00 0.910.91 0.820.82 --
MODPMODP Modern Modern programming programming practicespractices
1.241.24 1.101.10 1.001.00 0.910.91 0.820.82 --
Product
Computer
Personnel
Project
3
4
5
3
Cost estimation is a hard for any projectCost estimation is a hard for any project
• Software cost estimation is even harder, yet critical for the success of Software cost estimation is even harder, yet critical for the success of
software project managementsoftware project management
A lot of problems in the existing research, no model can
provide convinced cost estimation of a software project
before the project begins
Potential research directions:
• It is likely that a combined approaches will work
model based on Analogy (case-based) + Functional points
(features selection) + Statistical inference approaches (Bayesian
inference)
Research OpportunitiesResearch Opportunities
In project:
• How do you estimate the cost of the software product that you are
going to develop? What cost estimation techniques will you use in your project?
How do you use the idea introduced in the cost estimation lecture to
help you manage your project.
Relevance to Your ProjectRelevance to Your Project
Key pointsKey points
There is not a simple relationship between the price charged There is not a simple relationship between the price charged
for a system and its development costs.for a system and its development costs.
Factors affecting productivity include individual aptitude, Factors affecting productivity include individual aptitude,
domain experience, the development project, the project size, domain experience, the development project, the project size,
tool support and the working environment.tool support and the working environment.
Software may be priced to gain a contract and the Software may be priced to gain a contract and the
functionality adjusted to the price.functionality adjusted to the price.
Key pointsKey points
Different techniques of cost estimation should be used when estimating Different techniques of cost estimation should be used when estimating
costs. costs.
The COCOMO model takes project, product, personnel and hardware The COCOMO model takes project, product, personnel and hardware
attributes into account when predicting effort required.attributes into account when predicting effort required.
Algorithmic cost models support quantitative option analysis as they Algorithmic cost models support quantitative option analysis as they
allow the costs of different options to be compared.allow the costs of different options to be compared.
The time to complete a project is not proportional to the number of The time to complete a project is not proportional to the number of
people working on the project.people working on the project.
COCOMO 2COCOMO 2
COCOMO 81 was developed with the assumption that COCOMO 81 was developed with the assumption that
• a waterfall process would be used and a waterfall process would be used and
• all software would be developed from scratch.all software would be developed from scratch.
COCOMO 2 is designed to accommodate the changes in COCOMO 2 is designed to accommodate the changes in
software engineering practicesoftware engineering practice
• OO approachOO approach
• Components-based approachComponents-based approach
• New insight of software engineering New insight of software engineering
COCOMO 2 ModelsCOCOMO 2 Models
COCOMO 2 incorporates a range of sub-models that produce increasingly COCOMO 2 incorporates a range of sub-models that produce increasingly
detailed software estimates.detailed software estimates.
The sub-models in COCOMO 2 are:The sub-models in COCOMO 2 are:
• Application composition modelApplication composition model. Used when software is composed from . Used when software is composed from
existing parts.existing parts.
• Early design modelEarly design model. Used when requirements are available but design has not . Used when requirements are available but design has not
yet started.yet started.
• Reuse modelReuse model. Used to compute the effort of integrating reusable components.. Used to compute the effort of integrating reusable components.
• Post-architecture modelPost-architecture model. Used once the system architecture has been . Used once the system architecture has been
designed and more information about the system is available.designed and more information about the system is available.
An Example of Productivity Calculation An Example of Productivity Calculation With Lines of CodeWith Lines of Code
There is a System Development Time as illustrated below:There is a System Development Time as illustrated below:
A measure of the rate at which individual engineers involved A measure of the rate at which individual engineers involved
in software development produce software and associated in software development produce software and associated
documentation over certain period of time.documentation over certain period of time.
• This measurement is to measure useful functionality produced per This measurement is to measure useful functionality produced per
time unit essentially.time unit essentially. e.g. 50 function points/Person Monthe.g. 50 function points/Person Month
• This measurement is Not quality-oriented itself although quality This measurement is Not quality-oriented itself although quality
assurance is a factor in productivity assessment.assurance is a factor in productivity assessment.
Software ProductivitySoftware Productivity
Size related measures (Lines of code)
• based on some output from the software process. This may be lines
of delivered source code, object code instructions, etc.
Function-related measures
• based on an estimate of the functionality of the delivered software.
Function-points are the best known of this type of measure. Function points,
Object points
Productivity MeasuresProductivity Measures
Estimating the size of the measureEstimating the size of the measure
• e.g. how many function points or lines of code.e.g. how many function points or lines of code.
Estimating the total number of programmer months that have Estimating the total number of programmer months that have
elapsed.elapsed.
• Some problems with this. Some problems with this. e.g. what if the programmer in extreme bad mood in a certain monthe.g. what if the programmer in extreme bad mood in a certain month
Estimating contractor productivityEstimating contractor productivity
• e.g. if there needs a documentation team, you need to incorporate e.g. if there needs a documentation team, you need to incorporate
this into overall estimation.this into overall estimation.
Measurement ProblemsMeasurement Problems
All metrics based on volume/unit time are flawed because they do not All metrics based on volume/unit time are flawed because they do not
take quality into account.take quality into account.
Productivity may generally be increased at the cost of quality.Productivity may generally be increased at the cost of quality.
It is not clear how productivity/quality metrics are related.It is not clear how productivity/quality metrics are related.
If requirements are constantly changing then an approach based on If requirements are constantly changing then an approach based on
counting lines of code is not meaningful as the program itself is not static;counting lines of code is not meaningful as the program itself is not static;
Quality and ProductivityQuality and Productivity
Function Points and Lines of CodeFunction Points and Lines of Code
Function Points (FPs) can be used to estimate LOC depending on the Function Points (FPs) can be used to estimate LOC depending on the
average number of LOC per FPaverage number of LOC per FP (AVC) for a given language (AVC) for a given language
• LOC = AVC * number of function points; LOC = AVC * number of function points; AVC is a language-dependent factor varying from 200-300 for assemble AVC is a language-dependent factor varying from 200-300 for assemble
language to 2-40 for a 4GL;language to 2-40 for a 4GL;
The function point count has to be modified according to the complexity The function point count has to be modified according to the complexity
of the projectof the project
FPs are very subjective. They depend on the estimatorFPs are very subjective. They depend on the estimator
• Automatic function-point counting is impossible.Automatic function-point counting is impossible.
Function Points estimation is one of the few methods that provide a means Function Points estimation is one of the few methods that provide a means for estimation of the software cost at earlier stage of software development for estimation of the software cost at earlier stage of software development process!process!
The The COCOMO (COCOMO (Constructive Cost Constructive Cost
Model Model )) Models Models An empirical model based on project experience.An empirical model based on project experience.
Well-documented, ‘independent’ model which is not tied to a specific Well-documented, ‘independent’ model which is not tied to a specific
software vendor.software vendor.
Long history from initial version published in 1981 (COCOMO-81) Long history from initial version published in 1981 (COCOMO-81)
through various instantiations to COCOMO 2.through various instantiations to COCOMO 2.
The original COCOMO 1 is a collection of three models: The original COCOMO 1 is a collection of three models:
• Basic modelBasic model that is applied early in the project that is applied early in the project
• Intermediate modelIntermediate model that is applied after requirements acquisition that is applied after requirements acquisition
• Advanced modelAdvanced model that is applied after design is complete that is applied after design is complete
COCOMO 2 takes into account different approaches to software COCOMO 2 takes into account different approaches to software
development, reuse, etc. development, reuse, etc.
Function-Oriented MetricsFunction-Oriented Metrics
Functionality is another attribute of software size. The idea is that a product with Functionality is another attribute of software size. The idea is that a product with
more functionality will be larger in size. more functionality will be larger in size.
Function-oriented metrics are indirect measures of software which focus on Function-oriented metrics are indirect measures of software which focus on
functionality and utility. functionality and utility.
The first function-oriented metrics was proposed by Albrecht (1979~1983) who The first function-oriented metrics was proposed by Albrecht (1979~1983) who
suggested a productivity measurement approach called the suggested a productivity measurement approach called the Function PointFunction Point (FP)(FP)
method. method.
Function points (FPs) measure the amount of functionality in a system based Function points (FPs) measure the amount of functionality in a system based
upon the upon the system specificationsystem specification. .
Estimation before implementation!
Function Point (FP) /1Function Point (FP) /1
FunctionFunctionPoint (FP)Point (FP)FunctionFunction
Point (FP)Point (FP)
Inputs
Inputs
Inputs
InputsOutp
uts
Outputs
Outputs
Outputs
Data Objects
Data Objects
Data Objects
Data Objects Processes
Processes
Processes
Processes
External External inputsinputs
External External outputsoutputs
Internal FilesInternal FilesExternal Interface FilesExternal Interface Files
DataDataInquiriesInquiries
Function Point (FP) /2Function Point (FP) /2
Function Point (FP) is a weighted measure of software functionality.Function Point (FP) is a weighted measure of software functionality.
FP is computed in two steps: FP is computed in two steps:
1)1) Calculating an Calculating an Unadjusted Function point CountUnadjusted Function point Count ((UFCUFC)). .
2)2) Multiplying the UFC by a Multiplying the UFC by a Technical Complexity FactorTechnical Complexity Factor ( (TCFTCF)). .
The final (adjusted) Function Point is:The final (adjusted) Function Point is:
FP = UFC FP = UFC TCF TCF
Function Point (FP) /3Function Point (FP) /3
Counts are made for the following categories:Counts are made for the following categories:
• Number of external inputsNumber of external inputs ( (NNii):): Those items provided by the user that describe Those items provided by the user that describe
distinct application-oriented data, control information (such as file names and distinct application-oriented data, control information (such as file names and
menu selections), or outputs of other systems that enter an application and menu selections), or outputs of other systems that enter an application and
change the status of its internal logical file(s). change the status of its internal logical file(s).
• Number of external outputsNumber of external outputs ( (NNoo):): All unique data or control information All unique data or control information
produced by the software systems, e.g., reports and messages.produced by the software systems, e.g., reports and messages.
Function Point (FP) /4Function Point (FP) /4
Counts are made for the following categories:Counts are made for the following categories:• Number of external inquiriesNumber of external inquiries ( (NNqq):): All unique input/output combinations, All unique input/output combinations,
where an input causes and generates an immediate output without changing any where an input causes and generates an immediate output without changing any status of internal logical files. status of internal logical files.
• Number of external interface filesNumber of external interface files ( (NNefef):): A group of data or control information A group of data or control information passed or shared between applications, i.e., machine-readable interfaces to other passed or shared between applications, i.e., machine-readable interfaces to other systems and/or the user.systems and/or the user.
• Number of internal filesNumber of internal files ( (NNifif):): A group of data or control information that is A group of data or control information that is generated, used or maintained by the software system.generated, used or maintained by the software system.
Unadjusted FP Count (UFC)Unadjusted FP Count (UFC)
• A complexity rating is associated with each count according to function point complexity weights– e.g. if all the items take the average value, then
ItemItemWeighting FactorWeighting Factor
SimpleSimple AverageAverage ComplexComplex
External inputs (External inputs (NNii)) 33 44 66
External outputs (External outputs (NNoo)) 44 55 77
External inquiries (External inquiries (NNqq)) 33 44 66
External interface files (External interface files (NNefef)) 77 1010 1515
Internal files (Internal files (NNifif)) 55 77 1010
4 5 4 10 7i o q ef ifUFC N N N N N
Tech. Complexity Factor (TCF) /1Tech. Complexity Factor (TCF) /1
• Technical Complexity Factor (TCF) is a weighted sum of 14 components, given below:
F1F1 Reliable back-up and recoveryReliable back-up and recovery F2F2 Data communicationsData communications
F3F3 Distributed functionsDistributed functions F4F4 PerformancePerformance
F5F5 Heavily used configurationHeavily used configuration F6F6 Online data entryOnline data entry
F7F7 Operational easeOperational ease F8F8 Online updateOnline update
F9F9 Complex interfaceComplex interface F10F10 Complex processingComplex processing
F11F11 ReusabilityReusability F12F12 Installation easeInstallation ease
F13F13 Multiple sitesMultiple sites F14F14 Facilitate changeFacilitate change
Tech. Complexity Factor (TCF) /2Tech. Complexity Factor (TCF) /2
Each component is rated from 0 to 5, where 0 means the component is not Each component is rated from 0 to 5, where 0 means the component is not relevant to the system and 5 means the component is essential. relevant to the system and 5 means the component is essential.
The TCF can then be calculated as:The TCF can then be calculated as:
The TCF varies from 0.65 (if all The TCF varies from 0.65 (if all FFjj are set to 0) to 1.35 (if all are set to 0) to 1.35 (if all FFjj are set to are set to 5)5)
14
1
0.65 0.01 jj
TCF F
FP: Example /1 (cont’d)FP: Example /1 (cont’d) Ni=2Ni=2 (external inputs): document filename, personal dictionary-name (external inputs): document filename, personal dictionary-name No=3No=3 (external outputs): misspelled word report, number-of-words-processed (external outputs): misspelled word report, number-of-words-processed
message, number-of-errors-so-far message message, number-of-errors-so-far message Nq=2Nq=2 (external inquiries): words processed, errors so far (external inquiries): words processed, errors so far Nef=2Nef=2 (external files): document file, personal dictionary (external files): document file, personal dictionary Nif=1Nif=1 (internal file): dictionary (internal file): dictionary
UFC = 4UFC = 42 + 52 + 53 + 43 + 42 + 102 + 102 + 72 + 71 = 581 = 58
Suppose thatSuppose thatF1=F2=F6=F7=F8=F14= 3; F4=F10=5 and the rest are zero.F1=F2=F6=F7=F8=F14= 3; F4=F10=5 and the rest are zero.
TCF = 0.65 + 0.01(18+10) + 0.93TCF = 0.65 + 0.01(18+10) + 0.93FP = 58 FP = 58 0.93 ≈ 54 0.93 ≈ 54
FP: Example /2FP: Example /2
Consider the following system that processes various commands from the Consider the following system that processes various commands from the operator of a chemical plant. Various interactions of the system with the operator of a chemical plant. Various interactions of the system with the operator and internal and external files and systems are required operator and internal and external files and systems are required
FP: Example /2 (cont’d)FP: Example /2 (cont’d)
The system consults two databases for stored pressure and temperature. In The system consults two databases for stored pressure and temperature. In the case of emergency, the system asks the user whether to send the results the case of emergency, the system asks the user whether to send the results to an electronic emergency bulletin board or not.to an electronic emergency bulletin board or not.
Calculate the unadjusted function point count (UFC) for this system.Calculate the unadjusted function point count (UFC) for this system.
FP: Example /2 (cont’d)FP: Example /2 (cont’d)
NNii number of external inputs number of external inputs 55 NNoo number of external outputs number of external outputs 44 NNqq number of external inquiries number of external inquiries 33 NNefef number of external interface files number of external interface files 33 NNifif number of internal files number of internal files 11
4 5 4 10 7i o q ef ifUFC N N N N N
UFC = 4x5 + 5x4 + 4x3 + 10x3 + 7x1 = 89
FP vs. LOC /1FP vs. LOC /1
A number of studies have attempted to relate LOC and FP A number of studies have attempted to relate LOC and FP
metrics (Jones, 1996). metrics (Jones, 1996).
The average number of source code statements per function The average number of source code statements per function
point has been derived from case studies for numerous point has been derived from case studies for numerous
programming languages. programming languages.
Languages have been classified into different levels according Languages have been classified into different levels according
to the relationship between LOC and FP. to the relationship between LOC and FP.
FP vs. LOC /2FP vs. LOC /2
LanguageLanguage LevelLevelMinMin
(LOC)(LOC)
AverageAverage
(LOC)(LOC)
MaxMax
(LOC)(LOC)
Machine language Machine language 0.100.10 640640
AssemblyAssembly 1.001.00 237237 320320 416416
CC 2.502.50 6060 128128 170170
PascalPascal 4.004.00 9090
C++C++ 6.006.00 4040 5555 140140
Visual C++ Visual C++ 9.509.50 3434
PowerBuilder PowerBuilder 20.0020.00 1616
Excel Excel 57.0057.00 5.55.5
Code generatorsCode generators ---- 1515
FP: CriticsFP: Critics
FP is a subjective measure: affected by the selection of weights by external FP is a subjective measure: affected by the selection of weights by external users.users.
Function point calculation requires a full software system specification. It is Function point calculation requires a full software system specification. It is therefore difficult to use function points early in the software development therefore difficult to use function points early in the software development lifecycle. lifecycle.
Physical meaning of the basic unit of FP is unclear.Physical meaning of the basic unit of FP is unclear.
Unable to account for new versions of I/O, such as data streams. Unable to account for new versions of I/O, such as data streams.
Not suitable for “complex” software, e.g., real-time and embedded applications.Not suitable for “complex” software, e.g., real-time and embedded applications.
FP: Current StatusFP: Current Status 1979: Proposed by Albrecht, at IBM
1983: Gained popularity, Albrecht’s IEEE paper
1986: International FP user group established (http://www.ifpug.org)
1996~2001: IFPUG, Guidelines to software measurement
1998: ISO 14143-FSM: Functional size measurement
1999: IFPUG, FP counting practice manual, version 4.1
2000: IFPUG, The Benchmark: Release 6
Critical Points For Cost Estimation
Different techniques of cost estimation should be used when estimating
costs.
The COCOMO model takes project, product, personnel and hardware
attributes into account when predicting effort required.
Algorithmic cost models support quantitative option analysis as they allow
the costs of different options to be compared.
The time to complete a project is not proportional to the number of people
working on the project.
Critical Points For Cost Estimation
There is not a simple relationship between the price charged for a system There is not a simple relationship between the price charged for a system
and its development costs.and its development costs.
Factors affecting productivity include individual aptitude, domain Factors affecting productivity include individual aptitude, domain
experience, the development project, the project size, tool support and the experience, the development project, the project size, tool support and the
working environment.working environment.
Software may be priced to gain a contract and the functionality adjusted to Software may be priced to gain a contract and the functionality adjusted to
the pricethe price..