A Review of the Principles of Designing Smart Cyber-Physical Systems for Run-Time Adaptation: Learned Lessons and Open Issues | IEEE Journals & Magazine | IEEE Xplore