Growth in the complexity of computing systems, in the dynamism of the environments they operate in, and the need for timely adaptations as conditions change, now pose significant challenges for manual systems management and reconfiguration. There is thus increasing interest in systems that sense relevant conditions and adapt automatically as they change. A problem we have observed in designing such systems is that we lack principles and methods to guide their design. Our hypothesis is that the modern notion of information hiding as a guide to modularization of software artifacts and design processes can be re-interpreted to provide a guide for organizing runtime structures and adaptation dynamics in self-adaptive systems. We argue that such an approach is important to achieving a number of key system properties, including scalability, analyzability, and efficiency. In this paper, we present our approch of modeling, decomposition and synthesis of runtime adaptive systems. To emphasiz...