An adaptive model for software reliability prediction