Title :
Architectural level hypothesis testing through reverse engineering of object-oriented software
Author :
Counsell, S. ; Newson, P. ; Mendes, E.
Author_Institution :
Dept. of Comput. Sci., London Univ., UK
Abstract :
Comprehension of an object oriented (OO) system, its architecture and use of OO features such as aggregation, generalisation and other forms of association is a difficult task to undertake without the original design documentation for reference. 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 generalisation, 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
Keywords :
object-oriented programming; program testing; reverse engineering; software architecture; software metrics; OO features; UML design documentation; architectural level hypothesis testing; class methods; coupling patterns; design documentation; design documents; high level class metrics; high level features; industrial sized systems; inheritance; key classes; low level class features; object oriented software comprehension; reverse engineering; reverse engineering tool; statistical significance; systems architecture understanding; Computer architecture; Computer science; Documentation; Educational institutions; Impedance; Industrial relations; Reverse engineering; Software testing; System testing; Unified modeling language;
Conference_Titel :
Program Comprehension, 2000. Proceedings. IWPC 2000. 8th International Workshop on
Conference_Location :
Limerick
Print_ISBN :
0-7695-0656-9
DOI :
10.1109/WPC.2000.852480