Skip to main content

Formal Concept Analysis-Based Class Hierarchy Design in Object-Oriented Software Development

  • Chapter
Formal Concept Analysis

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 3626))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Booch, G.: Object Oriented Analysis and Design with Applications, 2nd edn. Addison- Wesley, Reading (1994)

    Google Scholar 

  2. Casais, E.: Managing Evolution in Object Oriented Environments: An Algorithmic Approach. PhD thesis, Université de Genève (1991)

    Google Scholar 

  3. Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Jeremaes, P.: O-O Development — The FUSION Method. Prentice Hall, Englewood Cliffs (1993)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Cox, B.J.: Planning the Software Revolution. IEEE Software 7(6), 25–33 (1990)

    Article  Google Scholar 

  6. 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)

    Chapter  Google Scholar 

  7. 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)

    Google Scholar 

  8. Dvorak, J.: Conceptual Entropy and Its Effect on Class Hierarchies. IEEE Computer 27(6), 59–63 (1994)

    Google Scholar 

  9. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (2002)

    Google Scholar 

  10. Godin, R., Chau, T.T.: Comparaison d’algorithmes de construction de hiérarchies de classes. L’Objet 5(3), 321–338 (2000)

    Google Scholar 

  11. Godin, R., Huchard, M., Roume, C., Valtchev, P.: Inheritance And Automation: Where Are We Now. In: Object-Oriented Technology ECOOP Workshop Reader (2002)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Article  MATH  MathSciNet  Google Scholar 

  18. Huchard, M., Rouane Hacene, M., Roume, C., Valtchev, P.: Relational concept discovery in structured datasets. Discrete Applied Mathematics (2004) (submitted)

    Google Scholar 

  19. 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)

    Google Scholar 

  20. Johnson, R., Foote, B.: Designing reusable classes. Journal of Object-Oriented Programming, 22–35 (June/July 1988)

    Google Scholar 

  21. Korson, T., McGregor, J.D.: Technical Criteria for the Specification and Evaluation of Object-Oriented Libraries. Software Engineering Journal (1992)

    Google Scholar 

  22. Lalonde, W.R.: Designing families of data types using examplars. ACM Transactions on Programming. Languages and Systems 11(2), 212–248 (1989)

    Article  Google Scholar 

  23. 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)

    Google Scholar 

  24. 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)

    Article  Google Scholar 

  25. Liskov, B.: Data abstraction and hierarchy. ACM SIGPLAN Notices 23(5), 17–34 (1988)

    Article  Google Scholar 

  26. Meyer, B.: Conception et programmation par objets pour du logiciel de qualité. Intereditions, Paris (1990)

    Google Scholar 

  27. Moore, I.: Automatic Inheritance Hierarchy Restructuring and Method Refactoring. In: Proceedings of OOPSLA 1996, San Jose (CA), USA, pp. 235–250 (1996)

    Google Scholar 

  28. Rapicault, P., Napoli, A.: Evolution d’une hiérarchie de classes par interclassement. L’Objet 7(1-2) (2001)

    Google Scholar 

  29. Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., Lorensen, W.: Object Oriented Modeling and Design. Prentice Hall, Englewood Cliffs (1991)

    Google Scholar 

  30. 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)

    Google Scholar 

  31. 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)

    Article  Google Scholar 

  32. Snelting, G., Tip, F.: Understanding class hierarchies using concept analysis. ACM Transactions on Programming Languages and Systems 22(3), 540–582 (2000)

    Article  Google Scholar 

  33. Snelting, G., Tip, F.: Semantics-based composition of class hierarchies. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 562. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  34. Tonella, P.: Concept analysis for module restructuring. IEEE Transactions on Software Engineering 27(4), 351–363 (2001)

    Article  Google Scholar 

  35. 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)

    Google Scholar 

  36. 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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics