Algorithmic Software Cost Modeling

kasunrangawijeweera 2,939 views 24 slides Feb 11, 2020
Slide 1
Slide 1 of 24
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24

About This Presentation

COCOMO


Slide Content

Algorithmic Software Cost Modeling Kasun Ranga Wijeweera ( [email protected] )

Algorithmic Cost Modeling A mathematical function is used to estimate the cost Inputs: Project, Process, Product Decided by project managers Historical data are studied to derive the function Commonly used product attribute is LOC (code size)

Software Productivity The rate at which individual software engineers involve in development process is known as software productivity Although quality assurance is a factor in productivity assessment, the productivity is not quality oriented The useful functionality produced per time unit should be measured

Productivity Measures Size related measures: Lines of delivered source code Object code instructions Etc Function related measures: Functionality of the delivered software E.g. Function points

Lines of Code What programs should be considered as part of the system? Assumption of the model: The relationship between system size and volume of documentation is linear Key thing to remember: Uncertainty is more important than the initial line Seek justifiable bounds

Productivity Comparison Low level language verses high level language Verbose code verses compact code

Function Points Program characteristics are considered External inputs and outputs User interactions External interfaces Files used by the system Corresponding weights are assigned to each characteristic

FPs and LOC FPs can be used to estimate LOC LOC = AVC * (Number of FPs) AVC is a factor which depends on the programming language Assembly language: AVC = 200 to 300 4 GL language: AVC = 2 to 40 FPs are subjective and dependent on the estimator FP automation is impossible

Productivity Estimates Real time embedded systems 40 to 60 LOC per month Systems programs 150 to 400 LOC per month Commercial applications 200 to 900 LOC per month

Productivity Factors Application domain experience Process quality Product size Technology support Working environment

Changing Technologies Previous estimating experience does not carry over to new systems due to changes in technology Use of web services Use of CASE tools and program generators Development for and with reuse Using scripting languages

COCOMO Constructive Cost Model (COCOMO) Estimates are derived as functions of variables Data of past projects must be available First published by Dr. Barry Boehm in 1981 Derived through statistical regression of data from 63 past projects

Example Size 2000 SLOC 8000 SLOC 32000 SLOC 128000 SLOC MM 5 21 91 392 Schedule Months 5 8 14 24 Staff 1.1 2.7 6.5 16 SLOC/ MM 400 376 352 327

Basic Effort Equation (Effort) = A * (Size) ^ (Exponent) (Effort) = (EAF) * A * (Size) ^ (Exponent) Estimates the man-months (MM) of effort for software development project 1 MM = 152 hours of development Size is the source lines of code (SLOC)

Modes and Models of COCOMO Three modes Organic mode Semidetached mode Embedded mode Three models Basic model Intermediate model Detailed model

Modes of COCOMO Organic mode Similar to an earlier project Familiar and stable environment E.g. Accounting system Semidetached mode Between Organic and Embedded modes Embedded mode New project involving new inventions E.g. Real-time systems

Models of COCOMO Basic model Roughly estimates project cost, performance and schedule Intermediate model EAF (Effort Adjustment Factor) is used from 15 cost drivers Detailed model Different Effort Multipliers are used for each phase of project

Effort Equation : Basic (Effort) = A * (Size) ^ (Exponent) A is a constant which depends on the mode of development Organic: 2.4, Semidetached: 3.0, Embedded: 3.6 (Exponent) is also a constant which depends on the mode of development Organic: 1.05, Semidetached: 1.12, Embedded: 1.20 Size should be in KSLOC (1000 SLOC)

Schedule Equation : Basic Minimum time to develop (MTDEV) (MTDEV) = 2.5 * (Effort) ^ (Exponent) Exponent is a constant which depends on the mode Organic: 0.38, Semidetached: 0.35, Embedded: 0.32 2.5 is constant for all modes MTDEV is independent from the number of people assigned

Effort Equation : Intermediate (Effort) = (EAF) * A * (Size) ^ (Exponent) A is a constant which depends on the mode of development Organic: 3.2, Semidetached: 3.0, Embedded: 2.8 (Exponent) is also a constant which depends on the mode of development Organic: 1.05, Semidetached: 1.12, Embedded: 1.20 Size should be in KSLOC (1000 SLOC)

EAF (Effort Adjustment Factor) EAF = Product of effort multipliers

Schedule Equation : Intermediate Minimum time to develop (MTDEV) (MTDEV) = 2.5 * (Effort) ^ (Exponent) Exponent is a constant which depends on the mode Organic: 0.38, Semidetached: 0.35, Embedded: 0.32 2.5 is constant for all modes MTDEV is independent from the number of people assigned

Tool Demonstration http://sunset.usc.edu/research/COCOMOII/expert_cocomo/expert_cocomo2000.html

Thank you!