The proliferation of computing systems into every facet of our everyday lives raises a number of challenges for software engineering. Among those, we need to be able to build systems that take more control over their own dependability, security, and usefulness -- automating many of the things that now lead to system failures and require computing experts to manage. In this talk I describe new architectural approaches to addressing these challenges, including the ability to support self-healing through architectural refection and automated repair, and architectures that allow systems to learn new behaviors by observing their users.
['David Garlan']
Invited Talk - Engineering Self-Healing and Self-Improving Systems