Summary: Static Extraction of Sound Hierarchical Runtime Object Graphs
Marwan Abi-Antoun Jonathan Aldrich
School of Computer Science, Carnegie Mellon University
For many object-oriented systems, it is often useful to have a run-
time architecture that shows networks of communicating objects.
But it is hard to statically extract runtime object graphs that provide
architectural abstraction from existing programs written in general
purpose languages, and that follow common design idioms.
Previous approaches extract low-level non-hierarchical object
graphs that do not provide architectural abstraction, change the lan-
guage too radically for many existing implementations, or use a dy-
namic analysis. Static analysis, which takes all possible executions
into account, is essential to extract a sound architecture, one that re-
veals all objects and relations that could possibly exist at runtime.
Ownership domain type annotations specify in code architec-
tural intent related to object encapsulation and communication. We
propose a static analysis that leverages such types and extracts a hi-
erarchical approximation of all possible runtime object graphs. The