21
CEN 4021 20 th Lecture CEN 4021 CEN 4021 Software Engineering II Software Engineering II Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/ [email protected] Effort estimation

CEN 4021 Software Engineering II

  • Upload
    renata

  • View
    51

  • Download
    1

Embed Size (px)

DESCRIPTION

CEN 4021 Software Engineering II. Effort estimation. Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/ [email protected]. Acknowledgements. Dr. Onyeka Ezenwoye Dr. Peter Clarke. Agenda. Effort estimation General Estimation Model COCOMO Model. Effort Estimation. - PowerPoint PPT Presentation

Citation preview

Page 1: CEN  4021   Software Engineering II

CEN 4021 20th Lecture

CEN 4021 CEN 4021 Software Engineering II Software Engineering II

Instructor: Masoud Sadjadi

http://www.cs.fiu.edu/~sadjadi/

[email protected]

Effort estimation

Page 2: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

AcknowledgementsAcknowledgements

Dr. Onyeka Ezenwoye

Dr. Peter Clarke

2

Page 3: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

AgendaAgenda

Effort estimation– General Estimation Model– COCOMO Model

Page 4: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

Effort EstimationEffort 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:

Page 5: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

1. How much does each parameter contribute to the total effort estimation?

2. 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.

Effort EstimationEffort Estimation

Page 6: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

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

Effort EstimationEffort Estimation

Page 7: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

General Estimation ModelGeneral 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.

Page 8: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

General Estimation ModelGeneral 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)wherea, b, c = statistically derived coefficients or best approxs.Size = estimated size of the project f’s = factors that influence the project estimatesPROD(f’s) = the product of arithmetically multiplying those factors

Page 9: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

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.

General Estimation ModelGeneral Estimation Model

Page 10: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

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?

General Estimation ModelGeneral Estimation Model

Page 11: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

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

General Estimation ModelGeneral Estimation Model

Page 12: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

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.

General Estimation ModelGeneral Estimation Model

Page 13: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

The COCOMO Effort Estimation The COCOMO Effort Estimation ModelModel

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.

Page 14: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

The COCOMO ModelThe 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.

Page 15: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

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

The COCOMO ModelThe COCOMO Model

Page 16: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

The COCOMO ModelThe 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.

Page 17: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

The COCOMO ModelThe 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)

Page 18: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

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

Table 17.1 Mode of the Development Use in COCOMO

Page 19: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

The COCOMO ModelThe 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.

Page 20: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

Assigning value to cost Assigning value to cost driversdrivers

Category Factor Range values

Very low low Nominal High Very high Extra high

Product attributes

RELY 0.75 0.98 1.0 1.15 1.40 -

DATA - 0.94 1.0 1.08 1.16 -

CPLX 0.85 1.0 1.15 1.30 1.65

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 -

Personnel attributes

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 -

Project attributes

MODP 1.14 1.10 1.0 0.91 0.83 -

TOOL 1.24 1.10 1.0 0.91 1.10 -

SCED 1.23 1.08 1.0 1.04 -

Page 21: CEN  4021   Software Engineering II

20th LectureCEN 4021: Software Engineering II

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)

Calculate the effort estimateCalculate the effort estimate