1. LOC, COCOMO I & COCOMO II
Kalyan Mondal (2012ca49)
Jyoti Shrivastava (2012ca52)
Kamal Kishore (2012ca34)
Jyotsna Agnihotri (2012ca66)
Karishma Gupta(2012ca55)
Presented By:
Subject: Software Engineering
Coordinator:
Mr Anoj Kumar
2. Contents
Software Planning
LOC: Lines of Code
Function Point
Cost Estimation
Development Mode
COCOMO I
• Basic COCOMO
• Intermediate COCOMO
• Detailed COCOMO
COCOMO II
• Application Composition
• Early Design Model
• Post Architecture Model
References
3. SOFTWARE PLANNING
Software planning begins before technical work starts, continues as the softwa
Evolves from concept to reality, and culminates only when the software is retir
Created by:- Kamal kishore(2012ca34) Ref :-software engineering by K.K.Agrawal, yogesh si
Fig:- Activities during software project planning
4. LINES OF CODE(LOC)
• A Line of code is any line of program text that is not a comment
or blank line, regardless of the number of statements or
fragments on the line. This specifically includes all lines
containing program header, declarations, and executable and
non-executable statements.
• While line of codes have their uses, their usefulness is limited for
other tasks like functionality, complexity, efficiency, etc.
Created by:- Kamal kishore(2012ca34) Ref :-software engineering by K.K.Agrawal, yogesh si
5. FUNCTION POINT
Function point measures functionality which is a solution to the size
measurement problem.
It is decomposed into following functional units
Created by:- Kamal kishore(2012ca34) Ref :-software engineering by K.K.Agrawal, yogesh si
Inputs Outputs Enquiries
Internal
Logical
Files
External
Interface
Files
6. FUNCTIONAL UNITS WITH WEIGHTING FACTORS
Functional units Low Average High
External Inputs 3 4 6
External Outputs 4 5 7
External Inquiries 3 4 5
Internal logical files (ILF) 7 10 15
External interface files
(EIF)
5 7 10
The procedure for the calculation of UFP in mathematical form is
given below
5 3
UFP = ∑ ∑ 𝑍𝑖𝑗WijUFP : Unadjusted Function Point i=1
j=1
Where i indicates the row and j indicates the column of table.
Wij : It is the entry of ith row and jth column of the table.
Zij: It is the count of the number of functional unit of type i that have been
classified as having the complexity corresponding to column j
Created by:- Kamal kishore(2012ca34) Ref :-software engineering by K.K.Agrawal, yogesh si
7. An example
Consider a project with the following functional units: 50 user inputs,40
user outputs, 35 user enquiries,6 user files,4 external interfaces.
Assume all complexity adjustment factors and weighting factors are
average.
Compute the function points for the project. Suppose that program
needs 70 LOC per FP. Find out the size of complete project.
Solution:
5 3
UFP = ∑ ∑ 𝑍𝑖𝑗Wij
i=1 j=1
UFP= 50 * 4 + 40 * 5 + 35 * 4 + 6 * 10 + 4 * 7
= 200+200+140+60+28 = 628
CAF= (0.65 + ∑𝐹𝑖 )
=(0.65 + 0.01 (14 * 3 )) = 1.07
FP= UFP * CAF
=628 * 1.07 = 672
Size = FP * (LOC per FP) = 672 * 70 = 47040 LOC
Created by:- Kamal kishore(2012ca34) Ref :-software engineering by K.K.Agrawal, Yogesh S
8. Cost Estimation
Approximate judgement of the costs for a project. It
should be done throughout the entire life cycle.
Why we need?
To determine how much effort and time a
software project requires.
Important for making good management
decisions.
It facilitates competitive contract bids.
It affect the planning and budgeting of a project.
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
Jyoti Shrivastava
9. Development Mode of S/W Projects
Mode Project
Size
Nature of Project Innovation Deadline
Organic Typically
2-50 KLOC
Small size project,
Experienced
developers.
Little Not Tight
Semi
Detached
Typically
50-
300KLOC
Medium size project
and team.
Medium Medium
Embedded Typically
over
300KLOC
Large project, Real-
time systems
Significant Tight
10. Constructive Cost Model(COCOMO )
The COCOMO model is a single variable software
cost estimation model developed by Barry Boehm
in 1981.
The model uses a basic regression formula, with
parameters that are derived from historical project
data and current project characteristics.
Hierarchy of Cocomo Model
1. Basic COCOMO model
2. Intermediate COCOMO model
3. Detailed COCOMO model
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
Jyoti Shrivastava
11. Basic COCOMO Model
It take the form:
Effort(E) = ab * (KLOC)b
b(in Person-months)
DevelopmentTime(D) = cb * (E) d
b (in month)
Average staff size(SS) = E/D (in Person)
Productivity(P) = KLOC / E (in KLOC/Person-month)
Project ab bb cb db
Organic 2.4 1.05 2.5 0.38
Semidetached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
Jyoti Shrivastava
13. Basic cocomo: Example
A project size of 200KLOC is to be developed.S/W
development team has average experience on
similar type of projects.The project schedule is not
very tight.Calculate the effort and development time
of the project.
Ans: 200 KLOC implies semi-detached mode.
Hence, E= 3.0 * (200)1.12 = 1133.12 PM
D=2.5 * (1133.12)0.35 = 29.3 M
Avg. staff size(SS) = E/D
= 1133.12/29.3=38.67 Persons.
Productivity (P) = KLOC/E
= 200/1133.12=0.1765
KLOC/PM.
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by: Jyoti
Shrivastava
14. Intermediate COCOMO
Extension of Basic COCOMO
Why Use ?
Basic model lacks accuracy
Computes software development effort as a function of
program size and set of 15 Cost Drivers
Cost Driver: A multiplicative factor that determines the effort
required to complete the software project.
Why Cost Drivers?
Adjust the nominal cost of a project to the actual project
Environment.
For each Characteristics, Estimator decides the scale factor
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by: Kalyan
Mondal
Very
Low
Low Nominal High
Very
High
Extra
High
15. Cost Drivers
• Required Software Reliability (RELY)
• Database Size (DATA)
• Product Complexity (CPLX)
Product
Attributes
• Execution Time Constraint (TIME)
• Main Storage constraint (STOR)
• Virtual Machine volatility (VIRT)
• Computer turnaround time (TURN)
Computer
Attributes
• Analyst Capability (ACAP)
• Application Experience (AEXP)
• Programmer Capability (PCAP)
• Virtual Machine Experience (VEXP)
• Programming language Experience (LEXP)
Personnel
Attributes
• Modern programming practices (MODP)
• Use of Software tools (TOOL)
• Required development schedule (SCED)
Project
Attributes
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
16. The Calculation
Multiply all 15 Cost Drivers to get Effort Adjustment
Factor(EAF)
E(Effort) = ab(KLOC)b
b * EAF(in Person-Month)
D(Development Time) = cb(E)d
b (in month)
SS (Avg Staff Size) = E/D (in persons)
P (Productivity) = KLOC/E (in KLOC/Person-month)
Project ab bb cb db
Organic 3.2 1.05 2.5 0.38
Semidetach
ed
3.0 1.12 2.5 0.35
Embedded 2.8 1.20 2.5 0.32
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
17. Intermediate COCOMO : Example
A new project with estimated 400 KLOC embedded system has to
be developed. Project manager hires developers of low quality but
a lot of experience in programming language. Calculate the Effort,
Development time, Staff size & Productivity.
EAF = 1.29 * 0.95 = 1.22
400 LOC implies Embedded System
Effort = 2.8*(400)1.20 * 1.225 = 3712 * 1.22 = 4528 person-months
Development Time = 2.5 * (4528)0.32 = 2.5 * 14.78 = 36.9 months
Avg. Staff Size = E/D = 4528/36.9 = 122 persons
Productivity = KLOC/Effort = 400/4528 = 0.0884 KLOC/person-
month
Cost
Drivers
Very
Low
Low Nominal High Very
High
Extra High
AEXP 1.29 1.13 1.00 0.91 0.82 --
LEXP 1.14 1.07 1.00 0.95 -- --
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
18. Detailed COCOMO
Detailed COCOMO = Intermediate COCOMO +
assessment of Cost Drivers impact on each phase.
Phases
1) Plans and requirements
2) System Design
3) Detailed Design
4) Module code and test
5) Integrate and test
• Cost of each subsystem is estimated separately. This
reduces the margin of error.
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
19. The Calculation
Multiply all 15 Cost Drivers to get Effort Adjustment
Factor(EAF)
E(Effort) = ab(KLOC)b
b * EAF(in Person-Month)
D(Development Time) = cb(E)d
b (in month)
Ep (Total Effort) = µp * E (in Person-Month)
Dp (Total Development Time) = τp * D (in month)
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
20. Detailed COCOMO : Example
Consider a project to develop a full screen editor. The major
components identified and their sizes are (i) Screen Edit – 4K (ii)
Command Lang Interpreter – 2K (iii) File Input and Output – 1K (iv)
Cursor movement – 2K (v) Screen Movement – 3K. Assume the
Required software reliability is high, product complexity is high,
analyst capability is high & programming language experience is
low. Use COCOMO model to estimate cost and time for different
phases.
Size of modules : 4 + 2 + 1 + 2 + 3 = 13 KLOC [Organic]
EAF = 1.15 * 1.15 * 0.86 * 1.07 = 1.2169
Cost
Drivers
Very
Low
Low Nominal High Very
High
Extra High
RELY 0.75 0.88 1.00 1.15 1.40 --
CPLX 0.70 0.85 1.00 1.15 1.30 1.65
ACAP 1.46 1.19 1.00 0.86 0.71
LEXP 1.14 1.07 1.00 0.95 -- --
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
21. Example (Contd.)
Initial Effort (E) = ab(KLOC)b
b * EAF = 3.2*(12)1.05 * 1.2169
= 52.9 person-months
Initial Development Time = cb(E)d
b =2.5*(52.9)0.38 = 11.29 months
Phase value of µp and τp
Phase wise effort & development time distribution
Plan &
Reqr
System
Design
Detail
Design
Module
code & test
Integration
& Test
Organic Small
µp
0.06 0.16 0.26 0.42 0.16
Organic Small
τp
0.10 0.19 0.24 0.39 0.18
Ref: Software Engineering By K.K.Aggarwal & Y. Singh Created by:
E D Ep (in person-months) Dp (in months)
Plan &
Requirement
52.9 11.29 0.06*52.9 = 3.17 0.10*11.29=1.1
2
System Design 52.9 11.29 0.16*52.9=8.46 0.19*11.29=2.1
4
Detail Design 52.9 11.29 0.26*52.9=13.74 0.24*11.29=2.7
0
Module code & test 52.9 11.29 0.42*52.9=22.21 0.39*11.29=4.4
22. WHY COCOMO-II ?
The changes in s/w development techniques included a
move away from mainframe overnight batch processing
to desktop-based real-time turnaround.
These changes and others began to make applying the
original COCOMO model problematic.
The model is tuned to the life cycle practices of the 21st
century.
Ref: Software Engineering By K.K.Aggarwal & Y. Singh and csse website by : Jyotsna Agnihotri
23. Categories Identified By
Cocomo II
End User Programming
Infrastructure Sector
Intermediate Sectors
1. Application Generators And Composition Aids
2. Application Composition Sector
3. System Integration
Stages Of Cocomo-II
Application Composition
Earlier Design
Post Architecture
Ref: Software Engineering By K.K.Aggarwal & Y. Singh by : Jyotsna Agnihotri
24. Application Composition
Assess Object
Counts
Classification Of
Complexity
Levels
Assign Complexity
Weight To Each Object
Determine Object
Points
Compute New
Object Points
Calculation Of
Productivity Rate
Compute The
Effort In Person
Months.
25. • Assess object counts: Estimate the number of screens,
reports and 3 GL components that will comprise this application.
• Classification of complexity levels:
We have to classify each object instance (depending on
values of its characteristics) into :-
o simple
o medium
o Difficult
• Assign complexity weight to each object : The
weights are used for three object types :-
o screen
o report
o 3GL components
Ref: Software Engineering By K.K.Aggarwal & Y. Singh by : Jyotsna Agnihotri
26. • Determine object points: Add all the weighted object
instances to get one number and this known as object-point count.
• Compute new object points: We have to estimate the
percentage of reuse to be achieved in a project. Depending on the
percentage reuse, the new object points (NOP) are computed.
Object Points * (100 - %reuse)
NOP = ---------------------------------------------
100
NOP are the object points that will need to be developed and differ
from the object point count because there may be reuse( percentage of
the Product development which is accomplished by exploiting the
existence of existing component's design-or-development effort).
Ref: Software Engineering By K.K.Aggarwal & Y. Singh&gilb.com by : Jyotsna Agnihotri
27. • Calculation of productivity rate: The productivity
rate can be calculated as:
Productivity rate (PROD) = NOP/Person month
• Compute the effort in Persons-Months: When
PROD is known, we may estimate effort in Person-
Months as:
NOP
Effort in PM = ------------
PROD
Ref: Software Engineering By K.K.Aggarwal & Y. Singh by : Jyotsna Agnihotri
28. Example: Consider a database application project with the
following characteristics:
The application has 4 screens with 4 views each and 7
data tables for 3 servers and 4 clients.
The application may generate two report of 6 sections
each from 07 data tables for two server and 3 clients.
There is 10% reuse of object points.
The developer’s experience and capability in the similar
environment is low. The maturity of organization in
terms of capability is also low. Calculate the object point
count, New object points and effort to develop such a
project.
Example
Ref: Software Engineering By K.K.Aggarwal & Y. Singh by : Jyotsna Agnihotri
29. Solution :
Lets have a look on the tables for screens, for reports , for
complexity weights for each level
No. Of Views
Contained in a
screen
Total<4
(<2 servers
<3 clients)
Total<8
(2-3 servers
3-5 clients)
Total 8+
(>3 servers
>5 clients)
<3 Simple Simple Medium
3-7 Simple Medium Difficult
>8 Medium Difficult Difficult
No. Of
Sections
Contained in a
report
Total<4
(<2 servers
<3 clients)
Total<8
(2-3 servers
3-5 clients)
Total 8+
(>3 servers
>5 clients)
0 or 1 Simple Simple Medium
2 or 3 Simple Medium Difficult
4+ Medium Difficult Difficult
30. This project comes under the category of application composition estimation
model.
Number of screens = 4 with 4 views each
Number of reports = 2 with 6 sections each
From Table we know that each screen will be of medium complexity and
each report will be difficult complexity.
Using Table of complexity weights, we may calculate object point count
= 4 x 2 + 2 x 8 = 24
Ref: Software Engineering By K.K.Aggarwal & Y. Singh by : Jyotsna Agnihotri
Object Type Simple
Complexity
Medium
Complexity
Difficult
Complexity
Screen 1 2 3
Report 2 5 8
3GL - - 10
31. Using the formula NOP is calculated as:
NOP= 24 * (100-10)/100=21.6
Low value of productivity is given in above Productivity table =
7
Efforts in PM=NOP/PROD=21.6/7=3.086 PM
Developer’s Experience
And Capability
PROD (NOP/PM)
Very low 4
Low 7
Nominal 13
High 25
Very high 50
Ref: Software Engineering By K.K.Aggarwal & Y. Singh by : Jyotsna Agnihotri
32. Early Design Model
Used in the early stages of a software project when very little
may be known about:
the size of the product to be developed,
the nature of the target platform,
the nature of the personnel to be involved in the project.
Uses Unadjusted Function Points (UFP) as the measure of size.
Based on a standard formula for COCOMO-II models:
Where
PMnominal = Effort of the project in person months
A = Constant representing the nominal productivity,
provisionally set to 2.5
B = Scale factor
Size = Software size
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh 32
33. The Scaling Factors that COCOMO-II model uses for the
calculation of B are:
Precedentness (PREC)
Development flexibility (FLEX)
Architecture/ Risk Resolution (RESL)
Team Cohesion (TEAM)
Process maturity (PMAT)
Early design cost drivers
There are 7 early design cost drivers and are given below:
1. Product Reliability and Complexity (RCPX)
2. Required Reuse (RUSE)
3. Platform Difficulty (PDIF)
4. Personnel Capability (PERS)
5. Personnel Experience (PREX)
6. Facilities (FCIL)
7. Schedule (SCED)
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh 33
34. Data for the Computation of B (Scalar Factor)
Scaling Factors Very
Low
Low Nominal High Very High Extra High
Precedentness 6.20 4.96 3.72 2.48 1.24 0.00
Development
Flexibility
5.07 4.05 3.04 2.03 2.03 0.00
Architecture/
Risk Resolution
7.07 5.65 4.24 2.83 1.41 0.00
Team Cohesion 5.48 4.38 3.29 2.19 1.10 0.00
Process
Maturity
7.80 6.24 4.68 3.12 1.56 0.00
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh
35. If B=1.0, then Linear relationship b/w Effort & Size.
If B 1.0, then Non-Linear relationship b/w Effort & Size.
If B<1.0, then the rate of increase of effort decreases as the size of
the product increases.
If B>1.0, then the rate of increase of effort increases as the size of
the product increases.
B = 0.91 + 0.01 * (Sum of rating on scaling factors for the project)
When all the scaling factors of a project are rated as extra high,
then the best value of B= 0.91 (for COCOMO II.2000)
when all the scaling factors of a project are rated as very low,
Then the worst value of B= 1.23 (for COCOMO II.2000)
Hence, the value of B may vary from 0.91 to 1.23
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh
Calculate the scalar factor B
36. Early Design Model:
Example
Question: A software project of application generator category with estimated 50
KLOC has to be developed. The scale factor (B) has low precedentness, high
development flexibility and low team cohesion.
Other factors are nominal. The early design cost drivers like platform
difficult (PDIF) and Personnel Capability (PERS) are high and others are
nominal.
Calculate the Effort in person-months for the development of the project.
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh
Early Design
Cost Drivers
Extra
Low
Very
Low
Low Nominal High Very
High
Extra
High
RCPX 0.73 0.81 0.98 1.0 1.30 1.74 2.38
RUSE - - 0.95 1.0 1.07 1.15 1.24
PDIF - - 0.87 1.0 1.29 1.81 2.61
PERS 2.12 1.62 1.26 1.0 0.83 0.63 0.50
PREX 1.59 1.33 1.12 1.0 0.87 0.71 0.62
FCIL 1.43 1.30 1.10 1.0 0.87 0.73 0.62
SCED - 1.43 1.14 1.0 1.0 1.0 -
36
37. B = 0.91 + 0.01 * (Sum of rating on scaling factors for the
project)
= 0.91 + 0.01 * (4.96 + 2.03 + 4.24 + 4.38 + 4.68)
= 0.91 + 0.01(20.29)=1.1129
= 2.5 * (50)1.1129 = 194.41 Person-months
here A=2.5 (for COCOMO II.2000) predefined
The 7 cost drivers are:
PDIF = high (1.29) PERS = high (0.83)
RCPX = nominal (1.0) RUSE = nominal (1.0)
PREX = nominal (1.0) FCIL = nominal (1.0)
SCEO = nominal (1.0)
Solution :
= 194.41 * [1.29 x 0.83]
= 194.41 x 1.07
= 208.155 Person months
37
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh
38. Post Architecture Model
• Most detailed estimation model.
• Used when a software life cycle architecture has been completed.
• Used in the development and maintenance of software products
in the application generators, system integration or infrastructure
sectors.
Where
EM : Effort multiplier which is the product of 17 cost drivers.
PMnominal = Effort of the project in person months.
Lines of Codes Counting Rules
Function Points
Cost Drivers
38
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh
39. Cost Drivers of Post Architecture
• Required Software Reliability (RELY)
• Database Size (DATA)
• Product Complexity (CPLX)
• Documentation (DOCU)
• Required Reusability (RUSE)
Product
Attributes
• Execution Time Constraint (TIME)
• Platform Volatility (PVOL)
• Main Storage constraint (STOR)
Computer
Attributes
• Analyst Capability (ACAP)
• Personnel Continuity (PCON)
• Programmer Experience (PEXP)
• Programmer Capability (PCAP)
• Analyst Experience(AEXP)
• Language & Tool Experience (LTEX)
Personnel
Attributes
• Use of Software tools (TOOL)
• Required development schedule (SCED)
• Site Locations & Communications Technology
b/w sites (SITE)
Project
Attributes
39
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh
42. Schedule Estimation
Development time can be calculated using PMadjusted as a key
factor and the desired equation is:
Where
= constant, provisionally set to 3.67, B = Scaling factor
TDEVnominal = calendar time in months with a scheduled constraint
PMadjusted = Estimated effort in Person months (after adjustment)
Size can be measured in any unit and the model can be calibrated
accordingly. However, COCOMO II details are:
I. Application composition model uses the size in object points.
II. The other two models use size in KLOC.
Size Measurement
42
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh
43. Post Architecture: Example
Ques: A software project of application generator category with estimated 50
KLOC has to be developed. The scale factor (B) has low precedentness, high
development flexibility and low team cohesion. The identified 17 Cost drivers are
high reliability (RELY), very high database size (DATA), high execution time
constraint (TIME),
very high analyst capability (ACAP), high programmers capability (PCAP).
The other cost drivers are nominal.
Calculate the effort in Person-Months for the development of the project.
Here B = 1.1129
PMnominal = 194.41 Person-months
= 194.41 x (1.15 x 1.19 x 1.11 x 0.67 x 0.87)
= 194.41 x 0.885
= 172.05 Person-months
Solution :
43
Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh
44. Created by- Karishma Gupta (2012CA55) Ref: Software Engineering By K.K. Aggarwal &
Yogesh Singh
45. Final Word
“The models are just there to help,
not to make the management
decisions for you.”
--Barry Boehm
Ref: https://cs.uwaterloo.ca/~apidduck/se362/Lectures/cocomo.pdf
46. References
Software Engineering (Third Edition) By
K.K.Aggarwal & Y. Singh
Fundamentals of Software Engineering (Third
Edition) By Rajib Mall
Software Engineering , 6th Edition By Ian
Sommerville
Software Engineering (Sixth Edition) by Roger S.
Pressman
https://cs.uwaterloo.ca/~apidduck/se362/Lectures/c
ocomo.pdf