This document discusses different software estimation techniques. It describes what software estimation is, why it is needed, and some common difficulties in estimation. It then outlines factors to consider like product objectives, corporate assets, and project constraints. It discusses methods for estimating lines of code or function points. Function point analysis and the unadjusted and value adjustment components are explained. Models for calculating effort and cost using lines of code and function points are provided, including the COCOMO model and its organic, semi-detached, and embedded project types.