study of software life cycles 5191618