Taming uncertainty in the assurance process of self-adaptive systems: A goal-oriented approach