Software Measurement and Estimation: A Practical Approach