Unique Components of Software Estimation
The software life cycle differs from that of hardware in several respects. Software development costs are mainly from labor whereas hardware development programs have a greater share of their cost from material. Additionally, hardware programs have a production phase with significant recurring effort, but because software is trivial to copy, there is no production phase and little or no recurring effort.
Despite these differences, software and hardware share similarities in their cost estimating approaches because they follow the same basic development process. In both cases, estimates may draw on the same types of methods—analogy, engineering build-up, parametric—with size and complexity being cost drivers. The effort required to develop software depends on its purpose and its level of integration with other systems. Finally, how quickly hardware and software can be produced depends on the developer’s capability, available resources, and familiarity with the environment. Thus, the approach to estimating software costs has two basic elements: the size of the software to be developed and the development effort to accomplish it.