Software Cost Estimation Flashcards
Software Cost Estimation
Involves predicting the resources required for a software development process.
Fundamental Estimation Questions
- 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.
Software Cost Components
- 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)
Cost and Pricing
Estimates are made to discover of producing a software system.
Software Pricing Factors
- market opportunity
- cost estimate uncertainty
- contractual terms
- requirements volatility
- financial health
Programmer Productivity
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.
Productivity Measures (Size-Related measures)
Based on some output from the software process.
Productivity Measures (Function-related measures)
Based on an estimate of the functionality of the delivered software.
Estimation Problems (for productivity)
- 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.
Productivity Comparisons
The lower level the language, the more productive the programmer.
Function Points
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.
Object Points
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.
Factors Affecting Productivity
- application domain experience
- process quality
- project size
- technology support
- working environment
Quality and Producitivity
Metrics can be based on volume/unit time.
Productivity may be increased as the cost of quality.
Estimation Techniques
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).