[snelting00toplas] | Gregor Snelting, Frank Tip, Understanding class hierarchies using concept analysis, ACM Transactions on Programming Languages and Systems, Vol. 22, (3), pp. 540--582, May 2000.
|
Abstract
A new method is presented for analyzing and reengineering class hierarchies.
In our approach, a class hierarchy is processed along with a set
of applications that use it, and a fine-grained analysis of the access
and subtype relationships between objects, variables, and class members
is performed. The result of this analysis is again a class hierarchy,
which is guaranteed to be behaviorally equivalent to the original
hierarchy, but in which each object only contains the members that
are required. Our method is semantically well-founded in concept
analysis: the new class hierarchy is a minimal and maximally factorized
concept lattice that reflects the access and subtype relationships
between variables, objects and class members. The method is primarily
intended as a tool for finding imperfections in the design of class
hierarchies, and can be used as the basis for tools that largely
automate the process of reengineering such hierachies. The method
can also be used as a space-optimizing source-to-source transformation
that removes redundant fields from objects. A prototype implementation
for Java has been constructed, and used to conduct several case studies.
Our results demonstrate that the method can provide valuable insights
into the usage of a class hierarchy in a specific context, and lead
to useful restructuring proposals.
Download
BibTeX
Authors at the institute