Concept: Proxy Based Estimating


Contents

  1. Introduction
  2. Definition
  3. Example
  4. Further Reading

1. Introduction

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.


2. Definition

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.


3. Example

Screen Proxy

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.

  1. Identify application domain
  2. Classify the transaction class
  3. Determine level of complexity
  4. Select the program size in lines of code
  5. 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.

  Transaction Complexity
Transaction
Class
Low Medium High
Create Entity 100 300 1000
Read Entity 50 150 200
Update Entity 200 400 1000
Delete Entity 50 70 150


4. Further Reading

[17] A Discipline for Software Engineering (Chapter 5).


Software Engineering Web
Copyright
ã 1997 Chambers & Associates Pty Ltd
Module: 103 v1.0 co_proxy.htm
Updated: July 02, 2006