An extensible representation for object-oriented programs, the Object-oriented Program De- pendence Graph (OPDG), is presented. The representation is divided into three layers: a rst layer that presents the class inheritance structure, a second layer that combines a traditional control dependence subgraph and a data dependence subgraph with objects, and a third layer that presents the dynamic, runtime aspects of an object-oriented program as an Object Depen- dence Subgraph. The representation is modular allowing speci c tools to only use the portion required for the tool's operation. The complete representation provides information su cient for most program analysis techniques including data ow analysis, reverse engineering, interactive debuggers and other tools.