A Generalized Model for Software Reliability Evaluation Based on Non-Homogeneous Poisson Process