Formal concept analysis-based class hierarchy design in object-oriented software development

  • Authors:
  • Robert Godin;Petko Valtchev

  • Affiliations:
  • Département d'informatique, UQAM, Montréal, Qc, Canada;DIRO, Université de Montréal, Montréal, Québec, Canada

  • Venue:
  • Formal Concept Analysis
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

The class hierarchy is an important aspect of object-oriented software development. Design and maintenance of such a hierarchy is a difficult task that is often accomplished without any clear guidance or tool support. Formal concept analysis provides a natural theoretical framework for this problem because it can guarantee maximal factorization while preserving specialization relationships. The framework can be useful for several software development scenarios within the class hierarchy life-cycle such as design from scratch using a set of class specifications, or a set of object examples, refactoring/reengineering from existing object code or from the observation of the actual use of the classes in applications and hierarchy evolution by incrementally adding new classes. The framework can take into account different levels of specification details and suggests a number of well-defined alternative designs. These alternatives can be viewed as normal forms for class hierarchies where each normal form addresses particular design goals. An overview of work in the area is presented by highlighting the formal concept analysis notions that are involved. One particularly difficult problem arises when taking associations between classes into account. Basic scaling has to be extended because the scales used for building the concept lattice are dependent on it. An approach is needed to treat this circularity in a well-defined manner. Possible solutions are discussed.