|
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?).
|