In this paper, a survey of key software estimation models that exist and are used today is presented. The study identified several limitations and inefficiencies in these models. Existing methods and equations in some of the models are developed through analysis of historical data calibrated to a specific development environment. Some cost models estimate the overall cost of a project; others estimate the effort required in predefined phases. Estimating the overall cost of a project lacks necessary details, while estimating cost in predefined phases forces the use of these phases, which may not fit with an organization actual artifacts and processes. Most of the information for the initial cost estimation comes from the feasibility study and requirements analysis. However, costs are estimated very early, there is less information upon which to base estimates and, therefore, this information is less detailed and the estimates may be less accurate. In addition, the estimation process is usually done once during the early stage of a project and rarely, if ever, updated.