From the start of the software era in the 1940s until today, software development and maintenance have become increasingly more complex and expensive. It has therefore been of growing importance for software engineering management to be able to predict the cost of developing and modifying software, in order to keep projects under control and prevent budget and schedule overruns.
Until about 1970, software cost estimation was performed manually, using simple rules of thumb or local estimating algorithms developed during trial and error methods. Since the late 1960s there has been a continuous development of estimation models and tools to support the estimation process.
The main objective of this thesis has been to create a summary of the empirical knowledge that has been acquired during more than 30 years of research. Software cost estimation appears to be a large and complicated field of research and the need for a comprehensive, yet brief, overview, is certainly present. It has been my intention to provide the reader with such an overview. The target group is readers who would like to get acquainted with the area of software cost estimation.