A system consists of components, described by interfaces, and connectors, described by protocols. Components communicate with each other through connectors. In Figure 1, component A communicates with C using protocol P; B with C using Q; A and B do not directly communicate. A and B could both be clients communicating through remote procedure call to server C; A, B, and C could be a filters connected through pipes P and Q. A could be a user process making synchronous calls to the file system manager C which asynchronously reads and writes from disk B.
Though we are all interested in understanding whole diagrams of the kind in Figure 1 and their multitude of interpretations and applications, each of us is also specifically focusing on various aspects of these diagrams. Mary Shaw and David Garlan both focus on the ways to configure the components and connectors (and on the styles and meanings of the configurations). David Garlan also focuses on connectors and their protocols; Jeannette Wing, on components and their interfaces; Daniel Jackson, on partial and whole configurations where components and connectors may themselves only be partially specified (imagine dotted, rather than solid, lines for the boxes and lines in Figure 1).
There are also three themes that cut cross our individual research projects and interests: software architectures (Garlan, Shaw), formal methods (Garlan, Jackson, Wing), and tractable software analysis (Jackson).
In the following sections we give more details of our individual research interests and projects and a list of relevant publications. Please feel free to contact any of us through e-mail at firstname.lastname@cs.cmu.edu for more information.