Using Architecture Models for Runtime Adaptability