A Goal Modeling Framework for Self-Contextualizable Software