David Garlan
Professor of Computer Science


Institute for Software Research
School of Computer Science
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA  15213

office:  Wean Hall 4218
phone:  412.268.5056
fax:  412.268.3455

email:  garlan - at - cs.cmu.edu
Administrative Assistant: 
Margaret Weigand <weigand - at - cs.cmu.edu>


Home Projects Publications Academics External Activities


Current Projects


Carnegie Mellon University's ABLE Project conducts research leading to an engineering basis for software architecture.  Components of this research include developing ways to describe and exploit architectural styles, providing tools for practicing software architects, and creating formal foundations for specification and analysis of software architectures and architectural styles.  Furthermore, the ABLE group is researching how to cope with emerging computing challenges of ubiquity, pervasiveness, heterogeneity, mobility, and naive users.


Carnegie Mellon CyLab is a bold and visionary effort, which establishes public-private partnerships to develop new technologies for measurable, secure, available, trustworthy, and sustainable computing and communications systems.  CyLab is a world leader in both technological research and the education of professionals in information assurance, security technology, business and policy, as well as security awareness among cybercitizens of all ages.  Building on more than two decades of Carnegie Mellon leadership in Information Technology, CyLab is a university-wide initiative that involves more than 50 faculty and 100 graduate students from more than six different departments and schools.  CyLab provides technology resources and expertise in four areas:  1) technology transfer to and from the public section, 2) technology transfer to and from the private sector, 3) development of information assurance professionals, and 4) national awareness programs and tools.



To reduce the cost and improve the reliability of making changes to complex systems, we are developing new technology supporting automated, dynamic system adaptation via architectural models, explicit representation of user tasks, and performance-oriented run-time gauges.  This technology is base don innovations in three critical areas:  1)  Detection:  the ability to determine dynamic (run-time) properties of complex, distributed systems, 2) Resolution:  the ability to determine when observed system properties violate critical design assumptions, and 3) Adaption:  the ability to automate system adaptation in response to violations of design assumptions.  These new capabilities will provide both (a) the ability to handle system changes with respect to the specific (performance-oriented) gauges supported by our technology, and (b) an extensible framework to handle additional gauges and system adaptation strategies produced by others.  In aggregate, the capabilities will dramatically reduce the need for user intervention in adapting systems to achieve quality goals, improve the dependability of changes, and support a whole new breed of systems that can perform reliable self-modification in response to dynamic changes in environment.  We will demonstrate these improvements in the context of complex real time information systems supporting distributed collaboration and planning.  Specifically, we will show how our technology enables automatic system adaptation in the presence of significant variations in processing and network capabilities, and for dynamically evolving workloads, while maintaining critical architectural constraints.


Past Projects


The most precious resource in a computer system is no longer its processor, memory, disk or network.  Rather, it is a resource not subject to Moore's law:  User Attention.  Today's systems distract a user in many explicit and implicit ways, thereby reducing his effectiveness.  Project Aura will fundamentally rethink system design to address this problem.  Aura's goal is to provide each user with an invisible halo of computing and information services that persists regardless of location.  Meeting this goal will require effort at every level:  from the hardware and network layers, through the operating system and middleware, to the user interface and applications.  Project Aura will design, implement, deploy, and evaluate a large-scale system demonstrating the concept of a "personal information aura" that spans wearable, handheld, desktop and infrastructure computers.


RADAR (Reflective Agents with Distributed Adaptive Reasoning) is a flagship research project within Carnegie Mellon University to develop a personal cognitive assistant that integrates with current desktop and applications, and helps users to carry out routine tasks, such as organizing meetings, answering routine emails, managing web pages, etc.  RADAR is composed of several specialist components that have knowledge about how to do a task, and which learn over time user preferences and idiosyncrasies when performing tasks.  The ABLE group is researching the software architectural style that is required to put together such a system, and also in providing task management support within RADAR.


Specification and Verification Center

Our center focuses on the formal specification and verification of hardware and software systems.  We invent new mathematically-based techniques, languages, and tools to model the behavior of systems and to verify that these models satisfy desired properties.  We also use our tools to find bugs in hardware and software designs.  Thus, our approach of using formal methods complements the more traditional approaches of simulation and testing.  Our challenges are in modeling large, complex systems and in verifying behavioral properties of concurrent, distributed, real-time, and resource-constrained systems.  To meet these challenges, we do fundamental research on data structures and algorithms, data and control abstractions, specification logics, and compositional proof techniques; we build tools such as model checkers, proof checkers, and combinations of the two; we apply our methods to a diverse range of applications:  automotive controllers, circuit designs, communication protocols, disk arrays, distributed simulation architectures, file systems, networked systems, robots, security protocols, and spacecraft.


This page is part of David Garlan's site in the School of Computer Science at Carnegie Mellon University.  Use of any portion of this site to generate spam or other mass communication is forbidden.  Comments to the maintainer.