Design and evaluation of adaptive software for mobile computing systems