Lecture-20

advertisement
CEN 4021
Software Engineering II
Effort estimation
Instructor: Masoud Sadjadi
http://www.cs.fiu.edu/~sadjadi/
sadjadi@cs.fiu.edu
CEN 4021
20th Lecture
Acknowledgements

Dr. Onyeka Ezenwoye

Dr. Peter Clarke
CEN 4021: Software Engineering II
20th Lecture
2
Agenda

Effort estimation
– General Estimation Model
– COCOMO Model
CEN 4021: Software Engineering II
20th Lecture
Effort Estimation

Software cost and effort estimation will never be an
exact science.

There are too many parameters, e.g., human,
technical, environmental, and political parameters, that
affect the actual estimation making it almost
impossible to have considered all cases.

Even if all parameters are considered, the following
questions still need to be answered:
CEN 4021: Software Engineering II
20th Lecture
Effort Estimation
1.
2.
How much does each parameter contribute to the total
effort estimation?
How can the amount of each parameter’s contribution
be converted into some numerical form?
3.
How do the parameters affect each another?
4.
How would these effects be combined?
The above point to the fact that there is a lack of good
metric definitions related to estimations.
CEN 4021: Software Engineering II
20th Lecture
Effort Estimation

Historically, managers have based many of their
estimates on some form of “consulting the expert”:
– Consult other peer managers with experience
– Engage consultants with experience
– Draw analogies to past projects that seem to have similar
characteristics
– Divide and conquer – break project into components and get
estimates for each component based on experience, then
combine the estimates
The practice of consulting the experts and using past experience
has worked well in the past
CEN 4021: Software Engineering II
20th Lecture
General Estimation Model

It is important to have as accurate an estimation as
possible, since this estimate is used in planning the
schedule and resources.

Several researchers have constructed effort and cost
estimation models. To date these models have
produced mixed results.
Software effort estimation model: A set of information and
relationships organized for the purpose of estimating
the effort needed to complete a s/w project. The
information and the values assigned to the information
may vary from project to project.
CEN 4021: Software Engineering II
20th Lecture
General Estimation Model
Software effort estimation model cont: Similarly, the
relationships may be organized into a mathematical
equation, which may vary from project to project.
Most models use the following general form, or its derivative,
to estimate effort:
Effort = (a + [b x (Sizec)]) x PROD(f’s)
where
a, b, c = statistically derived coefficients or best approxs.
Size = estimated size of the project
f’s = factors that influence the project estimates
PROD(f’s) = the product of arithmetically multiplying those factors
CEN 4021: Software Engineering II
20th Lecture
General Estimation Model

The coefficients a, b, c were derived by fitting the best
curve against known data for the Effort and Size
parameters for previous projects.

Effort is usually measured in terms of person-months
expended on the project.

Size is usually the number of lines of code created as
part of the project.

The Size metric is itself a problem! If it is measured in
terms of “lines of code” (LOC), then there must be clear
definition and agreement on LOC.
CEN 4021: Software Engineering II
20th Lecture
General Estimation Model

How do you define LOC?
– Should LOC include only executable code?
– What about documentation of code?
– Is an LOC written in assembler the same an LOC in C++ or
JavaScript?
– How do we account for the difference between an LOC in
assembler language code and an LOC in an HLL?
CEN 4021: Software Engineering II
20th Lecture
General Estimation Model
Other Factors affecting Project Effort

The effort required for a project also depends on the
conditions under which the project is being undertaken.

These conditions include among others:
– Programmer productivity
– S/w support services e.g., levels of testing
– Maturity of the organization, working with an established
process.
– Type and amount of tool support
CEN 4021: Software Engineering II
20th Lecture
General Estimation Model

All the preceding factors, the f’s in the general
estimation equation, affect the project.

It is a good idea to have a standard list of factors to be
considered during estimation. This list will:
– serve as a reminder
– bring some consistency to what the manager consider

The list of factors (f’s) may also be interrelated. The
question of how to account for the combined effects of
all these factors continues to be a perplexing challenge.
CEN 4021: Software Engineering II
20th Lecture
The COCOMO Effort Estimation Model


The COnstructive COst Model (COCOMO) is a specific
example of the general estimation equation developed
by Boehm in the 1980’s.
COCOMO includes 3 levels of models:
1. A macro estimation model
2. An intermediate-level model
3. A more detailed micro estimation model

The intermediate model is used in the example in the
text.
CEN 4021: Software Engineering II
20th Lecture
The COCOMO Model
General process of using the COCOMO is:
1.
Choose an estimate of what would be considered the
“nominal” (typical) development of the project. Three
nominal project modes are defined: Organic,
Semidetached, and Embedded.
2.
Choose an estimate of the size of the project to use the
Size parameter.
3.
Review the factors that influence the project, the cost
drivers, and estimate the influence that each factor will
have on the chosen “nominal” case.
CEN 4021: Software Engineering II
20th Lecture
The COCOMO Model
General process of using the COCOMO is cont:
4.
Determine the effort for the s/w project by inserting the
estimated values into the Effort Formula.
Nominal Mode of Development

The following key project characteristics are used to
identify one of the three nominal models:
A. The teams understanding of the project objective
B. The teams experience with similar or related projects
C. The project’s need to conform with the estimate requests
CEN 4021: Software Engineering II
20th Lecture
The COCOMO Model
D. The project’s need to conform with the established external
interfaces
E. The need to develop the project concurrently with new systems
and new operational procedures
F. The project’s need for new and innovative technology,
architecture, or other constraints
G. The project’s need to meet or beat the schedule
H. The project’s size range

Organic mode – projects are fairly easy and familiar to
the s/w development team.
CEN 4021: Software Engineering II
20th Lecture
The COCOMO Model

Semidetached mode – projects are medium sized and
some what familiar to the s/w development team.

Embedded mode – complex projects that may be
unfamiliar to the project team.

The above summary statements should be used as a
starting point in the decision process when choosing the
most appropriate mode for the project estimate.
See Table on next page (Table 17.1 in text)
CEN 4021: Software Engineering II
20th Lecture
Table 17.1 Mode of the Development Use in COCOMO
Key project
charac.
Organic mode
Semidetached mode
Embedded mode
A
Detail degree
Considerable degree
Only general degree
B
Extensive amount
Some amount
None to modest amount
C
Only the basic ones
Considerably more
than the basic ones
All and full conformance
D
Only the basic ones
Considerably more
than the basic ones
All and full conformance
E
Little to some
Moderate amount
Extensive amount
F
None to minimal
Some
Considerable
G
Low
Medium
Must
H
< 50,000 delivered
LOC
50,000 to 30,000
delivered LOC
All sizes
CEN 4021: Software Engineering II
20th Lecture
The COCOMO Model

An untrained manager might not be able to easily choose
the correct mode.

Very few projects have characteristics that fall neatly
within any one of the mode categories.

For each of the three modes, a different formula is used
for estimating the Effort:
Organic: Effort (in person-months) = 3.2 x (Size)1.05
Semidetached: Effort (in person-months) = 3.2 x (Size)1.12
Embedded: Effort (in person-months) = 3.2 x (Size)1.20
Size is expressed as LOC.
CEN 4021: Software Engineering II
20th Lecture
Assigning value to cost drivers
Category
Product
attributes
Factor
Range values
Very low
low
Nominal
High
Very high
Extra high
RELY
0.75
0.98
1.0
1.15
1.40
-
DATA
-
0.94
1.0
1.08
1.16
-
0.85
1.0
1.15
1.30
1.65
CPLX
Computer
attributes
TIME
0.70
-
1.0
1.11
1.21
1.66
STOR
-
-
1.0
1.06
1.30
1.56
VIRT
-
0.87
1.0
1.15
1.15
-
TURN
-
0.87
1.0
1.07
0.71
-
ACAP
-
1.19
1.0
0.86
0.82
-
AEXP
1.46
1.13
1.0
0.91
0.70
-
PCAP
1.29
1.17
1.0
0.86
-
-
VEXP
1.42
1.10
1.0
0.90
-
-
LEXP
1.21
1.07
1.0
0.95
0.82
-
MODP
1.14
1.10
1.0
0.91
0.83
-
TOOL
1.24
1.10
1.0
0.91
1.10
-
SCED
CEN 4021: Software
Engineering1.23
II
1.08
1.0
1.04
Personnel
attributes
Project
attributes
20th Lecture
Calculate the effort estimate
Organic: Effort = [3.2 x (Size)1.05]xPROD(f’s)
Semidetached: Effort = [3.2 x (Size)1.12]xPROD(f’s)
Embedded: Effort = [3.2 x (Size)1.20]xPROD(f’s)
CEN 4021: Software Engineering II
20th Lecture
Download