On automatic class insertion with overloading

Several algorithms [Cas92, MS89, Run92, DDHL94a, DDHL95, GMM95] have been proposed to automatically insert a class into an inheritance hierarchy. But actual hierarchies all include overriden and overloaded properties that these algorithms handle either very partially or not at all. Partially handled means handled provided there is a separate given function f able to compare overloaded properties [DDHL95, GMM95].In this paper, we describe a new version of our algorithm (named Ares) which handles automatic class insertion more efficiently using such a function f. Although impossible to fully define, this function can be computed for a number of well defined cases of overloading and overriding. We give a classification of such cases and describe the computation process for a well-defined set of nontrivial cases.The algorithm preserves these important properties:- preservation of the maximal factorization of properties- preservation of the underlying structure (Galois lattice) of the input hierarchy- conservation of relevant classes of the input hierarchy with their properties.

[1]  Marianne Huchard,et al.  ARES, Adding a class and REStructuring Inheritance Hierarchy , 1995, BDA.

[2]  Rudolf Wille Knowledge acquisition by methods of formal concept analysis , 1989 .

[3]  Eduardo Casais,et al.  An Incremental Class Reorganization Approach , 1992, ECOOP.

[4]  Karl J. Lieberherr,et al.  From objects to classes: algorithms for optimal object-oriented design , 1991, Softw. Eng. J..

[5]  Marie-Laure Mugnier,et al.  Proposal for a Monotonic Multiple Inheritance Linearization , 1994, OOPSLA.

[6]  Guy W. Mineau,et al.  Structuring knowledge bases using automatic learning , 1990, [1990] Proceedings. Sixth International Conference on Data Engineering.

[7]  Karl J. Lieberherr,et al.  Abstraction of Object-Oriented Data Models , 1990, ER.

[8]  Marie-Laure Mugnier,et al.  Proposal for a Monotonic Multiple Inheritance Linearization , 1994, OOPSLA.

[9]  Rokia Missaoui,et al.  Incremental structuring of knowledge bases , 1998 .

[10]  Hafedh Mili,et al.  Building and maintaining analysis-level class hierarchies using Galois Lattices , 1993, OOPSLA '93.

[11]  Ivan Moore,et al.  A Simple and Efficient Algorithm for Inferring Inheritance Hierarchies , 1996 .

[12]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[13]  R. Wille Concept lattices and conceptual knowledge systems , 1992 .

[14]  Paul L. Bergstein Object-preserving class transformations , 1991, OOPSLA 1991.

[15]  Harold Ossher,et al.  Combination of inheritance hierarchies , 1992, OOPSLA '92.

[16]  Ralph E. Johnson,et al.  Creating abstract superclasses by refactoring , 1993, CSC '93.

[17]  Ivan Moore,et al.  Automatic inheritance hierarchy restructuring and method refactoring , 1996, OOPSLA '96.

[18]  Michele Missikoff,et al.  An Algorithm for Insertion into a Lattice: Application to Type Classification , 1989, FODO.

[19]  Ivan Moore Guru - A Tool for Automatic Restructuring of Self Inheritance Hierarchies , 1995 .

[20]  Pierre Cointe,et al.  Prototype-Based Languages: From a New Taxonomy to Constructive Proposals and Their Validation , 1992, OOPSLA.

[21]  Marianne Huchard,et al.  ARES, un algorithme d'Ajout avec REStructuration dans les hiérarchies de classes , 1994, LMO.