Improving the reliability of mobile software systems through continuous analysis and proactive reconfiguration