Abstract
The use of handheld networked devices to access information systems by people moving around is spreading rapidly. Systems being used in this way typically face dynamic variation in their operating environment. This poses new challenges for system developers that need to build systems that adapt dynamically to the changing operating environment in order to maintain usability and usefulness for mobile users. In this paper we propose an approach to building such self-adapting systems where the adaptation is handled by generic middleware. Our approach builds on component frameworks and variability engineering to achieve adaptable systems, and property modelling, architectural reflection and context monitoring to support dynamic self-adaptation.