Generating software adaptations using machine learningML4PL talk
Recent availability of large amounts of sensor data from Internet of Things devices opens up the possibility for software systems to dynamically provide fine-grained adaptations to the observed environment conditions, rather than executing only static hard-coded behaviors. However, in current adaptive systems such adaptations still need to be specified beforehand, making the development process cumbersome as well as restricting the system adaptations only to those situations foreseen by the developers. We propose that adaptations should instead be generated by machine learning techniques at run time. Adaptive systems should incorporate an adaptation engine, which, through a mix of supervised and unsupervised learning, learns adaptive behaviors, and packages them into reusable software adaptations. We illustrate this idea with a simple proof-of-concept example using Context-oriented Programming, and focus on the challenges of implementing such an approach in the development of adaptive systems.