ABSTRACT

Consider the application program, in general, as containing a set of objects {Oi}, potentially hierarchically organized as a directed-acyclic-graph. The program behavior contains a set of actions {Aj} that operate on the objects. For example, in a word processing program, the objects could be graphical elements such as drawn shapes or text objects that together comprise the document, or the set of lines in a text editor [Leeman, 1986]. Modifications to the document are performed by action performed on an object (or a set of objects). On any object(s) O being acted upon, an action A could result in the modification of some of the objects’ attributes O.D[A] that are specifically affected by the action A. For example, attributes such as color or size could be changed by a graphical or programmed menu action A, in which case the affected data O.D[A] would be the variables that store the color or size of the drawn object. In applications with no object delineation, a single global object can be trivially defined as one that encapsulates all the variables of the program.