Accurate estimation is the foundation of effective project planning, tracking and controlling. Model-based methods, in contrast to expert-experience-based methods, are more independent of individual's capabilities and more reusable in software development organizations, so they are the focus of research in software cost estimation. They may be classified into algorithm-driven models, data-driven models and composite models. In term of the classification schema, the typical methods are described in detail. Then, their assumptions, application environment, advantages and limitations are analyzed deeply which are viewed from both internal attributes and external evaluation. Finally, the future of software cost estimation research is discussed. The purpose of the paper is to compare the advantages and disadvantages of the representative estimation models and provide support for using the suitable models for software development organization.