SlideShare a Scribd company logo
1 of 37
Algorithmic Software Cost Estimation or Modeling
10/12/2014 Chapter 23 Project Planning 1
Estimation Uncertainty vs SDLC Phase
10/12/2014 Chapter 23 Project Planning 2
AVC vs Programming Language
10/12/2014 Chapter 23 Project Planning 3
Algorithmic cost modelling
 Cost is estimated as a mathematical function of
product, project and process attributes whose
values are estimated by project managers:
 Effort = A * SizeB * M
 A is an organisation-dependent constant,
 B reflects the disproportionate effort for large projects and
 M is a multiplier reflecting product, process and people attributes.
 The most commonly used product attribute for cost
estimation is code size.
 Most models are similar but they use different values
for A, B and M.
10/12/2014 Chapter 23 Project Planning 4
COCOMO cost modeling
 An empirical model based on project experience.
 Well-documented, ‘independent’ model which is not
tied to a specific software vendor.
 Long history from initial version published in 1981
(COCOMO-81) through various instantiations to
COCOMO 2.
 COCOMO 2 takes into account different approaches to
software development, reuse, etc.
10/12/2014 Chapter 23 Project Planning 5
COCOMO 81 Model - Example:
Successful Software Engineers (SSE) has been contracted to
develop a full-screen editor, which supports a number of
programming languages.
The development team did not write similar editors before
in addition to the new programming language used in
developing this application.
Also, it is likely that new programmers, who have few years
of programming in the development environment, will join
the development team.
10/12/2014 Chapter 23 Project Planning 6
COCOMO 81 Model - Example:
The main required components of this system are :
 Screen-Edit : 1500 LOC.
 Command Language Interpreter : 1500 LOC.
 I/O : 500 LOC.
 Cursor movement : 1500 LOC.
 Multi-Screen windowing : 2000 LOC.
 Interface to OS : 1000 LOC.
 Use the COCOMO 81 model to estimate the total effort required to
develop the above editor.
 Also, produce a phase-wise distribution of this estimated effort
10/12/2014 Chapter 23 Project Planning 7
COCOMO 81 Model – A & B Values
10/12/2014 Chapter 23 Project Planning 8
Tables 4.1 from :
Jalote, P. An Integrated Approach to Software Engineering. Springer, 1997.
COCOMO 81 Model
M = EAF (Effort Adjustment Factors)
10/12/2014 Chapter 23 Project Planning 9
Table 4.2 from :
Jalote, P. An Integrated Approach to Software Engineering. Springer, 1997.
COCOMO 81 Model
Phase-wise Distribution of Effort
10/12/2014 Chapter 23 Project Planning 10
Table 4.3 from :
Jalote, P. An Integrated Approach to Software Engineering. Springer, 1997.
COCOMO 81 Model - Example:
 Semi-detached project : This project is not related to an
embedded system and is a new project from both its nature
and the programming language to be used. So, it is not
organic and fits in the semi-detached category.
 E (Effort) = Ei * EAF
 Ei = a SIZE b : a = 3.0, b=1.12 (semi-detached project)
 Ei = 3.0 (1.5+1.5 + 0.5 + 1.5 + 2.0 + 1.0)1.12 = 30.8 PM
10/12/2014 Chapter 23 Project Planning 11
COCOMO 81 Model - Example:
ACAP and AEXP are high, LEXP and PCAP are low, and
other factors are assumed to be nominal.
ACAP: Analyst Capability
LEXP: Programming Language Experience
AEXP: Application Experience
PCAP: Programmer Capability
• EAF = ACAP * LEXP * AEXP * PCAP
= 0.86 * 1.07 * 0.91 * 1.17 = 0.9797
• E = 0.9797 * 30.8 = 30.176 PM
Chapter 23 Project Planning 12
COCOMO 81 Model - Example:
Phase-wise distribution :
• Product design = 30.176 * 0.16 = 4.828 PM
• Detailed design = 30.176 * 0.25 = 7.544 PM
• Code & Unit Testing = 30.176 * 0.4 = 12.07 PM
• Integration & Testing = 30.176 * 0.19 = 5.733 PM
Chapter 23 Project Planning 13
Estimation accuracy
 The size of a software system can only be known
accurately when it is finished.
 Several factors influence the final size
 Use of reused systems and components;
 Programming language;
 Distribution of system.
 As the development process progresses then the
size estimate becomes more accurate.
 The estimates of the factors contributing to B and M
are subjective and vary according to the judgment of
the estimator.
10/12/2014 Chapter 23 Project Planning 14
Effectiveness of algorithmic models
 Algorithmic cost models are a systematic way to
estimate the effort required to develop a system.
 However, these models are:
 complex and difficult to use.
 There are many attributes and considerable scope for
uncertainty in estimating their values.
 This complexity means that the practical application of
algorithmic cost modeling has been limited to a
relatively small number of large companies, mostly
working in defense and aerospace systems
engineering.
10/12/2014 Chapter 23 Project Planning 15
Estimation methods
 Each method has strengths and weaknesses
 Estimation should be based on several methods
 If these do not return approximately the same result,
there is insufficient information available
 Some action should be taken to find out more in
order to make more accurate estimates
 ??? Pricing to win is sometimes the only applicable
method
COCOMO 2 models
 COCOMO 2 incorporates a range of sub-models that produce
increasingly detailed software estimates.
 The sub-models in COCOMO 2 are:
 Application composition model. Used when software is
composed from existing parts.
 Early design model. Used when requirements are available but
design has not yet started.
 Reuse model. Used to compute the effort of integrating reusable
components.
 Post-architecture model. Used once the system architecture has
been designed and more information about the system is
available.
10/12/2014 Chapter 23 Project Planning 17
COCOMO estimation models
10/12/2014 Chapter 23 Project Planning 18
Application composition model
 Supports prototyping projects and projects where there
is extensive reuse.
 Based on standard estimates of developer productivity in
application (object) points/month.
 Takes software tool use into account.
 Formula is
 PM = ( NAP * (1 - %reuse/100 ) ) / PROD
 PM is the effort in person-months, NAP is the number of
application points and PROD is the productivity.
10/12/2014 Chapter 23 Project Planning 19
Application-point productivity
Developer’s
experience
and capability
Very low Low Nominal High Very high
ICASE maturity
and capability
Very low Low Nominal High Very high
PROD
(NAP/month)
4 7 13 25 50
10/12/2014 Chapter 23 Project Planning 20
Early design model
 Estimates can be made after the requirements have
been agreed.
 Based on a standard formula for algorithmic models
 PM = A * SizeB * M where
 M = PERS * RCPX * RUSE * PDIF * PREX * FCIL * SCED;
 A = 2.94 in initial calibration,
 Size in KLOC,
 B varies from 1.1 to 1.24 depending on novelty of the project,
development flexibility, risk management approaches and
the process maturity.
10/12/2014 Chapter 23 Project Planning 21
Multipliers
 Multipliers reflect the capability of the developers,
the non-functional requirements, the familiarity
with the development platform, etc.
 RCPX - product reliability and complexity;
 RUSE - the reuse required;
 PDIF - platform difficulty;
 PREX - personnel experience;
 PERS - personnel capability;
 SCED - required schedule;
 FCIL - the team support facilities.
10/12/2014 Chapter 23 Project Planning 22
The reuse model
 Takes into account black-box code that is reused without
change and code that has to be adapted to integrate it with
new code.
 There are two versions:
 Black-box reuse, where code is not modified. An effort estimate
(PM) is computed.
 White-box reuse, where code is modified. A size estimate
equivalent to the number of lines of new source code is
computed. This then adjusts the size estimate for new code.
10/12/2014 Chapter 23 Project Planning 23
Reuse Model Estimates 1
 For generated code:
 PM = (ASLOC * AT/100) / ATPROD
 ASLOC is the Number of Lines of Generated Code (reused code).
 AT is the Percentage of Code Automatically Generated.
 ATPROD is the Productivity of Engineers in Integrating this Code.
Boehm, et al. (2000) measured ATPROD to be 2,400 source lines
of code per month.
10/12/2014 Chapter 23 Project Planning 24
Reuse Model Estimates 2
 When code has to be understood and integrated:
 ESLOC = ASLOC * (1-AT/100) * AAM
 ASLOC and AT as before.
 AAM is the adaptation adjustment multiplier computed from the
(AAF) costs of changing the reused code, the (SU: 50 for complex
systems to 1o OO code) costs of understanding how to integrate the
code and (AA: 0 to 8 depending on the mount of effort required) the
costs of reuse decision making.
 AAM = Sum (AAF + SU + AA)
 Then, apply the standard estimation formula to calculate the total
effort required. Therefore, use Size = ESLOC to apply:
• PM = A * SizeB * M
10/12/2014 Chapter 23 Project Planning 25
Calculating AAF (Adaptation Assessment Factor)
AAF = UNFM(DM) + UNFM(CM) + UNFM(IM)
 % of design modified (DM),
 % of code modified (CM),
 % of modification to the original integration effort
required for integrating the reused software (IM).
10/12/2014 Chapter 23 Project Planning 26
Post-architecture level
 Uses the same formula as the early design model but with
17 rather than 7 associated multipliers.
 PM = A * SizeB * M
 The Code Size is estimated as:
 Number of lines of new code to be developed;
 Estimate of equivalent number of lines of new code computed using
the reuse model;
 An estimate of the number of lines of code that have to be
modified according to requirements changes.
10/12/2014 Chapter 23 Project Planning 27
The B Exponent Term
 This depends on 5 scale factors (see next slide). Their
sum/100 is added to 1.01
 A company takes on a project in a new domain. The
client has not defined the process to be used and has not
allowed time for risk analysis. The company has a CMM
level 2 rating.
 Precedenteness - new project (4)
 Development flexibility - no client involvement - Very high (1)
 Architecture/risk resolution - No risk analysis - V. Low .(5)
 Team cohesion - new team - nominal (3)
 Process maturity - some control - nominal (3)
 Scale factor is therefore (4+1+5+3+3)/100 + 1.01 = 1.17
10/12/2014 Chapter 23 Project Planning 28
Scale factors used in the exponent computation
in the post-architecture model, B Exponent
Term: 0, extra high .. 5 (very low)
Scale factor Explanation
Architecture/risk
resolution
Reflects the extent of risk analysis carried out. Very low means little
analysis; extra-high means a complete and thorough risk analysis.
Development
flexibility
Reflects the degree of flexibility in the development process. Very
low means a prescribed process is used; extra-high means that the
client sets only general goals.
Precedentedness Reflects the previous experience of the organization with this type of
project. Very low means no previous experience; extra-high means
that the organization is completely familiar with this application domain.
Process maturity Reflects the process maturity of the organization. The computation of
this value depends on the CMM Maturity Questionnaire, but an
estimate can be achieved by subtracting the CMM process maturity
level from 5.
Team cohesion Reflects how well the development team knows each other and work
together. Very low means very difficult interactions; extra-high means
an integrated and effective team with no communication problems.
10/12/2014 Chapter 23 Project Planning 29
Multipliers
 Product attributes
 Concerned with required characteristics of the software
product being developed.
 Computer attributes
 Constraints imposed on the software by the hardware
platform.
 Personnel attributes
 Multipliers that take the experience and capabilities of the
people working on the project into account.
 Project attributes
 Concerned with the particular characteristics of the
software development project.
10/12/2014 Chapter 23 Project Planning 30
10/12/2014 Chapter 23 Project Planning 31
The effect of cost drivers on effort estimates
Exponent value 1.17
System size (including factors for
reuse and requirements volatility)
128,000 DSI
Initial COCOMO estimate
without cost drivers
730 person-months
Reliability Very high, multiplier = 1.39
Complexity Very high, multiplier = 1.3
Memory constraint High, multiplier = 1.21
Tool use Low, multiplier = 1.12
Schedule Accelerated, multiplier = 1.29
Adjusted COCOMO estimate 2,306 person-months
10/12/2014 Chapter 23 Project Planning 32
The effect of cost drivers on effort estimates
Exponent value 1.17
Reliability Very low, multiplier = 0.75
Complexity Very low, multiplier = 0.75
Memory constraint None, multiplier = 1
Tool use Very high, multiplier = 0.72
Schedule Normal, multiplier = 1
Adjusted COCOMO estimate 295 person-months
10/12/2014 Chapter 23 Project Planning 33
Good Web Link for COCOMO II Model with
example and tooling
 Software Project Cost Estimates Using COCOMO II
Model
https://www.codeproject.com/Articles/9266/Software-
Project-Cost-Estimates-Using-COCOMO-II-Mo
10/12/2014 Chapter 23 Project Planning 34
Project duration and staffing
 As well as effort estimation, managers must estimate the
calendar time required to complete a project and when
staff will be required.
 Calendar time can be estimated using a COCOMO 2
formula
 TDEV = 3 * (PM)(0.33+0.2*(B-1.01))
 For B =1.17 and PM=70 then TDEV = 3 * 700.36 = 10.73 (11) months
 PM is the effort computation and B is the exponent computed as
discussed above (B is 1 for the early prototyping model).
 This computation predicts the nominal schedule for the project.
 The time required is independent of the number of
people working on the project.
10/12/2014 Chapter 23 Project Planning 35
Staffing requirements
 Staff required can’t be computed by diving the
development time by the required schedule.
 The number of people working on a project varies
depending on the phase of the project.
 The more people who work on the project, the more
total effort is usually required.
 A very rapid build-up of people often correlates with
schedule slippage.
10/12/2014 Chapter 23 Project Planning 36
Key points
 Estimation techniques for software may be experience-based,
where managers judge the effort required, or algorithmic, where
the effort required is computed from other estimated project
parameters.
 The early COMOMO 81, 1981 Cost Estimation Model
 The COCOMO II costing model is a mature algorithmic cost model
that takes project, product, hardware and personnel attributes into
account when formulating a cost estimate.
10/12/2014 Chapter 23 Project Planning 37

More Related Content

Similar to Algorithmic Software Cost Estimation V2(1) (1).pptx

21UCAE52 Software Project Management.ppt
21UCAE52 Software Project Management.ppt21UCAE52 Software Project Management.ppt
21UCAE52 Software Project Management.pptssuser7f90ae
 
CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5SIMONTHOMAS S
 
Software cost estimation project
Software  cost estimation projectSoftware  cost estimation project
Software cost estimation projectShashank Puppala
 
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWAREA METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWAREijseajournal
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceArti Parab Academics
 
Software Estimation Part II
Software Estimation Part IISoftware Estimation Part II
Software Estimation Part IIsslovepk
 
Estimation techniques and risk management
Estimation techniques and risk managementEstimation techniques and risk management
Estimation techniques and risk managementPurushottam Basnet
 
IRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation TechniquesIRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation TechniquesIRJET Journal
 
CONSTRUCTIVE COST MODEL TOOLS
CONSTRUCTIVE COST MODEL TOOLS CONSTRUCTIVE COST MODEL TOOLS
CONSTRUCTIVE COST MODEL TOOLS Hossam Nabih
 
Software Project Planning 1
Software Project Planning 1Software Project Planning 1
Software Project Planning 1Gagan Deep
 

Similar to Algorithmic Software Cost Estimation V2(1) (1).pptx (20)

21UCAE52 Software Project Management.ppt
21UCAE52 Software Project Management.ppt21UCAE52 Software Project Management.ppt
21UCAE52 Software Project Management.ppt
 
CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5
 
SW_Cost_Estimation.ppt
SW_Cost_Estimation.pptSW_Cost_Estimation.ppt
SW_Cost_Estimation.ppt
 
Software cost estimation project
Software  cost estimation projectSoftware  cost estimation project
Software cost estimation project
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWAREA METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
 
cost-estimation-tutorial
cost-estimation-tutorialcost-estimation-tutorial
cost-estimation-tutorial
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer Science
 
COCOMO model
COCOMO modelCOCOMO model
COCOMO model
 
Cocomomodel
CocomomodelCocomomodel
Cocomomodel
 
COCOMO Model
COCOMO ModelCOCOMO Model
COCOMO Model
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Software Estimation Part II
Software Estimation Part IISoftware Estimation Part II
Software Estimation Part II
 
LECT9.ppt
LECT9.pptLECT9.ppt
LECT9.ppt
 
cocomo.pdf
cocomo.pdfcocomo.pdf
cocomo.pdf
 
Estimation techniques and risk management
Estimation techniques and risk managementEstimation techniques and risk management
Estimation techniques and risk management
 
IRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation TechniquesIRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation Techniques
 
CONSTRUCTIVE COST MODEL TOOLS
CONSTRUCTIVE COST MODEL TOOLS CONSTRUCTIVE COST MODEL TOOLS
CONSTRUCTIVE COST MODEL TOOLS
 
Software Project Planning 1
Software Project Planning 1Software Project Planning 1
Software Project Planning 1
 

Recently uploaded

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 

Recently uploaded (20)

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 

Algorithmic Software Cost Estimation V2(1) (1).pptx

  • 1. Algorithmic Software Cost Estimation or Modeling 10/12/2014 Chapter 23 Project Planning 1
  • 2. Estimation Uncertainty vs SDLC Phase 10/12/2014 Chapter 23 Project Planning 2
  • 3. AVC vs Programming Language 10/12/2014 Chapter 23 Project Planning 3
  • 4. Algorithmic cost modelling  Cost is estimated as a mathematical function of product, project and process attributes whose values are estimated by project managers:  Effort = A * SizeB * M  A is an organisation-dependent constant,  B reflects the disproportionate effort for large projects and  M is a multiplier reflecting product, process and people attributes.  The most commonly used product attribute for cost estimation is code size.  Most models are similar but they use different values for A, B and M. 10/12/2014 Chapter 23 Project Planning 4
  • 5. COCOMO cost modeling  An empirical model based on project experience.  Well-documented, ‘independent’ model which is not tied to a specific software vendor.  Long history from initial version published in 1981 (COCOMO-81) through various instantiations to COCOMO 2.  COCOMO 2 takes into account different approaches to software development, reuse, etc. 10/12/2014 Chapter 23 Project Planning 5
  • 6. COCOMO 81 Model - Example: Successful Software Engineers (SSE) has been contracted to develop a full-screen editor, which supports a number of programming languages. The development team did not write similar editors before in addition to the new programming language used in developing this application. Also, it is likely that new programmers, who have few years of programming in the development environment, will join the development team. 10/12/2014 Chapter 23 Project Planning 6
  • 7. COCOMO 81 Model - Example: The main required components of this system are :  Screen-Edit : 1500 LOC.  Command Language Interpreter : 1500 LOC.  I/O : 500 LOC.  Cursor movement : 1500 LOC.  Multi-Screen windowing : 2000 LOC.  Interface to OS : 1000 LOC.  Use the COCOMO 81 model to estimate the total effort required to develop the above editor.  Also, produce a phase-wise distribution of this estimated effort 10/12/2014 Chapter 23 Project Planning 7
  • 8. COCOMO 81 Model – A & B Values 10/12/2014 Chapter 23 Project Planning 8 Tables 4.1 from : Jalote, P. An Integrated Approach to Software Engineering. Springer, 1997.
  • 9. COCOMO 81 Model M = EAF (Effort Adjustment Factors) 10/12/2014 Chapter 23 Project Planning 9 Table 4.2 from : Jalote, P. An Integrated Approach to Software Engineering. Springer, 1997.
  • 10. COCOMO 81 Model Phase-wise Distribution of Effort 10/12/2014 Chapter 23 Project Planning 10 Table 4.3 from : Jalote, P. An Integrated Approach to Software Engineering. Springer, 1997.
  • 11. COCOMO 81 Model - Example:  Semi-detached project : This project is not related to an embedded system and is a new project from both its nature and the programming language to be used. So, it is not organic and fits in the semi-detached category.  E (Effort) = Ei * EAF  Ei = a SIZE b : a = 3.0, b=1.12 (semi-detached project)  Ei = 3.0 (1.5+1.5 + 0.5 + 1.5 + 2.0 + 1.0)1.12 = 30.8 PM 10/12/2014 Chapter 23 Project Planning 11
  • 12. COCOMO 81 Model - Example: ACAP and AEXP are high, LEXP and PCAP are low, and other factors are assumed to be nominal. ACAP: Analyst Capability LEXP: Programming Language Experience AEXP: Application Experience PCAP: Programmer Capability • EAF = ACAP * LEXP * AEXP * PCAP = 0.86 * 1.07 * 0.91 * 1.17 = 0.9797 • E = 0.9797 * 30.8 = 30.176 PM Chapter 23 Project Planning 12
  • 13. COCOMO 81 Model - Example: Phase-wise distribution : • Product design = 30.176 * 0.16 = 4.828 PM • Detailed design = 30.176 * 0.25 = 7.544 PM • Code & Unit Testing = 30.176 * 0.4 = 12.07 PM • Integration & Testing = 30.176 * 0.19 = 5.733 PM Chapter 23 Project Planning 13
  • 14. Estimation accuracy  The size of a software system can only be known accurately when it is finished.  Several factors influence the final size  Use of reused systems and components;  Programming language;  Distribution of system.  As the development process progresses then the size estimate becomes more accurate.  The estimates of the factors contributing to B and M are subjective and vary according to the judgment of the estimator. 10/12/2014 Chapter 23 Project Planning 14
  • 15. Effectiveness of algorithmic models  Algorithmic cost models are a systematic way to estimate the effort required to develop a system.  However, these models are:  complex and difficult to use.  There are many attributes and considerable scope for uncertainty in estimating their values.  This complexity means that the practical application of algorithmic cost modeling has been limited to a relatively small number of large companies, mostly working in defense and aerospace systems engineering. 10/12/2014 Chapter 23 Project Planning 15
  • 16. Estimation methods  Each method has strengths and weaknesses  Estimation should be based on several methods  If these do not return approximately the same result, there is insufficient information available  Some action should be taken to find out more in order to make more accurate estimates  ??? Pricing to win is sometimes the only applicable method
  • 17. COCOMO 2 models  COCOMO 2 incorporates a range of sub-models that produce increasingly detailed software estimates.  The sub-models in COCOMO 2 are:  Application composition model. Used when software is composed from existing parts.  Early design model. Used when requirements are available but design has not yet started.  Reuse model. Used to compute the effort of integrating reusable components.  Post-architecture model. Used once the system architecture has been designed and more information about the system is available. 10/12/2014 Chapter 23 Project Planning 17
  • 18. COCOMO estimation models 10/12/2014 Chapter 23 Project Planning 18
  • 19. Application composition model  Supports prototyping projects and projects where there is extensive reuse.  Based on standard estimates of developer productivity in application (object) points/month.  Takes software tool use into account.  Formula is  PM = ( NAP * (1 - %reuse/100 ) ) / PROD  PM is the effort in person-months, NAP is the number of application points and PROD is the productivity. 10/12/2014 Chapter 23 Project Planning 19
  • 20. Application-point productivity Developer’s experience and capability Very low Low Nominal High Very high ICASE maturity and capability Very low Low Nominal High Very high PROD (NAP/month) 4 7 13 25 50 10/12/2014 Chapter 23 Project Planning 20
  • 21. Early design model  Estimates can be made after the requirements have been agreed.  Based on a standard formula for algorithmic models  PM = A * SizeB * M where  M = PERS * RCPX * RUSE * PDIF * PREX * FCIL * SCED;  A = 2.94 in initial calibration,  Size in KLOC,  B varies from 1.1 to 1.24 depending on novelty of the project, development flexibility, risk management approaches and the process maturity. 10/12/2014 Chapter 23 Project Planning 21
  • 22. Multipliers  Multipliers reflect the capability of the developers, the non-functional requirements, the familiarity with the development platform, etc.  RCPX - product reliability and complexity;  RUSE - the reuse required;  PDIF - platform difficulty;  PREX - personnel experience;  PERS - personnel capability;  SCED - required schedule;  FCIL - the team support facilities. 10/12/2014 Chapter 23 Project Planning 22
  • 23. The reuse model  Takes into account black-box code that is reused without change and code that has to be adapted to integrate it with new code.  There are two versions:  Black-box reuse, where code is not modified. An effort estimate (PM) is computed.  White-box reuse, where code is modified. A size estimate equivalent to the number of lines of new source code is computed. This then adjusts the size estimate for new code. 10/12/2014 Chapter 23 Project Planning 23
  • 24. Reuse Model Estimates 1  For generated code:  PM = (ASLOC * AT/100) / ATPROD  ASLOC is the Number of Lines of Generated Code (reused code).  AT is the Percentage of Code Automatically Generated.  ATPROD is the Productivity of Engineers in Integrating this Code. Boehm, et al. (2000) measured ATPROD to be 2,400 source lines of code per month. 10/12/2014 Chapter 23 Project Planning 24
  • 25. Reuse Model Estimates 2  When code has to be understood and integrated:  ESLOC = ASLOC * (1-AT/100) * AAM  ASLOC and AT as before.  AAM is the adaptation adjustment multiplier computed from the (AAF) costs of changing the reused code, the (SU: 50 for complex systems to 1o OO code) costs of understanding how to integrate the code and (AA: 0 to 8 depending on the mount of effort required) the costs of reuse decision making.  AAM = Sum (AAF + SU + AA)  Then, apply the standard estimation formula to calculate the total effort required. Therefore, use Size = ESLOC to apply: • PM = A * SizeB * M 10/12/2014 Chapter 23 Project Planning 25
  • 26. Calculating AAF (Adaptation Assessment Factor) AAF = UNFM(DM) + UNFM(CM) + UNFM(IM)  % of design modified (DM),  % of code modified (CM),  % of modification to the original integration effort required for integrating the reused software (IM). 10/12/2014 Chapter 23 Project Planning 26
  • 27. Post-architecture level  Uses the same formula as the early design model but with 17 rather than 7 associated multipliers.  PM = A * SizeB * M  The Code Size is estimated as:  Number of lines of new code to be developed;  Estimate of equivalent number of lines of new code computed using the reuse model;  An estimate of the number of lines of code that have to be modified according to requirements changes. 10/12/2014 Chapter 23 Project Planning 27
  • 28. The B Exponent Term  This depends on 5 scale factors (see next slide). Their sum/100 is added to 1.01  A company takes on a project in a new domain. The client has not defined the process to be used and has not allowed time for risk analysis. The company has a CMM level 2 rating.  Precedenteness - new project (4)  Development flexibility - no client involvement - Very high (1)  Architecture/risk resolution - No risk analysis - V. Low .(5)  Team cohesion - new team - nominal (3)  Process maturity - some control - nominal (3)  Scale factor is therefore (4+1+5+3+3)/100 + 1.01 = 1.17 10/12/2014 Chapter 23 Project Planning 28
  • 29. Scale factors used in the exponent computation in the post-architecture model, B Exponent Term: 0, extra high .. 5 (very low) Scale factor Explanation Architecture/risk resolution Reflects the extent of risk analysis carried out. Very low means little analysis; extra-high means a complete and thorough risk analysis. Development flexibility Reflects the degree of flexibility in the development process. Very low means a prescribed process is used; extra-high means that the client sets only general goals. Precedentedness Reflects the previous experience of the organization with this type of project. Very low means no previous experience; extra-high means that the organization is completely familiar with this application domain. Process maturity Reflects the process maturity of the organization. The computation of this value depends on the CMM Maturity Questionnaire, but an estimate can be achieved by subtracting the CMM process maturity level from 5. Team cohesion Reflects how well the development team knows each other and work together. Very low means very difficult interactions; extra-high means an integrated and effective team with no communication problems. 10/12/2014 Chapter 23 Project Planning 29
  • 30. Multipliers  Product attributes  Concerned with required characteristics of the software product being developed.  Computer attributes  Constraints imposed on the software by the hardware platform.  Personnel attributes  Multipliers that take the experience and capabilities of the people working on the project into account.  Project attributes  Concerned with the particular characteristics of the software development project. 10/12/2014 Chapter 23 Project Planning 30
  • 31. 10/12/2014 Chapter 23 Project Planning 31
  • 32. The effect of cost drivers on effort estimates Exponent value 1.17 System size (including factors for reuse and requirements volatility) 128,000 DSI Initial COCOMO estimate without cost drivers 730 person-months Reliability Very high, multiplier = 1.39 Complexity Very high, multiplier = 1.3 Memory constraint High, multiplier = 1.21 Tool use Low, multiplier = 1.12 Schedule Accelerated, multiplier = 1.29 Adjusted COCOMO estimate 2,306 person-months 10/12/2014 Chapter 23 Project Planning 32
  • 33. The effect of cost drivers on effort estimates Exponent value 1.17 Reliability Very low, multiplier = 0.75 Complexity Very low, multiplier = 0.75 Memory constraint None, multiplier = 1 Tool use Very high, multiplier = 0.72 Schedule Normal, multiplier = 1 Adjusted COCOMO estimate 295 person-months 10/12/2014 Chapter 23 Project Planning 33
  • 34. Good Web Link for COCOMO II Model with example and tooling  Software Project Cost Estimates Using COCOMO II Model https://www.codeproject.com/Articles/9266/Software- Project-Cost-Estimates-Using-COCOMO-II-Mo 10/12/2014 Chapter 23 Project Planning 34
  • 35. Project duration and staffing  As well as effort estimation, managers must estimate the calendar time required to complete a project and when staff will be required.  Calendar time can be estimated using a COCOMO 2 formula  TDEV = 3 * (PM)(0.33+0.2*(B-1.01))  For B =1.17 and PM=70 then TDEV = 3 * 700.36 = 10.73 (11) months  PM is the effort computation and B is the exponent computed as discussed above (B is 1 for the early prototyping model).  This computation predicts the nominal schedule for the project.  The time required is independent of the number of people working on the project. 10/12/2014 Chapter 23 Project Planning 35
  • 36. Staffing requirements  Staff required can’t be computed by diving the development time by the required schedule.  The number of people working on a project varies depending on the phase of the project.  The more people who work on the project, the more total effort is usually required.  A very rapid build-up of people often correlates with schedule slippage. 10/12/2014 Chapter 23 Project Planning 36
  • 37. Key points  Estimation techniques for software may be experience-based, where managers judge the effort required, or algorithmic, where the effort required is computed from other estimated project parameters.  The early COMOMO 81, 1981 Cost Estimation Model  The COCOMO II costing model is a mature algorithmic cost model that takes project, product, hardware and personnel attributes into account when formulating a cost estimate. 10/12/2014 Chapter 23 Project Planning 37