Abstracting plan-like program information: a demonstration

Most programmers spend far more time understanding and modifying existing programs than they spend developing new programs. Current program views used for understanding programs seek to support understanding mainly at the program analysis level; that is, many views are often graphical representations of program analysis concepts, such as the program's data and control dependence graphs, abstract syntax trees or call graphs. However, it may be tedious to understand a program using only such analysis-centered views. We propose a new family of program views that support a more abstract level of program understanding, by describing plan-like program information. In this paper, we show how our views can succinctly present widely-scattered but logically-related program information to describe how certain program effects (e.g. the pattern of occurrence of a global variable) are implemented in a program, and how programmers can interactively manipulate these program views, through view composition and refinement.<<ETX>>

[1]  Eng-Siong Tan Programming plan abstraction: a cognitively motivated approach to program understanding using dependence analysis , 1994 .

[2]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[3]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

[4]  Mark A. Linton Implementing relational views of programs , 1984 .

[5]  H. Simon,et al.  Perception in chess , 1973 .

[6]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[7]  James R. Cordy,et al.  TuringTool: A User Interface to Aid in the Software Maintenance Task , 1990, IEEE Trans. Software Eng..

[8]  Steven P. Reiss Graphical program development with PECAN program development systems , 1984 .

[9]  Elliot Soloway,et al.  Delocalized Plans and Program Comprehension , 1986, IEEE Software.

[10]  B. Adelson Problem solving and the development of abstract categories in programming languages , 1981, Memory & cognition.

[11]  John K. Ousterhout,et al.  An X11 Toolkit Based on the Tcl Language , 1991, USENIX Winter.

[12]  Mark A. Linton,et al.  Implementing relational views of programs , 1984, SDE 1.

[13]  M. T. Harandi,et al.  PAT: a knowledge-based program analysis tool , 1988, Proceedings. Conference on Software Maintenance, 1988..

[14]  C. V. Ramamoorthy,et al.  The C Information Abstraction System , 1990, IEEE Trans. Software Eng..

[15]  Mayer D. Schwartz,et al.  Viewing a programming environment as a single tool , 1984 .

[16]  B. Shneiderman,et al.  Flowchart techniques for structured programming , 1973, SIGP.

[17]  Tim Teitelbaum The Cornell Program Synthesizer: a syntax-directed programming environment , 1979, SIGP.

[18]  Debra J. Richardson,et al.  Developing and integrating ProDAG in the Arcadia environment , 1992 .

[19]  Elliot Soloway,et al.  Mental models and software maintenance , 1986, J. Syst. Softw..

[20]  L. I. Vanek,et al.  Static analysis of program source code using EDSA , 1989, Proceedings. Conference on Software Maintenance - 1989.

[21]  Larry Masinter,et al.  The Interlisp Programming Environment , 1981, Computer.

[22]  D E Egan,et al.  Chunking in recall of symbolic drawings , 1979, Memory & cognition.

[23]  A. D. D. Groot Thought and Choice in Chess , 1978 .

[24]  Debra J. Richardson,et al.  Developing and integrating ProDAG in the Arcadia environment , 1992, SDE.

[25]  Linda M. Wills,et al.  Recognizing a program's design: a graph-parsing approach , 1990, IEEE Software.

[26]  Steven P. Reiss,et al.  Graphical program development with PECAN program development systems , 1984, SDE 1.