Extraction of ownership object graphs from object-oriented code: an experience report

  • Authors:
  • Marwan Abi-Antoun;Nariman Ammar;Zeyad Hailat

  • Affiliations:
  • Wayne State University, Detroit, MI, USA;Wayne State University, Detroit, MI, USA;Wayne State University, Detroit, MI, USA

  • Venue:
  • Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Despite receiving much research attention, the extraction of runtime architecture remains hard. One approach, SCHOLIA, relies on adding typecheckable annotations to the code, and uses static analysis to extract a global, hierarchical Ownership Object Graph (OOG). The OOG provides architectural abstraction by ownership hierarchy and by types, and can be abstracted into a run-time architecture represented in an architectural description language, for documentation or conformance analysis. We report on our experience in analyzing a medium-sized object-oriented system undergoing maintenance to: (1) extract an OOG; and (2) refine the OOG based on the maintainers' feedback. We evaluate the effectiveness of abstraction by ownership hierarchy and by types to extract an OOG that the system maintainers understand. We measure the extraction effort to be about 1~hour/KLOC. An evaluation with the lead maintainer confirms that he understands abstraction by ownership hierarchy and by types. Finally, we illustrate how to incrementally refine an extracted OOG (without starting all over) to better match the maintainer's mental model.