Preface

This book presents the current state of the art and emerging research in combining visual and object-oriented programming. Visual programming is the use of graphical techniques in computer programming. It takes into account the need for pregrammers to communicate with computers using both graphics and text, and for computers to communicate with programmers. Object-oriented programming (OOP) is the act of modeling systems in terms of objects-software descriptions of the behavior of a part of the system. Message passing is the fundamental way in which objects interact. Researchers and developers are exploring how to combine visual programming with object-oriented programming to improve the ease of systems development, by investigating how the basic concepts of object-oriented programming-data abstraction, instantiation, composition, and specialization-create new opportunities for expressing systmes in terms of visual construction.

The material in this book originated in a workshop on visual object-oriented programming that was held as a part of the ACM OOPSLA'93 Conference in Washinton, D.C. The workshops participants gathered to determine and advance the state of the art of visual object-oriented programming. Toward this end, particiants presented their current research, discussed unsolved problems, and suggested ways to find solutions. The chapters in this book document these presentations and add material on research related to the workshop discussions. We have added an introductory section to survey the basic ideas of both visual and object-oriented programming. We have also included reprints of papers on two classic systems, Prograph and ThingLabII, that set the stage for the practical application of visual techniques in object-oriented programming.

The book is organized in three parts. Although we assume that the reader has a basic understanding of programming language concepts, similar to that provided in an undergraduate computer science course of study, we do not assume knowledge of visual or object-oriented concepts. We provide this introduction in Part I. Basic concepts are defined and illustrated in Chapter 1. We then emphasize the current commercial viability of visual programming systems by describing in Chapter 2 how one organization uses commercially available visual programming languages to develop software for its customers.

Part II is for the language enthusiast. It contains six chapters that describe the languages and language-related goals and techniques of visual object-oriented programming. Specifically, the section covers Prograph from Prograph International and the Technical University of Nova Scotia, VIPR from the University of Colorado, Pursuit from Carnegie Mellon University, ThingLabII from the University of Washington, Vampire from Rensselaer Polytechnic Institute and IBM Federal Systems Company, and Forms/3 from Oregon State University.

The visual context or environment in which programming takes place is the central theme of Part III, whose chapters focus on how to provide an integrated approach to program creation-design, code reuse, and prototyping-when using a visual object-oriented programming system. This section covers the visual environment for Self from Sun Microsystems Laboratories and Stanford University, Vista from Johannes Kepler University, Linz, SPE and Cerno from the University of Auckland, and a visual approach to framework support from Johannes Kepler University, Linz.

We would like to thank Oregon State University, ParcPlace Systems, Inc., and the Naval Postgraduate School for their support of the administrative costs associated with editing this book. We especially would like to thank our publisher, Marjan Bace, who contributed many excellent suggestions. We appreciated both the suggestions and the spirit in which they were given. We also would like to thank Mamdouh Ibrahim, Workshop Chair for OOPSLA'93, for his encouragement of the workshop that led to this book. And finally, we extend our appreciation to the authors who willingly and ably submitted their chapters to a formal review and revision process.

MARGARET BURNETT
ADELE GOLDBERG
TED LEWIS