# Tech Report CS-93-18

## Representing Software Systems in Multiple-View Development Environments

### Abstract:

How can software developers be provided with multiple interacting views of the systems they create, debug, enhance, and maintain? That is the fundamental question addressed in this thesis.

Related questions immediately suggest themselves. What is a view'' of a software system? Why might developers want to have more than one at a time? How can developers effectively interact with views? How can changes made in one view be propagated to other views? I address each of these questions in this dissertation, but my primary concern is more fundamental: how should the information about a software system be {\em represented\/} if multiple views of that system are to be offered?

My answer to this critical question of representation is a new graph structure called Semantic Program Graphs (SPGs). Compared to the representations used in current development environments, SPGs are less biased towards textual depictions of programs, are more expressive of the full range of semantics employed in software systems, and offer more convenient support for the development of custom user-defined views of such systems.

SPGs are the primary contribution of the research described in this thesis. However, there are important additional contributions as well. First, I analyze a number of different approaches to the problem of view integration in development environments, and I offer a comprehensive survey of existing work that places prior research efforts within the framework that grows out of my analysis. Second, I provide a new model for views of software systems that reflects much more realistically the true complexity of systems in practice, and I introduce SPGs as a representation that both supports this model and can act as an effective integration mechanism for multiple views. Finally, I provide an architecture for an interactive multiple-view development environment built around SPGs.

(complete text in pdf or gzipped postscript)