study of software life cycles 176368