SlideShare a Scribd company logo
Prepared by :
Haitham Abdel-atty.
Fourat Adel
Supervised by :
Prof. Dr : Zaki Taha
Agenda
 Objectives
 Introduction
 Software productivity
 Estimation techniques
 Algorithmic cost modelling
 The COCOMO model
 Project duration and staffing
 Recent Trends
 References
Objectives
 Understanding the fundamentals of software
costing and reasons why the price of the software
may not be directly related to its development
cost.
 Understanding the three metrics that are used for
software productivity assessment .
 Understanding why different techniques should
be used for software estimation.
 Understanding the principles of the COCOMO 2
algorithmic cost estimation model.
Introduction
 Fundamental estimation questions
 How much effort is required to complete an
activity?
 How much calendar time is needed to complete an
activity?
 What is the total cost of each activity?
Introduction (Cont.)
 Computing the total cost of the software
development project involved :
 Hardware and software costs.
 Travel and training costs.
 Effort costs.
For most projects, the dominant cost is the effort cost. Computers
that are powerful enough for software development are relatively
cheap. Using electronic communications systems such as e-mail,
shared web sites and videoconferencing can significantly reduce
the travel required.
Introduction (Cont.)
 Effort costs
 Are not just the salaries of the software engineers who are involved in
the project , also include :
• Costs of providing, heating and lighting office space.
• Costs of support staff such as accountants, administrators, system
managers, cleaners and technicians.
• Costs of networking and communications.
• Costs of central facilities such as a library or recreational facilities.
• Costs of Social Security and employee benefits such as pensions
and health insurance.
Introduction (Cont.)
 Effort costs
 So that, organizations compute effort costs in terms of overhead
costs where they take the total cost of running the organization
and divide this by the number of productive staff.
 This overhead factor is usually at least twice the software
engineer’s salary, depending on the size of the organizations and
its associated overheads. Therefore, if a company pays a software
engineer $90,000 per year, its total costs are at least $180,000 per
year
 Pricing
 Classically, price is simply cost plus profit. However, the
relationship between the project cost and the price to the
customer is not usually so simple.
 Software pricing must take into account group of factors as
Market opportunity, Cost estimate uncertainty, Contractual
terms, Requirements volatility, Requirements volatility, and
Financial health
Introduction (Cont.)
 Software pricing factors
Introduction (Cont.)
 Software pricing factors
Introduction (Cont.)
Software productivity
 Productivity can be expressed as the ratio of output
to inputs used in the production process, i.e. output
per unit of input.
 Essentially, we want to measure useful functionality
produced per time unit.
 Productivity estimates are usually based on measuring attributes
of the software and dividing this by the total effort required for
development.
 There are two types of metric that have been used :
 Size-related metrics
 These are related to the size of some output from an activity. The
most commonly used size-related metric is lines of delivered
source code.
 Function-related metrics
 These are related to the overall functionality of the delivered
software. Function points and object points are the best-known
metrics of this type.
Software productivity (Cont.)
 Lines of code
 Lines of source code per programmer-month (LOC/pm) is a
widely used software productivity metric. You can compute
LOC/pm by counting the total number of lines of source code
that are delivered, then divide the count by the total time in
programmer-months required to complete the project.
 Lines of code metric is a programming language dependent ,
i.e. The lower level the language, the more productive the
programmer.
Software productivity (Cont.)
 For example, consider a software project that might be coded in
5,000 lines of assembly code or 1,500 lines of C. The assembler
programmer has a productivity higher than the high-level
language programmer.
Software productivity (Cont.)
 Function points
 Productivity is expressed as the number of function points
that are implemented per person-month.
 Function points can be computed by by measuring or
estimating the following program features :
 External inputs and outputs.
 User interactions.
 External interfaces.
 Files used by the system.
Software productivity (Cont.)
Software productivity (Cont.)
 Function points
 Some inputs and outputs, interactions. and so on are more
complex than others and take longer to implement. The
function-point metric takes this into account by multiplying the
initial function-point estimate by a complexity-weighting factor.
You should assess each of these features for complexity and
then assign the weighting factor that varies from 3 (for simple
external inputs) to 15 for complex internal files.
Software productivity (Cont.)
 Function points
 Unadjusted function-point count (UFC) can be computed by
multiplying each initial count by the estimated weight and summing
all values.
 Then modify UFC by multiply it by additional complexity factors
(degree of distributed processing, the amount of reuse, and so on.)
that are related to the complexity of the system as a whole to
produce a final function-point count for the overall system.
Software productivity (Cont.)
 Function points
 The advantage compared to size measurement (LOC/pm) is
that the complexity of the project is considered.
 The problem around function counting is that function-point
count in a program depends on the estimator. Different people
have different notions of complexity.
 Object points
 Are an alternative to function points. They can be used
with languages such as database programming languages
 Object points are not object classes that may be produced
when an object-oriented approach is taken to software
development.
Software productivity (Cont.)
 Object points
 The number of object points in a program is a weighted
estimate of :
 The number of separate screens that are displayed Simple screens
count as 1 object point, moderately complex screens count as 2,
and very complex screens count as 3 object points.
 The number of reports that are produced For simple reports,
count 2 object points, for moderately complex reports, count 5,
and difficult reports to produce , count 8 object points.
 The number of modules in programming languages such as Java
or C++ that must be developed to supplement the database
programming code Each of these modules counts as 10 object
points.
Software productivity (Cont.)
 Object points
 The advantage of object points over function points is that
they are easier to estimate from a high-level software
specification.
 Object points are only concerned with screens, reports and
modules. They are not concerned with implementation
details, and the complexity factor estimation is much
simpler.
Software productivity (Cont.)
 Factors affecting software engineering productivity
Software productivity (Cont.)
 Factors affecting software engineering productivity
Software productivity (Cont.)
 Algorithmic cost modelling.
 Expert judgement.
 Estimation by analogy.
 Parkinson's Law.
 Pricing to win.
Estimation techniques
 Algorithmic cost modelling :
 A model is developed using historical cost information
that relates some software metric (like its size) to the
project cost. An estimate is made of that metric and the
model predicts the effort required.
Estimation techniques (Cont.)
 Expert judgement :
 Several experts on the proposed software development
techniques and the application domain are consulted. They
each estimate the project cost. These estimates are
compared and discussed. The estimation process iterates
until an agreed estimate is reached.
Estimation techniques (Cont.)
 Estimation by analogy :
 This technique is applicable when other projects in the
same application domain have been completed. The cost
of a new project is estimated by analogy with these
completed projects.
Estimation techniques (Cont.)
 Parkinson's Law :
 Parkinson’s Law states that work expands to fill the time
available. The cost is determined by available resources
rather than by objective assessment. If the software has to
be delivered in 12 months and 5 people are available, the
effort required is estimated to be 60 person-months.
Estimation techniques (Cont.)
 Pricing to win :
 The software cost is estimated to be whatever the customer
has available to spend on the project. The estimated effort
depends on the customer’s budget and not on the software
functionality.
Estimation techniques (Cont.)
Algorithmic cost modelling
 Uses a mathematical formula to predict project costs
based on estimates of the project size, the number of
software engineers, and other process and product
factors.
 An algorithmic cost model can be built by analysing the
costs and attributes of completed projects and finding
the closest fit formula to actual experience.
Algorithmic cost modelling
 Effort in terms of person-months.
 A is a constant factor that depends on local
organizational practices and the type of software that is
developed.
 Size may be either an assessment of the code size of the
software or a functionality estimate.
 B usually lies between 1 and 1.5 (associated with the
size estimate).
 M is a multiplier made by combining process, product
and development attributes
i
Example:
Algorithmic models difficulties
1. It is often difficult to estimate Size at an early stage,
when only a specification is available.
2. The estimates of the factors contributing to B and M
are subjective. Estimates vary from one person to
another, depending on their background and experience
with the type of system that is being developed.
 Depends on the system information that is
available.
 If the initial estimate of effort required is x
months of effort, this range may be from 0.25x
to 4x when the system is first proposed.
The accuracy af the estimates
Fig1: Estimate uncertainty
 The COCOMO model is an empirical model that was
derived by collecting data from a large number of
software projects.
 These data were analyzed to discover formulae that
were the best fit to the observations.
 These formulae link the size of the system and product,
project and team factors to the effort to develop the
system.
The COCOMO model
 It is well documented, available in the public domain.
 It has been widely used and evaluated in a range of
organisations.
 It has a long pedigree from its first instantiation in 1981
Reasons to choose COCOMO model
 Three-level model where the levels corresponded to the
detail of the analysis of the cost estimate.
 The first level (basic) provided an initial rough
estimate.
 The second level modified this using a number of
project and process multipliers;
 The third level and the most detailed level produced
estimates for different phases of the project.
 Supports waterfall model of development
COCOMO I
 There have been radical changes to software development
since this initial version was proposed (ex:Prototyping and
incremental development)
 To take these changes into account, the COCOMO II model
recognises different approaches to software development.
 It supports a spiral model of development and embeds
several sub-models that produce increasingly detailed
estimates.
 An application-composition model
 An early design model
 A reuse model
 A post-architecture model
COCOMO II
COCOMO II Models
 It was introduced to support the estimation of effort
required for prototyping projects and for projects where
the software is developed by composing existing
components.
 PM is the effort estimate in person-months.
 NAP is the total number of application points in the delivered
system.
 %reuse is an estimate of the amount of reused code in the
development.
 PROD is the object-point productivity.
An application-composition model
 This model is used during early stages of the system
design after the requirements have been established.
 A should be 2.94 (Boehm)
 The size of the system is expressed in KSLOC, which is
the number of thousands of lines of source code.
 B reflects the increased effort required as the size of the
project increases
 M is based on a simplified set of seven project and
process characteristics that influence the estimate.
An early design model
 These characteristics used in the early design
model are
 Personnel capability (PERS)
 Product reliability and complexity (RCPX),
 Reuse required (RUSE),
 Platform difficulty(PDIF),
 Personnel experience (PREX),
 Schedule (SCED) and support facilities (FCIL).
An early design model (2)
i
Example:
 Is used to compute the effort required to integrate reusable
components and/or program code that is automatically generated by
design or program translation tools.
 For code that is automatically generated, the model estimates the
number of personmonths required to integrate this code.
 AT is the percentage of adapted code that is automatically generated
 ATPROD is the productivity of engineers in integrating such code
(2400 )
 Ex: if there is a total of 20,000 lines of white-box reused code in a
system and 30% of this is automatically generated, then the effort
required to integrate this generated code is: (20,000 * 30/100) /
2400 = 2.5 person months
A reuse model
 Once the system architecture has been designed, a more accurate
estimate of the software size can be made.
 The size estimate for the software should be more accurate by this
stage in the estimation process
 The estimate of the code size in the post-architecture model is
computed using three components:
1. An estimate of the total number of lines of new code to be
developed.
2. An estimate of the equivalent number of source lines of code
(ESLOC) calculated using the reuse model
3. An estimate of the number of lines of code that have to be
modified because of changes to the requirements.
A post-architecture model
 The relationship between the number of staff working
on a project, the total effort required and the
development time is not linear. (Why?)
 The time computation formula is the same for all
COCOMO levels:
 PM is the effort computation
 B is the exponent computed as discussed above
 (B is 1 for the early prototyping model).
Project duration and staffing
 Example: assume that 60 months of effort are
estimated to develop a software system Assume
that the value of exponent B is 1.17. From the
schedule equation, the time required to complete
the project is:
Project duration and staffing
 Learning Oriented Techniques
 It use prior and current knowledge to develop a software
estimation model. Neural network and analogy estimation
are examples.
 The neural network is trained with a series of inputs and
the correct output from the training data so as to minimize
the prediction error.
 Analogy Based Estimation is simple when provided a new
project for estimation, compare it with historical projects
to obtain the nearest project to estimate development cost
of the new project.
RECENT TRENDS
RECENT TRENDS
 Fuzzy Based Software Cost Estimation
 The effort is estimated using different
memberships function such as the Triangular
Membership Function, Gaussian Membership
Function and Trapezoidal Membership.
 Meta-heuristic and Genetic Algorithms
 are used for tuning parameters of COCOMO model
 It was observed that the model we proposed gives better
results when compared with the standard COCOMO
model.
RECENT TRENDS
 Bayesian Belief Network (BBNs)
 They are compact networks of probabilities that capture
the probabilistic relationship between variables, as well as
historical information about their relation ships.
 BBNs are very effective for modeling situations where
some information is already known and incoming data is
uncertain or partially unavailable.
 BBNs combine visual representation with a strong
mathematical background
 BBN may not cover all the cases that can appear.
RECENT TRENDS
References
1. Mukherjee, S., Bhattacharya, B., & Mandal, S. A SURVEY ON METRICS,
MODELS & TOOLS OF SOFTWARE COST ESTIMATION.
2. Waghmode, Swati, and Kishor Kolhe. "A Novel Way of Cost Estimation in
Software Project Development Based on Clustering Techniques.”
3. Bibi, S., I. Stamelos, and L. Angelis. "Bayesian belief networks as a software
productivity estimation tool." In 1st Balkan Conference in Informatics,
Thessaloniki, Greece. 2003.
4. Maleki, I., Ebrahimi, L., Jodati, S., & Ramesh, I. (2014). Analysis of Software Cost
Estimation Using Fuzzy Logic. International Journal in Foundations of Computer
Science & Technology (IJFCST), 4(3), 27-41.
5. Milos Hauskrecht, Bayesian belief networks Lecture, X4-8845, The University of
Pittsburgh
6. Hjalmarsson, Alexander, Matus Korman, and Robert Lagerström. "Software
Migration Project Cost Estimation using COCOMO II and Enterprise Architecture
Modeling." PoEM (Short Papers). 2013.
7. Odeh, Ayman Hussein. "Software Effort and Cost Estimation using Software
Requirement Specification." Science 2: 3.
8. Ian Sommerville,"Software Engineering",Addison-Wesley Longman Publishing
Co, England,8th ed,2007
9. Mizbah Fatima, “Fuzzy Based Software Cost Estimation Methods: A
Comparative Study”, International Journal for Innovative Research in Science,vol
1,dec 2014

More Related Content

PPTX
Software Cost Estimation
PPT
Software estimation
PPT
Software cost estimation
PPTX
Software project management Software economics
PPT
Software quality assurance lecture 1
PPT
Software Reengineering
PPT
Risk management in software engineering
PPTX
Cocomo model
Software Cost Estimation
Software estimation
Software cost estimation
Software project management Software economics
Software quality assurance lecture 1
Software Reengineering
Risk management in software engineering
Cocomo model

What's hot (20)

PPTX
Delphi cost estimation model
PPTX
Staffing level estimation
PPT
Software Prototyping
PPTX
Defining the Problem - Goals and requirements
PPTX
Lect2 conventional software management
PPTX
Software Cost Estimation Techniques
PPTX
Estimating Software Maintenance Costs
PPTX
Language and Processors for Requirements Specification
PPT
Unit 8-risk manaegement (1) -
PPTX
Software cost estimation techniques presentation
DOCX
Spm unit1
PPT
Software design
PPTX
Phased life cycle model
PPTX
Software Engineering Practices and Issues.pptx
PDF
Software Maintenance and Evolution
DOCX
Software quality management lecture notes
PPT
Software process and project metrics
PPTX
Software project planning
PPTX
Software requirement and specification
PPTX
Software cost estimation
Delphi cost estimation model
Staffing level estimation
Software Prototyping
Defining the Problem - Goals and requirements
Lect2 conventional software management
Software Cost Estimation Techniques
Estimating Software Maintenance Costs
Language and Processors for Requirements Specification
Unit 8-risk manaegement (1) -
Software cost estimation techniques presentation
Spm unit1
Software design
Phased life cycle model
Software Engineering Practices and Issues.pptx
Software Maintenance and Evolution
Software quality management lecture notes
Software process and project metrics
Software project planning
Software requirement and specification
Software cost estimation
Ad

Viewers also liked (6)

PDF
Chapter 6 software metrics
PPTX
Estimation techniques and software metrics
PDF
Software Metrics
PPT
Software Metrics
PPT
Software cost estimation
Chapter 6 software metrics
Estimation techniques and software metrics
Software Metrics
Software Metrics
Software cost estimation
Ad

Similar to Software cost estimation (20)

PPT
Ch26
PPT
spm cost estmate slides for bca 4-195245927.ppt
PPT
cost factor.ppt
PPT
Software Cost Estimation
PPT
SW_Cost_Estimation.ppt
PPT
21UCAE52 Software Project Management.ppt
PPTX
CS8494 SOFTWARE ENGINEERING Unit-5
PPT
Software Cost Estimation in Software Engineering SE23
PPTX
Metrics for project size estimation
PPTX
Cost estimation techniques
PPTX
Decomposition technique In Software Engineering
PPT
Hard work matters for everyone in everytbing
PPT
Project management
PPTX
Software Engineering Fundamentals in Computer Science
PPTX
Estimation sharbani bhattacharya
PPTX
SE-Lecture-5.pptx
PPT
software project management.lpu.slide.ansh.gupta
PPTX
SE_Unit 2.pptx
PPTX
Effort estimation( software Engineering)
PPTX
Exp 02-COCOMO (1).pptx
Ch26
spm cost estmate slides for bca 4-195245927.ppt
cost factor.ppt
Software Cost Estimation
SW_Cost_Estimation.ppt
21UCAE52 Software Project Management.ppt
CS8494 SOFTWARE ENGINEERING Unit-5
Software Cost Estimation in Software Engineering SE23
Metrics for project size estimation
Cost estimation techniques
Decomposition technique In Software Engineering
Hard work matters for everyone in everytbing
Project management
Software Engineering Fundamentals in Computer Science
Estimation sharbani bhattacharya
SE-Lecture-5.pptx
software project management.lpu.slide.ansh.gupta
SE_Unit 2.pptx
Effort estimation( software Engineering)
Exp 02-COCOMO (1).pptx

More from Haitham Ahmed (6)

PPTX
Time series
PPTX
Hidden markov model
PPTX
Image denoising
PPTX
Comparison of image segmentation
PPTX
Security in distributed systems
PPTX
Color models
Time series
Hidden markov model
Image denoising
Comparison of image segmentation
Security in distributed systems
Color models

Recently uploaded (20)

PPTX
ai tools demonstartion for schools and inter college
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Understanding Forklifts - TECH EHS Solution
PDF
AI in Product Development-omnex systems
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Nekopoi APK 2025 free lastest update
PDF
top salesforce developer skills in 2025.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Online Work Permit System for Fast Permit Processing
ai tools demonstartion for schools and inter college
Upgrade and Innovation Strategies for SAP ERP Customers
ISO 45001 Occupational Health and Safety Management System
Design an Analysis of Algorithms I-SECS-1021-03
Understanding Forklifts - TECH EHS Solution
AI in Product Development-omnex systems
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
VVF-Customer-Presentation2025-Ver1.9.pptx
CHAPTER 2 - PM Management and IT Context
Nekopoi APK 2025 free lastest update
top salesforce developer skills in 2025.pdf
PTS Company Brochure 2025 (1).pdf.......
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Design an Analysis of Algorithms II-SECS-1021-03
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Wondershare Filmora 15 Crack With Activation Key [2025
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Online Work Permit System for Fast Permit Processing

Software cost estimation

  • 1. Prepared by : Haitham Abdel-atty. Fourat Adel Supervised by : Prof. Dr : Zaki Taha
  • 2. Agenda  Objectives  Introduction  Software productivity  Estimation techniques  Algorithmic cost modelling  The COCOMO model  Project duration and staffing  Recent Trends  References
  • 3. Objectives  Understanding the fundamentals of software costing and reasons why the price of the software may not be directly related to its development cost.  Understanding the three metrics that are used for software productivity assessment .  Understanding why different techniques should be used for software estimation.  Understanding the principles of the COCOMO 2 algorithmic cost estimation model.
  • 4. Introduction  Fundamental estimation questions  How much effort is required to complete an activity?  How much calendar time is needed to complete an activity?  What is the total cost of each activity?
  • 5. Introduction (Cont.)  Computing the total cost of the software development project involved :  Hardware and software costs.  Travel and training costs.  Effort costs. For most projects, the dominant cost is the effort cost. Computers that are powerful enough for software development are relatively cheap. Using electronic communications systems such as e-mail, shared web sites and videoconferencing can significantly reduce the travel required.
  • 6. Introduction (Cont.)  Effort costs  Are not just the salaries of the software engineers who are involved in the project , also include : • Costs of providing, heating and lighting office space. • Costs of support staff such as accountants, administrators, system managers, cleaners and technicians. • Costs of networking and communications. • Costs of central facilities such as a library or recreational facilities. • Costs of Social Security and employee benefits such as pensions and health insurance.
  • 7. Introduction (Cont.)  Effort costs  So that, organizations compute effort costs in terms of overhead costs where they take the total cost of running the organization and divide this by the number of productive staff.  This overhead factor is usually at least twice the software engineer’s salary, depending on the size of the organizations and its associated overheads. Therefore, if a company pays a software engineer $90,000 per year, its total costs are at least $180,000 per year
  • 8.  Pricing  Classically, price is simply cost plus profit. However, the relationship between the project cost and the price to the customer is not usually so simple.  Software pricing must take into account group of factors as Market opportunity, Cost estimate uncertainty, Contractual terms, Requirements volatility, Requirements volatility, and Financial health Introduction (Cont.)
  • 9.  Software pricing factors Introduction (Cont.)
  • 10.  Software pricing factors Introduction (Cont.)
  • 11. Software productivity  Productivity can be expressed as the ratio of output to inputs used in the production process, i.e. output per unit of input.  Essentially, we want to measure useful functionality produced per time unit.
  • 12.  Productivity estimates are usually based on measuring attributes of the software and dividing this by the total effort required for development.  There are two types of metric that have been used :  Size-related metrics  These are related to the size of some output from an activity. The most commonly used size-related metric is lines of delivered source code.  Function-related metrics  These are related to the overall functionality of the delivered software. Function points and object points are the best-known metrics of this type. Software productivity (Cont.)
  • 13.  Lines of code  Lines of source code per programmer-month (LOC/pm) is a widely used software productivity metric. You can compute LOC/pm by counting the total number of lines of source code that are delivered, then divide the count by the total time in programmer-months required to complete the project.  Lines of code metric is a programming language dependent , i.e. The lower level the language, the more productive the programmer. Software productivity (Cont.)
  • 14.  For example, consider a software project that might be coded in 5,000 lines of assembly code or 1,500 lines of C. The assembler programmer has a productivity higher than the high-level language programmer. Software productivity (Cont.)
  • 15.  Function points  Productivity is expressed as the number of function points that are implemented per person-month.  Function points can be computed by by measuring or estimating the following program features :  External inputs and outputs.  User interactions.  External interfaces.  Files used by the system. Software productivity (Cont.)
  • 16. Software productivity (Cont.)  Function points  Some inputs and outputs, interactions. and so on are more complex than others and take longer to implement. The function-point metric takes this into account by multiplying the initial function-point estimate by a complexity-weighting factor. You should assess each of these features for complexity and then assign the weighting factor that varies from 3 (for simple external inputs) to 15 for complex internal files.
  • 17. Software productivity (Cont.)  Function points  Unadjusted function-point count (UFC) can be computed by multiplying each initial count by the estimated weight and summing all values.  Then modify UFC by multiply it by additional complexity factors (degree of distributed processing, the amount of reuse, and so on.) that are related to the complexity of the system as a whole to produce a final function-point count for the overall system.
  • 18. Software productivity (Cont.)  Function points  The advantage compared to size measurement (LOC/pm) is that the complexity of the project is considered.  The problem around function counting is that function-point count in a program depends on the estimator. Different people have different notions of complexity.
  • 19.  Object points  Are an alternative to function points. They can be used with languages such as database programming languages  Object points are not object classes that may be produced when an object-oriented approach is taken to software development. Software productivity (Cont.)
  • 20.  Object points  The number of object points in a program is a weighted estimate of :  The number of separate screens that are displayed Simple screens count as 1 object point, moderately complex screens count as 2, and very complex screens count as 3 object points.  The number of reports that are produced For simple reports, count 2 object points, for moderately complex reports, count 5, and difficult reports to produce , count 8 object points.  The number of modules in programming languages such as Java or C++ that must be developed to supplement the database programming code Each of these modules counts as 10 object points. Software productivity (Cont.)
  • 21.  Object points  The advantage of object points over function points is that they are easier to estimate from a high-level software specification.  Object points are only concerned with screens, reports and modules. They are not concerned with implementation details, and the complexity factor estimation is much simpler. Software productivity (Cont.)
  • 22.  Factors affecting software engineering productivity Software productivity (Cont.)
  • 23.  Factors affecting software engineering productivity Software productivity (Cont.)
  • 24.  Algorithmic cost modelling.  Expert judgement.  Estimation by analogy.  Parkinson's Law.  Pricing to win. Estimation techniques
  • 25.  Algorithmic cost modelling :  A model is developed using historical cost information that relates some software metric (like its size) to the project cost. An estimate is made of that metric and the model predicts the effort required. Estimation techniques (Cont.)
  • 26.  Expert judgement :  Several experts on the proposed software development techniques and the application domain are consulted. They each estimate the project cost. These estimates are compared and discussed. The estimation process iterates until an agreed estimate is reached. Estimation techniques (Cont.)
  • 27.  Estimation by analogy :  This technique is applicable when other projects in the same application domain have been completed. The cost of a new project is estimated by analogy with these completed projects. Estimation techniques (Cont.)
  • 28.  Parkinson's Law :  Parkinson’s Law states that work expands to fill the time available. The cost is determined by available resources rather than by objective assessment. If the software has to be delivered in 12 months and 5 people are available, the effort required is estimated to be 60 person-months. Estimation techniques (Cont.)
  • 29.  Pricing to win :  The software cost is estimated to be whatever the customer has available to spend on the project. The estimated effort depends on the customer’s budget and not on the software functionality. Estimation techniques (Cont.)
  • 30. Algorithmic cost modelling  Uses a mathematical formula to predict project costs based on estimates of the project size, the number of software engineers, and other process and product factors.  An algorithmic cost model can be built by analysing the costs and attributes of completed projects and finding the closest fit formula to actual experience.
  • 31. Algorithmic cost modelling  Effort in terms of person-months.  A is a constant factor that depends on local organizational practices and the type of software that is developed.  Size may be either an assessment of the code size of the software or a functionality estimate.  B usually lies between 1 and 1.5 (associated with the size estimate).  M is a multiplier made by combining process, product and development attributes
  • 33. Algorithmic models difficulties 1. It is often difficult to estimate Size at an early stage, when only a specification is available. 2. The estimates of the factors contributing to B and M are subjective. Estimates vary from one person to another, depending on their background and experience with the type of system that is being developed.
  • 34.  Depends on the system information that is available.  If the initial estimate of effort required is x months of effort, this range may be from 0.25x to 4x when the system is first proposed. The accuracy af the estimates Fig1: Estimate uncertainty
  • 35.  The COCOMO model is an empirical model that was derived by collecting data from a large number of software projects.  These data were analyzed to discover formulae that were the best fit to the observations.  These formulae link the size of the system and product, project and team factors to the effort to develop the system. The COCOMO model
  • 36.  It is well documented, available in the public domain.  It has been widely used and evaluated in a range of organisations.  It has a long pedigree from its first instantiation in 1981 Reasons to choose COCOMO model
  • 37.  Three-level model where the levels corresponded to the detail of the analysis of the cost estimate.  The first level (basic) provided an initial rough estimate.  The second level modified this using a number of project and process multipliers;  The third level and the most detailed level produced estimates for different phases of the project.  Supports waterfall model of development COCOMO I
  • 38.  There have been radical changes to software development since this initial version was proposed (ex:Prototyping and incremental development)  To take these changes into account, the COCOMO II model recognises different approaches to software development.  It supports a spiral model of development and embeds several sub-models that produce increasingly detailed estimates.  An application-composition model  An early design model  A reuse model  A post-architecture model COCOMO II
  • 40.  It was introduced to support the estimation of effort required for prototyping projects and for projects where the software is developed by composing existing components.  PM is the effort estimate in person-months.  NAP is the total number of application points in the delivered system.  %reuse is an estimate of the amount of reused code in the development.  PROD is the object-point productivity. An application-composition model
  • 41.  This model is used during early stages of the system design after the requirements have been established.  A should be 2.94 (Boehm)  The size of the system is expressed in KSLOC, which is the number of thousands of lines of source code.  B reflects the increased effort required as the size of the project increases  M is based on a simplified set of seven project and process characteristics that influence the estimate. An early design model
  • 42.  These characteristics used in the early design model are  Personnel capability (PERS)  Product reliability and complexity (RCPX),  Reuse required (RUSE),  Platform difficulty(PDIF),  Personnel experience (PREX),  Schedule (SCED) and support facilities (FCIL). An early design model (2)
  • 44.  Is used to compute the effort required to integrate reusable components and/or program code that is automatically generated by design or program translation tools.  For code that is automatically generated, the model estimates the number of personmonths required to integrate this code.  AT is the percentage of adapted code that is automatically generated  ATPROD is the productivity of engineers in integrating such code (2400 )  Ex: if there is a total of 20,000 lines of white-box reused code in a system and 30% of this is automatically generated, then the effort required to integrate this generated code is: (20,000 * 30/100) / 2400 = 2.5 person months A reuse model
  • 45.  Once the system architecture has been designed, a more accurate estimate of the software size can be made.  The size estimate for the software should be more accurate by this stage in the estimation process  The estimate of the code size in the post-architecture model is computed using three components: 1. An estimate of the total number of lines of new code to be developed. 2. An estimate of the equivalent number of source lines of code (ESLOC) calculated using the reuse model 3. An estimate of the number of lines of code that have to be modified because of changes to the requirements. A post-architecture model
  • 46.  The relationship between the number of staff working on a project, the total effort required and the development time is not linear. (Why?)  The time computation formula is the same for all COCOMO levels:  PM is the effort computation  B is the exponent computed as discussed above  (B is 1 for the early prototyping model). Project duration and staffing
  • 47.  Example: assume that 60 months of effort are estimated to develop a software system Assume that the value of exponent B is 1.17. From the schedule equation, the time required to complete the project is: Project duration and staffing
  • 48.  Learning Oriented Techniques  It use prior and current knowledge to develop a software estimation model. Neural network and analogy estimation are examples.  The neural network is trained with a series of inputs and the correct output from the training data so as to minimize the prediction error.  Analogy Based Estimation is simple when provided a new project for estimation, compare it with historical projects to obtain the nearest project to estimate development cost of the new project. RECENT TRENDS
  • 49. RECENT TRENDS  Fuzzy Based Software Cost Estimation  The effort is estimated using different memberships function such as the Triangular Membership Function, Gaussian Membership Function and Trapezoidal Membership.
  • 50.  Meta-heuristic and Genetic Algorithms  are used for tuning parameters of COCOMO model  It was observed that the model we proposed gives better results when compared with the standard COCOMO model. RECENT TRENDS
  • 51.  Bayesian Belief Network (BBNs)  They are compact networks of probabilities that capture the probabilistic relationship between variables, as well as historical information about their relation ships.  BBNs are very effective for modeling situations where some information is already known and incoming data is uncertain or partially unavailable.  BBNs combine visual representation with a strong mathematical background  BBN may not cover all the cases that can appear. RECENT TRENDS
  • 52. References 1. Mukherjee, S., Bhattacharya, B., & Mandal, S. A SURVEY ON METRICS, MODELS & TOOLS OF SOFTWARE COST ESTIMATION. 2. Waghmode, Swati, and Kishor Kolhe. "A Novel Way of Cost Estimation in Software Project Development Based on Clustering Techniques.” 3. Bibi, S., I. Stamelos, and L. Angelis. "Bayesian belief networks as a software productivity estimation tool." In 1st Balkan Conference in Informatics, Thessaloniki, Greece. 2003. 4. Maleki, I., Ebrahimi, L., Jodati, S., & Ramesh, I. (2014). Analysis of Software Cost Estimation Using Fuzzy Logic. International Journal in Foundations of Computer Science & Technology (IJFCST), 4(3), 27-41. 5. Milos Hauskrecht, Bayesian belief networks Lecture, X4-8845, The University of Pittsburgh 6. Hjalmarsson, Alexander, Matus Korman, and Robert Lagerström. "Software Migration Project Cost Estimation using COCOMO II and Enterprise Architecture Modeling." PoEM (Short Papers). 2013. 7. Odeh, Ayman Hussein. "Software Effort and Cost Estimation using Software Requirement Specification." Science 2: 3. 8. Ian Sommerville,"Software Engineering",Addison-Wesley Longman Publishing Co, England,8th ed,2007 9. Mizbah Fatima, “Fuzzy Based Software Cost Estimation Methods: A Comparative Study”, International Journal for Innovative Research in Science,vol 1,dec 2014