This book discusses the problems and challenges in the interdisciplinary research field of self-adaptive software systems. Modern society is increasingly filled with software-intensive systems, which are required to operate in more and more dynamic and uncertain environments. These systems must monitor and control their environment while adapting to meet the requirements at runtime. This book provides promising approaches and research methods in software engineering, system engineering, and related fields to address the challenges in engineering the next-generation adaptive software systems. The contents of the book range from design and engineering principles (Chap. 1) to control-theoretic solutions (Chap. 2) and bidirectional transformations (Chap. 3), which can be seen as promising ways to implement the functional requirements of self-adaptive systems. Important quality requirements are also dealt with by these approaches: parallel adaptation for performance (Chap. 4), self-adaptive authorization infrastructure for security (Chap. 5), and self-adaptive risk assessment for self-protection (Chap. 6). Finally, Chap. 7 provides a concrete self-adaptive robotics operating system as a testbed for self-adaptive systems. The book grew out of a series of the Shonan Meetings on this ambitious topic held in 2012, 2013, and 2015. The authors were active participants in the meetings and have brought in interesting points of view. After several years of reflection, they now have been able to crystalize the ideas contained herein and collaboratively pave the way for solving some aspects of the research problems. As a result, the book stands as a milestone to initiate further progress in this promising interdisciplinary research field.