Software Cost Estimation Flashcards

1
Q

Software Cost Estimation

A

Involves predicting the resources required for a software development process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Fundamental Estimation Questions

A
  • How much effort is required to complete an activity?
  • How much calendar time is needed to complete an activity?
  • What is the total cost of an activity?
  • Project estimation and scheduling and interleaved management activities.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Software Cost Components

A
  • Hardware and software costs.
  • Travel and training costs.
  • Effort costs (salaries of engineers, social and insurance cost)
  • Effort costs must take overheads into account (building, lighting, heating, networking, communications, shared facilities)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cost and Pricing

A

Estimates are made to discover of producing a software system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Software Pricing Factors

A
  • market opportunity
  • cost estimate uncertainty
  • contractual terms
  • requirements volatility
  • financial health
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Programmer Productivity

A

A measure of the rate at which individual engineers involved in software development produce software and associated documentation.
We want to measure useful functionality produced per time unit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Productivity Measures (Size-Related measures)

A

Based on some output from the software process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Productivity Measures (Function-related measures)

A

Based on an estimate of the functionality of the delivered software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Estimation Problems (for productivity)

A
  • Estimating size of the measure.
  • Estimating the total number of programmer months which have elapsed.
  • Estimating contractor productivity and incorporating this estimate in overall estimate.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Productivity Comparisons

A

The lower level the language, the more productive the programmer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Function Points

A

Based on combination of program characteristics:
- External inputs and outputs.
- User interactions.
- External interfaces.
- Files used by the system.
A weight is associated with each of these.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Object Points

A

Alternative function-related measure to function points.
Object points != object classes.
Number of object points in a program is a weighted estimate of:
- Number of separate screens that are displayed.
- Number of reports that are produced by the system.
- Number of modules that must be developed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Factors Affecting Productivity

A
  • application domain experience
  • process quality
  • project size
  • technology support
  • working environment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quality and Producitivity

A

Metrics can be based on volume/unit time.
Productivity may be increased as the cost of quality.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Estimation Techniques

A

There is no simple way to make an accurate estimate of the effort required to develop a software system (initial estimates are based upon inadequate information, unfamiliar computers, unknown amount of people in project).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Self-fulfilling Product Cost

A

The estimate defines the budget and the product is adjusted to meet the budget.

17
Q

Estimation Techniques

A
  • Algorithmic cost modelling.
  • Expert judgement.
  • Estimation by analogy.
  • Parkinson’s Law.
  • Pricing to win.
18
Q

Algorithmic Code Modelling

A

A formulaic approach based on historical cost information and which is generally based on size of software.
Formula - A x (Size^B) X M
A = Organisation-dependent constant
B = disproportionate effort for large projects
M = multiplier reflecting product, process and people attributes.

19
Q

Expert Judgement

A

One or more experts in both software development and the application domain use their experience to product software costs.

20
Q

Expert Judgement Advantages and Disadvantages

A

Adv: cheap estimation method and can be accurate.
Dis: very inaccurate is there are no experts.

21
Q

Estimation By Analogy

A

Cost of project is computed by comparing the project to a similar project in the same application domain.

22
Q

Estimation By Analogy Advantages and Disadvantages

A

Adv: accurate if project data available.
Dis: impossible if no comparable project gas been tackled.

23
Q

Parkinson’s Law

A

The project costs whatever resources are available.
Adv: no overspend.
Dis: system is usually unfinished.

24
Q

Parkinson’s Law Advantages and Disadvantages

A

Adv: no overspend.
Dis: system is usually unfinished.

25
Q

Pricing To Win

A

The project costs whatever the customer has to spend on it.
Pricing to win seems unethical and unbusinesslike, but when detailed information is lacking it may be the only appropriate strategy.

26
Q

Pricing To Win Advantages and Disadvantages

A

Adv: you get the contract.
Dis: the probability of the customer getting the system they want is small, because costs do not accurately reflect work required.

27
Q

Top-Down Estimation

A

Start at system level and assess overall system functionality and how this is delivered through subsystems.

28
Q

Bottom-Up Estimation

A

Start as component level and estimate effort required for each component. Add these efforts to reach final estimate.

29
Q

Experienced-based Estimations

A

Estimating is mainly based upon experience, however, new methods and technologies may make estimating based on experience inaccurate.

30
Q

Estimation Accuracy

A

Size of software system can only be known when finished.
Several factors influence the size:
- Use of COTS and components.
- Programming language.
- Distribution of system.
Size becomes more accurate when development progresses.