Abstract
Adaptive systems are able to adapt their properties and resource requirements at runtime in response to dynamically varying user needs and resource constraints. With the emergence of mobile and service oriented computing, such variation is becoming increasingly common, and the need for adaptivity is increasing accordingly. Software product line engineering has proved itself as an efficient way to deal with varying user needs and resource constraints. In this paper we present an approach to building adaptive systems based on product line oriented techniques such as variability modeling and component based architectures. By representing the product line architecture at runtime, we are able to delegate much of the complexity of adaptation to a reusable adaptation platform. To validate our approach we have built a prototype adaptation platform and developed a few pilot applications exploiting the platform to achieve adaptivity.