Software Cost Estimation Techniques Types