Software development effort estimation is the process of predicting
the most realistic use of effort required to develop or maintain
software. Often, these estimates
are based on incomplete, uncertain and/or noisy input.Inaccuate effort estimates  can be very determential to the success of a project.
In our experience, when  a project is running over-budget, it is common
to reduce the scope of the project and/or reduce 
quality assurance activities.
In this way, poor estimates lead to reduced software quality (measured in terms of
either
{\em reduced} functionality or {\em incresed}
number of software defects in the delivered code).

Because of the importance of effort estimation, it is the focus of much
on-going research (for summaries of that work, see~\cite{shepperd07,jorgensen05}).
That research has resulted in many intricate and com

Software effort estimation is a complex task. 
Such estimates are required
many
vital business tasks including
project plans, iteration plans,
budgets, investment analyses, pricing processes and bidding rounds.
Hence, much resarch has focused on how to make accu


Nevertheless, regardless of the complexity of the task,
accurate preditions are important to the success of a project. If the resources allocated
to a project do not match the required effort, then the software must be delivered i

\hrule
