Building and maintaining analysis-level class hierarchies using Galois Lattices

Software reuse is one of the most advertised advantages of object-orientation. Inheritance, in all its forms, plays an important part in achieving greater reuse, at all stages of development. Class hierarchies start taking shape at the analysis level, where classes that share application-significant data and application-meaningful external behavior are grouped under more general classes. At the design level, such hierarchies are augmented with implementation classes, and possibly reorganized to take into account implementation factors such as performance or code reuse [22]. Getting the analysis-level hierarchy "right" is very important for the understandability and traceability of the models and the reusability of the resulting code [22]. In this paper, we propose a formal method that organizes a set of class interfaces into a lattice structure called Galois Lattice [10]. Such a lattice has several advantages including: 1) embodying protocol conformance, 2) supporting an incremental updating algorithm [9]), with applications for class hierarchy maintenance. We first present the basic method and illustrate its use through an example inspired from [3]. Next, we discuss extensions to the method to take into account richer class descriptions in general, and the specifics of OO analysis-level models. Finally, we discuss some of the research directions we are currently pursuing.

[1]  Robert Godin,et al.  Lattice model of browsable data spaces , 1986, Inf. Sci..

[2]  Brad J. Cox,et al.  Planning the software industrial revolution , 1990, IEEE Software.

[3]  Rokia Missaoui,et al.  Learning algorithms using a Galois lattice structure , 1991, [Proceedings] Third International Conference on Tools for Artificial Intelligence - TAI 91.

[4]  Hafedh Mili,et al.  An object-oriented model based on relations , 1990, J. Syst. Softw..

[5]  Edward Yourdon,et al.  Object-oriented analysis (2nd ed.) , 1991 .

[6]  Rokia Missaoui,et al.  Experimental Comparison of Navigation in a Galois Lattice with Conventional Information Retrieval Methods , 1993, Int. J. Man Mach. Stud..

[7]  Ronald J. Brachman,et al.  Proceedings of the 1981 KL-ONE Workshop, , 1982 .

[8]  Dennis McLeod,et al.  Object flavor evolution in an object-oriented database system , 1988, COIS.

[9]  Ronald J. Brachman,et al.  An Overview of the KL-ONE Knowledge Representation System , 1985, Cogn. Sci..

[10]  Pat Langley,et al.  Models of Incremental Concept Formation , 1990, Artif. Intell..

[11]  Roy Rada,et al.  A model of hierarchies based on graph homomorphisms , 1992 .

[12]  Dennis McLeod,et al.  Object flavor evolution in an object-oriented database system , 1988 .

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

[14]  Gill Smith,et al.  Object-oriented analysis , 1988, WADAS '88.

[15]  Harold Ossher,et al.  Combination of Inheritance Hierarchies , 1992, OOPSLA.

[16]  Oscar Nierstrasz,et al.  Class management for software communities , 1990, CACM.

[17]  Karl J. Lieberherr,et al.  Incremental Class Dictionary Learning and Optimization , 1991, ECOOP.

[18]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[19]  William R. Cook Interfaces and specifications for the Smalltalk-80 collection classes , 1992, OOPSLA 1992.

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

[21]  William R. Cook,et al.  Interfaces and specifications for the Smalltalk-80 collection classes , 1992, OOPSLA.

[22]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[23]  Claus H. Pedersen,et al.  Extending ordinary inheritance schemes to include generalization , 1989, OOPSLA '89.

[24]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .