kirancodes.me
To Proof Maintenance & Beyond!

Reengineering Class Hierarchies Using Concept Analysis

Gregor Snelting, Frank Tip

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.

BibTeX
@inproceedings{Snelting-Tip:FSE98,
  author    = {Gregor Snelting and
               Frank Tip},
  title     = {Reengineering Class Hierarchies Using Concept Analysis},
  booktitle = {FSE},
  pages     = {99--110},
  publisher = {{ACM}},
  year      = {1998},
}

Related papers