Professor
Carnegie Mellon University
David Garlan is a Professor of Computer Science in the School of Computer Science at Carnegie Mellon University, where he has been on the faculty since 1990. He received his Ph.D. from Carnegie Mellon in 1987 and worked as a software architect in industry between 1987 and 1990. His interests include software architecture, self-adaptive systems, formal methods, and cyber-physical systems.
He is a co-author of two books on software architecture: Software Architecture: Perspectives on an Emerging Discipline, and Documenting Software Architecture: Views and Beyond. In 2005 he received a Stevens Award Citation for “fundamental contributions to the development and understanding of software architecture as a discipline in software engineering.” In 2011 he received the Outstanding Research award from ACM SIGSOFT for “significant and lasting software engineering research contributions through the development and promotion of software architecture.” He is a Fellow of the IEEE a Fellow of the ACM.
Self-healing Systems
The use of computing systems into every facet of our everyday lives raises a number of challenges for software engineering. In particular one of the most important requirements for today’s systems is high availability – even in the presence of faults, changing environmental conditions, and attacks. To address these requirements we need to be able to build systems that take more control over their own dependability, security, and usefulness – automating many of the tasks that now lead to system failures and that require computing experts and administrators to manage. This has led to a new sub-field of software engineering and systems design, sometimes termed Autonomic Computing, Self-healing Systems, or Self-Adaptive Systems.
In this talk I describe this emerging field and recent advances that allow us to address various engineering challenges, including (a) the ability to support self-healing through architectural models and automated repair, (b) new techniques for diagnosing faults at run-time with applications to manufacturing control systems, and (c) the ability to support self-securing systems.