Reusable Self-Adaptation through Bidirectional Programming | IEEE Conference Publication | IEEE Xplore