Text this: Reliability risk assessment approaches in software engineering: a review structured by software development lifecycle (SDLC) phases and reliable sub-characteristics