Static Extraction of Object-Oriented Runtime Architectures

Abstract

For many object-oriented systems, it is useful to have a runtime architecture, that shows networks of objects. But it is hard to statically extract runtime object graphs that provide architectural abstraction from an arbitrary program written in a general purpose language that follows common design idioms. Previous approaches extract low-level non-hierarchical object graphs that do not provide architectural abstraction, change the language too radically for many existing implementations, or use a dynamic analysis. Static analysis, which takes all possible executions into account, is essential to extract a sound architecture, one that reveals all entities and relations that could possibly exist at runtime. Ownership domain type annotations specify in code architectural intent related to object encapsulation and communication. We propose a static analysis that leverages such types and extracts a hierarchical approximation of all possible runtime object graphs. The representation provides architectural abstraction, first by ownership hierarchy, and then by types. We proved core soundness results for the technique and evaluated it on several extended examples of medium-sized representative programs that we annotated manually.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Mar 01, 2008
Accession Number
ADA492575

Entities

People

  • Jonathan Erik Aldrich
  • Marwan Abi-antoun

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Engineered Resilient Systems

DTIC Thesaurus Topics

  • Abstracts
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Connectors
  • Construction
  • Encapsulation
  • Engineering
  • Extraction
  • Hierarchies
  • Language
  • Software Design
  • Terminals
  • Test And Evaluation
  • Transient Response Analysis
  • User Interface

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Parallel and Distributed Computing.
  • Systems Analysis and Design