Concept: Proxy Based Estimating

The process of planning a project requires an estimate
of the software product size before development begins.
An estimate of size can be converted into cost by
applying productivity factors. Estimates are typically
required at the completion of requirements when very
little is known about the software product to be built.
Proxy based estimating produces size estimates based on
previous developments in similar application domains.

A proxy is a unit of software size that can be identified
early in a project. Examples are screens, files, objects, logical
entities, functions and function points. Proxies can be easily
visualized from embryonic project specifications such as
requirements documents. They can then be translated into lines of
code by reference to historical sizes of similar proxies in
previous development projects. Lines of code together with
productivity figures can then be used to predict the resources
required for a project.

The number of screens required to satisfy a requirement is
often predictable at the completion of requirements
specification. Using the screen as the proxy, the size of the
program required to perform the screen function can be estimated
on the basis of previous experience in the same application
domain.

An estimator using an historical database organized as per
Table 103.1 would perform the following steps to derive an
estimate.

Identify application domain

Classify the transaction class

Determine level of complexity

Select the program size in lines of code

Apply a productivity factor in working hours per line of
code to determine total effort required.

Table 103.1. COBOL program size (lines of
code) for Human Resource Management Systems based on transaction
class and complexity.