ISR Logo  

School of Computer Science

Institute for Software Research

Faculty Research Guide


ISR Faculty Research Home
SE PhD Program Home

 

SE and COS Faculty

Jonathan Aldrich
Kathleen Carley
Lorrie Cranor
David Farber
David Garlan
Jim Herbsleb
Raj Reddy
Norman Sadeh
William Scherlis
Mary Shaw
Latanya Sweeney

 
Affiliated Faculty
Ashish Arora
Bonnie John
Rick Kazman
Pradeep Khosla
Philip Koopman
James Morris
Priya Narasimhan
Eric Nyberg
Bradley Schmerl
Dan Siewiorek

DAVID GARLAN
Professor
Insititute for Software Research International, Computer Science

www

My field of interest is software engineering, and specifically the areas of software architecture, pervasive computing, and applied formal methods. The common thread that links these areas is the problem of controlling the complexity of large software systems by providing a scientific basis for software design.

Software Architecture. Successful design of software architecture has always been a major factor in determining the success of a software system. But until recently architectural design has been largely based on ad hoc choice, informal experience, and local expertise. The goal of this research component is make this knowledge precise, codified, and available to engineers as a matter of routine engineering. Towards this goal my research group has developed a number of languages and tools to support architectural design, including Wright (a formal language for software architectures that focuses on specification and analysis of component interactions), Aesop (a design environment for software architecture, supporting rapid customization to architectural styles), and Acme (a language for interchange of architectural designs).

Self-healing Systems. Increasingly systems must continue to operate continuously, interacting with diverse external services not under the control of the system designer. A new paradigm is emerging to handle such systems: each system takes responsibility for observing its own behavior, and for improving that behavior over time based on models of what behavior is desirable. My research group is using architectural models to do this. Thus architectural designs become run-time artifacts that permit system self-reflection and repair.

Pervasive and Cognitive Computing. The most precious resource in a computer system is no longer its processor, memory, disk or network, but rather user attention. Today's systems distract a user in many explicit and implicit ways, reducing effectiveness. Projects Aura and Radar, with which I am working, are rethinking 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. Project Radar is developing a basis for creating cognitive assistants that actively assist users in meeting their needs, such as scheduling a meeting, allocating space resources, or generating annual reports. Within these two projects, my principal interest is developing support for managing a users task load. Specifically, I am creating infrastructure that permits a user to move from one physical environment to another, and continue working on the same tasks, even though the underlying resources may change radically. I am also working on coordinating tasks for a single user or across multiple users.

Applied Formal Methods. The traditional use of formal (or mathematically-based) methods has been to solve the problem of refinement: given a formal specification of a system, how does one construct an implementation that is correct with respect to that specification. In contrast, my interest in formal methods is in dealing with the inverse problem of abstraction: given a family of existing systems, how does one construct a formal model that characterizes the important commonalities in these systems. When used in this way, formal methods become a tool for extracting reusable software architectures, for clarifying system design, for simplifying the way we think about a class of system, and for building a framework for reuse. Among the important research issues are those of methodology (How should we use formal notations in practice to arrive at system abstractions?), language (What notations, type systems, parameterization mechanisms, etc. are best suited to this use of formal methods?), and reusability (What properties of a formal model best support reusability, evolution, and adaptation?).


The Institute for Software Research International is part of the School of Computer Science at Carnegie Mellon University.

© 2004 Carnegie Mellon University
This site was last modified on July 9, 2004.