Date Awarded


Document Type


Degree Name

Doctor of Philosophy (Ph.D.)


Computer Science


Phil Kearns


The concurrent execution of processes in a distributed system makes the interactions between them difficult to understand. A clear image of the execution sequence that occurs as well as possible alternative scenarios is paramount to providing the software engineer the understanding needed to create reliable software.;In this thesis, we examine several representation methods of presenting a pictorial view of the execution of a distributed system and evaluate each in terms of three criteria. First, only those relationships that are created during the execution can and must be presented. Second, the presentation must be such that a reasonable amount of information can be extracted from the picture. Third, the technique must be scalable to an arbitrary large system.;We begin by examining an informative and scalable technique. We expose a simple graph that, if present in the system's execution, prevents accuracy from being achieved in this technique. We prove that the absence of this graph is sufficient to ensure that an accurate representation is possible.;Our own technique is developed next. We first prove that the technique is accurate in that a representation of an interprocess relationship is presented if and only if it actually exists in the execution being displayed. While being theoretically scalable to any number of processes, the practical use of the technique is limited to a small distributed system that is relatively short-lived. In addition, the display is of only moderate use since it quickly becomes too complex for information to be extracted by the software engineer.;We conclude by presenting our second technique that is accurate, scalable, and informative. The technique does not attempt to display the complete set of relationships in a single picture. Instead, an accurate subset is presented and the engineer is allowed to easily alter the selected subset. We show that the presentation is clear and concise. An implemented prototype demonstrates the utility of the technique in providing the software engineer with a tool that can be used to develop software that is less likely to suffer from concurrency related problems.



© The Author