Performance analysis of software reliability growth model: a dynamic programming approach