Reengineering class hierarchies using concept analysis
G Snelting, F Tip - ACM SIGSOFT Software Engineering Notes, 1998 - dl.acm.org
ACM SIGSOFT Software Engineering Notes, 1998•dl.acm.org
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 …
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 …
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.