+ All Categories
Home > Documents > 1 Introduction to Software Cost Estimation (Chapter 23, 24) COMP SCI: Software Engineering and...

1 Introduction to Software Cost Estimation (Chapter 23, 24) COMP SCI: Software Engineering and...

Date post: 17-Dec-2015
Category:
Upload: harry-booth
View: 215 times
Download: 0 times
Share this document with a friend
Popular Tags:
55
1 Introduction to Software Introduction to Software Cost Estimation (Chapter 23, Cost Estimation (Chapter 23, 24) 24) COMP SCI: Software Engineering and COMP SCI: Software Engineering and Project Project School of Computer Science School of Computer Science The University of Adelaide The University of Adelaide
Transcript

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 estimate the cost of a software project (product)?

How to estimate the cost of a software project?

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.

Estimation TechniquesEstimation Techniques

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.

TutorialTutorial

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

Factors Affecting ProductivityFactors Affecting Productivity

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 /1FP: Example /1

Inputs OutputMessages

Inquiries

External file

Internal file

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)

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


Recommended