An architecture-based approach to self-adaptive software | IEEE Journals & Magazine | IEEE Xplore