Analyzing inheritance hierarchies through Formal Concept Analysis: A 22-years walk in a landscape of conceptual structures

Designing or renovating inheritance hierarchies in the domain of programming or in the domain of modeling still remains a tricky task. It involves integrating domain concepts sometimes with no clear frontier, finding the good abstractions and avoiding duplicated information. In this paper, we review research work that addressed this topic with the use of Formal Concept Analysis (concept lattices) since the seminal paper of R. Godin and H. Mili at OOPSLA'93. We overview the different attempts, the explored limits, and the current issues.

[1]  Frank Tip,et al.  Understanding class hierarchies using concept analysis , 2000, TOPL.

[2]  Régine Laleau,et al.  Processus d'optimisation conceptuelle d'un schéma orienté-objet , 1999, Obj. Logiciel Base données Réseaux.

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

[4]  Lotfi Lakhal,et al.  iO2 - An Algorithmic Method for Building Inheritance Graphs in Object Database Design , 1996, ER.

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

[6]  Marianne Huchard,et al.  Computing interfaces in Java , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[7]  Roland Ducournau,et al.  "Real World" as an Argument for Covariant Specialization in Programming and Modeling , 2002, OOIS Workshops.

[8]  Petko Valtchev,et al.  Formal Concept Analysis-Based Class Hierarchy Design in Object-Oriented Software Development , 2005, Formal Concept Analysis.

[9]  Marianne Huchard,et al.  Aspects de la réingénierie des modèles UML par analyse de données relationnelles , 2007, Ingénierie des Systèmes d Inf..

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

[11]  Cyril Roume Analyse et restructuration de hiérarchies de classes , 2004 .

[12]  Clémentine Nebut,et al.  A Generic Approach for Class Model Normalization , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[13]  Sandro Bimonte,et al.  The use of UML to design agricultural data warehouses , 2010 .

[14]  Clémentine Nebut,et al.  Sizing the Underlying Factorization Structure of a Class Model , 2013, 2013 17th IEEE International Enterprise Distributed Object Computing Conference.

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

[16]  Hernán Astudillo Maximizing Object Reuse with a Biological Metaphor , 1997, Theory Pract. Object Syst..

[17]  Christiane Fellbaum,et al.  Book Reviews: WordNet: An Electronic Lexical Database , 1999, CL.

[18]  Amedeo Napoli,et al.  Relational concept analysis: mining concept lattices from multi-relational data , 2013, Annals of Mathematics and Artificial Intelligence.

[19]  Jim Waldo Controversy: The Case for Multiple Inheritance in C++ , 1991, Comput. Syst..

[20]  Hervé Leblanc,et al.  A new approach to factorization - introducing metrics , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[21]  Clémentine Nebut,et al.  Using natural language to improve the generation of model transformation in software design , 2009, 2009 International Multiconference on Computer Science and Information Technology.

[22]  Thomas A. Cargill,et al.  Controversy: The Case Against Multiple Inheritance in C++ , 1991, Comput. Syst..

[23]  Samuel C. Lee,et al.  Generation and Reorganization of Subtype Hierarchies , 1996, J. Object Oriented Program..

[24]  Frank Tip,et al.  Reengineering class hierarchies using concept analysis , 1998, SIGSOFT '98/FSE-6.

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

[26]  Marianne Huchard,et al.  On automatic class insertion with overloading , 1996, OOPSLA '96.

[27]  Giuseppe Castagna,et al.  Object-Oriented Programming A Unified Foundation , 1997, Progress in Theoretical Computer Science.

[28]  Samira Si-Said Cherfi,et al.  Towards an Assisted Reorganization of Is_A Hierarchies , 2002, OOIS.

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

[30]  Clémentine Nebut,et al.  A Practical Application of Relational Concept Analysis to Class Model Factorization: Lessons Learned from a Thematic Information System , 2013, CLA.

[31]  Hervé Leblanc,et al.  Galois lattice as a framework to specify building class hierarchies algorithms , 2000, RAIRO Theor. Informatics Appl..

[32]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

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

[34]  Marianne Huchard,et al.  Improving Generalization Level in UML Models Iterative Cross Generalization in Practice , 2004, ICCS.

[35]  Clémentine Nebut,et al.  Automatic Extraction of a WordNet-Like Identifier Network from Software , 2010, 2010 IEEE 18th International Conference on Program Comprehension.

[36]  Lotfi Lakhal,et al.  Designing Class Hierarchies of Object Database Schemas , 1997, BDA.

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

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

[39]  Rokia Missaoui,et al.  Design of Class Hierarchies Based on Concept (Galois) Lattices , 1998, Theory Pract. Object Syst..

[40]  John Wiley,et al.  Maximizing object reuse with a biological metaphor , 1997 .

[41]  Clémentine Nebut,et al.  Méthode de factorisation progressive pour accroître l'abstraction d'un modèle de classes , 2015, Ingénierie des Systèmes d Inf..