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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Booch, G.: Object Oriented Analysis and Design with Applications, 2nd edn. Addison- Wesley, Reading (1994)
Casais, E.: Managing Evolution in Object Oriented Environments: An Algorithmic Approach. PhD thesis, Université de Genève (1991)
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Jeremaes, P.: O-O Development — The FUSION Method. Prentice Hall, Englewood Cliffs (1993)
Cook, W.R.: Interfaces and Specifications for the Smalltalk-80 Collection Classes. In: Paepcke, A. (ed.) Proceedings of the Xth OOPSLA, pp. 1–15. ACM Press, New York (1992)
Cox, B.J.: Planning the Software Revolution. IEEE Software 7(6), 25–33 (1990)
Dao, M., Huchard, M., Rouane Hacene, M., Roume, C., Valtchev, P.: Improving Generalization Level in UML Models: Iterative Cross Generalization in Practice. In: Wolff, K.E., Pfeiffer, H.D., Delugach, H.S. (eds.) ICCS 2004. LNCS (LNAI), vol. 3127, pp. 346–360. Springer, Heidelberg (2004)
Dicky, H., Dony, C., Huchard, M., Libourel, T.: On Automatic Class Insertion with Overloading. In: Special issue of Sigplan Notice – Proceedings of ACM OOPSLA 1996, pp. 251– 267 (1996)
Dvorak, J.: Conceptual Entropy and Its Effect on Class Hierarchies. IEEE Computer 27(6), 59–63 (1994)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (2002)
Godin, R., Chau, T.T.: Comparaison d’algorithmes de construction de hiérarchies de classes. L’Objet 5(3), 321–338 (2000)
Godin, R., Huchard, M., Roume, C., Valtchev, P.: Inheritance And Automation: Where Are We Now. In: Object-Oriented Technology ECOOP Workshop Reader (2002)
Godin, R., Mili, H.: Building and maintaining analysis-level class hierarchies using Galois lattices. In: Proceedings of OOPSLA 1993, Washington (DC), USA, pp. 394–410 (1993)
Godin, R., Mili, H.: Building and maintaining analysis-level class hierarchies using Galois lattices. In: Proceedings of OOPSLA 1993, Washington (DC), USA, special issue of ACM SIGPLAN Notices, vol. 28(10), pp. 394–410 (1993)
Godin, R., Mili, H., Arfi, A., Mineau, G.W., Missaoui, R.: A Tool for Building and Evaluating Class Hierarchies Based on a Concept Formation Approach. In: Proceedings of the OOPSLA 1994 Workshop on Artificial Intelligence for Object-Oriented Software Engineering, Portland, Oregon (1994)
Godin, R., Mili, H., Mineau, G., Missaoui, R., Arfi, A., Chau, T.T.: Design of Class Hierarchies Based on Concept (Galois) Lattices. Theory and Practice of Object Systems 4(2) (1998)
Huchard, M.: Classification de classes contre classification d’instances. Evolution incrémentale dans les systèmes à objets basés sur des treillis de Galois. In: Actes de LMO 1999: Langages et Modèles à Objets, Hermés, pp. 179–196 (1999)
Huchard, M., Dicky, H., Leblanc, H.: Galois lattice as a framework to specify algorithms building class hierarchies. Theoretical Informatics and Applications 34, 521–548 (2000)
Huchard, M., Rouane Hacene, M., Roume, C., Valtchev, P.: Relational concept discovery in structured datasets. Discrete Applied Mathematics (2004) (submitted)
Huchard, M., Roume, C., Valtchev, P.: When concepts point at other concepts: the case of UML diagram reconstruction. In: Proceedings of the 2nd Workshop on Advances in Formal Concept Analysis for Knowledge Discovery in Databases (FCAKDD), pp. 32–43 (2002)
Johnson, R., Foote, B.: Designing reusable classes. Journal of Object-Oriented Programming, 22–35 (June/July 1988)
Korson, T., McGregor, J.D.: Technical Criteria for the Specification and Evaluation of Object-Oriented Libraries. Software Engineering Journal (1992)
Lalonde, W.R.: Designing families of data types using examplars. ACM Transactions on Programming. Languages and Systems 11(2), 212–248 (1989)
Leblanc, H.: Sous-hiérarchies de Galois: un modèle pour la construction et l’ evolution des hiérarchies d’objets (Galois sub-hierarchies: a model for construction and evolution of object hierarchies). PhD thesis, Université Montpellier 2 (2000)
Lieberherr, K.J., Bergstein, P., Silva-Lepe, I.: From Objects to Classes: Algorithms for Optimal Object-Oriented Design. Journal of Software Engineering 6(4), 205–228 (1991)
Liskov, B.: Data abstraction and hierarchy. ACM SIGPLAN Notices 23(5), 17–34 (1988)
Meyer, B.: Conception et programmation par objets pour du logiciel de qualité. Intereditions, Paris (1990)
Moore, I.: Automatic Inheritance Hierarchy Restructuring and Method Refactoring. In: Proceedings of OOPSLA 1996, San Jose (CA), USA, pp. 235–250 (1996)
Rapicault, P., Napoli, A.: Evolution d’une hiérarchie de classes par interclassement. L’Objet 7(1-2) (2001)
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., Lorensen, W.: Object Oriented Modeling and Design. Prentice Hall, Englewood Cliffs (1991)
Sahraoui, H., Godin, R., Miceli, T.: Can Metrics Help to Bridge the Gap Between the Improvement of OO Design Quality and its Automations. In: Proceedings of the International Conference on Software Maintenance, pp. 154–162 (2000)
Sahraoui, H.A., Lounis, H., Melo, W., Mili, H.: A Concept Formation Based Approach to Object Identification in Procedural Code. Automated Software Engineering 6, 387–410 (1999)
Snelting, G., Tip, F.: Understanding class hierarchies using concept analysis. ACM Transactions on Programming Languages and Systems 22(3), 540–582 (2000)
Snelting, G., Tip, F.: Semantics-based composition of class hierarchies. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 562. Springer, Heidelberg (2002)
Tonella, P.: Concept analysis for module restructuring. IEEE Transactions on Software Engineering 27(4), 351–363 (2001)
Valtchev, P., Hacene Rouane, M., Huchard, M., Roume, C.: Extracting Formal Concepts out of Relational Data. In: SanJuan, E., Berry, A., Sigayret, A., Napoli, A. (eds.) Proceedings of the 4th Intl. Conference Journées de l’Informatique Messine (JIM 2003): Knowledge Discovery and Discrete Mathematics, Metz (FR), September 3-6, pp. 37–49. INRIA (2003)
Yahia, A., Lakhal, L., Cicchetti, R., Bordat, J.P.: iO2 – An AlgorithmicMethod for Building Inheritance Graphs in Object Database Design. In: Thalheim, B. (ed.) ER 1996. LNCS, vol. 1157, pp. 422–437. Springer, Heidelberg (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Godin, R., Valtchev, P. (2005). Formal Concept Analysis-Based Class Hierarchy Design in Object-Oriented Software Development. In: Ganter, B., Stumme, G., Wille, R. (eds) Formal Concept Analysis. Lecture Notes in Computer Science(), vol 3626. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11528784_16
Download citation
DOI: https://doi.org/10.1007/11528784_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-27891-7
Online ISBN: 978-3-540-31881-1
eBook Packages: Computer ScienceComputer Science (R0)