Reengineering class hierarchies using concept analysis

  • Authors:
  • Gregor Snelting;Frank Tip

  • Affiliations:
  • Technische Universiträt Braunschweig, Abteilung Softwaretechnologie, Büiltenweg 88, D-38106 Braunschweig, Germany;IBM T.J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY

  • Venue:
  • SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

The design of a class hierarchy may be imperfect. For example, a class C may contain a member m not accessed in any C-instance, an indication that m could be eliminated, or moved into a derived class. Furthermore, different subsets of C's members may be accessed from different C-instances, indicating that it might be appropriate to split C into multiple classes. We present a framework for detecting and remediating such design problems, which is based on concept analysis. Our method analyzes a class hierarchy along with a set of applications that use it, and constructs a lattice that provides valuable insights into the usage of the class hierarchy in a specific context. We show how a restructured class hierarchy can be generated from the lattice, and how the lattice can serve as a formal basis for interactive tools for redesigning and restructuring class hierarchies.