The objectives of this project are as follows: (l) To design a graphical event description language and environment to support development of abstract models for the different layers of a message-passing program's communication structure. (2) To develop a debugging tool that compares a communication model defined in the above graphical language to the run-time communication structure of a program. (3) To study the effectiveness of the graphical event description language and the debugging technique. The debugging tool provides the user with a mechanism for directing a debugging session based on the user's mental abstractions of a program's communication structure. Additionally, the communication model can be designed for any level of the program and thus allows the user to debug the program in a top-down fashion. By providing one general graphical format for describing the model and for displaying the run-time behavior, users are given a common visual interface for both the input and output of the debugger based on their own abstractions.