Reverse-engineering 1-n associations from Java bytecode using alias analysis

  • Authors:
  • Yoohoon Kang;Chanjin Park;Chisu Wu

  • Affiliations:
  • School of Computer Science and Engineering, Seoul National University, South Korea;School of Computer Science and Engineering, Seoul National University, South Korea;School of Computer Science and Engineering, Seoul National University, South Korea

  • Venue:
  • Information and Software Technology
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

1-n associations are design language constructs that represent one-to-many structural invariants for objects. To implement 1-n associations, container classes, such as Vector in Java, are frequently used as programming language constructs. Many of the current CASE tools fail to reverse-engineer 1-n associations that have been implemented via containers because sophisticated analyses are required to infer the type of elements collected in containers. This paper presents a new approach to reverse-engineering 1-n associations from Java bytecode based on alias analysis. In our approach, 1-n associations are inferred by examining the abstract heap structure that is constructed by applying an alias analysis on inter-variable relationships extracted from assignments and method invocations of containers. Our approach handles container alias problem that has been neglected by previous techniques by approximating the relationships between containers and elements at the object level rather than analyzing only the bytecode. Our prototype implementation was used with a suite of well-known Java programs. Most of the 1-n associations were successfully reverse-engineered from hundreds of class files in less than 1 minute.