Architectural Level Hypothesis Testing through Reverse Engineering of Object-Oriented Software

  • Authors:
  • S. Counsell;P. Newson;E. Mendes

  • Affiliations:
  • -;-;-

  • Venue:
  • IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
  • Year:
  • 2000

Quantified Score

Hi-index 0.01

Visualization

Abstract

Comprehension of an Object-Oriented (OO) system, its architecture and use of OO features such as aggregation, generalization and other forms of association is a difficult task to undertake without the original design documentation for reference. In this paper, a reverse engineering tool was used to reproduce the UML design documentation from code of three industrial-sized systems. High-level class metrics were then collected directly from the design documents. Three hypotheses were tested to establish relationships between these high-level features and the low-level class features of number of class methods and attributes. A further hypothesis was tested to determine features of key classes in a system.Results indicated that, whilst no clear patterns emerged for hypotheses relating to generalization, there was a clear (positive) statistical significance for all three systems studied between aggregation, other types of association and the number of method and attributes in a class. The final hypothesis tested supported the view that key classes in each of the three systems tended to contain a large number of methods, attributes, and associations, significant amounts of aggregation but very little inheritance. An important factor in the comprehension of a systems' architecture is therefore an understanding of the systems' key classes and the coupling patterns (due to aggregation and association) of those classes.