Generating a catalog of unanticipated schemas in class hierarchies using formal concept analysis

Detalles Bibliográficos
Autor Principal: Arévalo, Gabriela Beatriz
Otros autores o Colaboradores: Ducasse, Stéphane, Gordillo, Silvia Ethel, Nierstrasz, Oscar
Formato: Capítulo de libro
Lengua:inglés
Temas:
Acceso en línea:http://hal.inria.fr/inria-00531498
Consultar en el Cátalogo
Resumen:Context: Inheritance is the cornerstone of object-oriented development, supporting conceptual modeling, subtype polymorphism and software reuse. But inheritance can be used in subtle ways that make com- plex systems hard to understand and extend, due to the presence of implicit dependencies in the inher- itance hierarchy. Objective: Although these dependencies often specify well-known schemas (i.e., recurrent design or cod- ing patterns, such as hook and template methods), new unanticipated dependency schemas arise in prac- tice, and can consequently be hard to recognize and detect. Thus, a developer making changes or extensions to an object-oriented system needs to understand these implicit contracts defined by the dependencies between a class and its subclasses, or risk that seemingly innocuous changes break them. Method: To tackle this problem, we have developed an approach based on Formal Concept Analysis. Our Formal Concept Analysis based-Reverse Engineering methodology (FoCARE) identifies undocumented hierarchical dependencies in a hierarchy by taking into account the existing structure and behavior of classes and subclasses. Results: We validate our approach by applying it to a large and non-trivial case study, yielding a catalog of hierarchy schemas, each one composed of a set of dependencies over methods and attributes in a class hierarchy. We show how the discovered dependency schemas can be used not only to identify good design practices, but also to expose bad smells in design, thereby helping developers in initial reengineer- ing phases to develop a first mental model of a system. Although some of the identified schemas are already documented in existing literature, with our approach based on Formal Concept Analysis (FCA), we are also able to identify previously unidentified schemas. Conclusions: FCA is an effective tool because it is an ideal classification mining tool to identify common- alities between software artifacts, and usually these commonalities reveal known and unknown charac- teristics of the software artifacts. We also show that once a catalog of useful schemas stabilizes after several runs of FoCARE, the added cost of FCA is no longer needed.
Notas:Formato de archivo: PDF. -- Este documento es producción intelectual de la Facultad de Informática - UNLP (Colección BIPA/Biblioteca)
Descripción Física:1 archivo (1,2 MB)

MARC

LEADER 00000naa a2200000 a 4500
003 AR-LpUFIB
005 20250423183148.0
008 230201s2010 ag o 000 0 eng d
024 8 |a DIF-M6507  |b 6645  |z DIF005930 
040 |a AR-LpUFIB  |b spa  |c AR-LpUFIB 
100 1 |a Arévalo, Gabriela Beatriz  |9 45006 
245 1 0 |a Generating a catalog of unanticipated schemas in class hierarchies using formal concept analysis 
300 |a 1 archivo (1,2 MB) 
500 |a Formato de archivo: PDF. -- Este documento es producción intelectual de la Facultad de Informática - UNLP (Colección BIPA/Biblioteca) 
520 |a Context: Inheritance is the cornerstone of object-oriented development, supporting conceptual modeling, subtype polymorphism and software reuse. But inheritance can be used in subtle ways that make com- plex systems hard to understand and extend, due to the presence of implicit dependencies in the inher- itance hierarchy. Objective: Although these dependencies often specify well-known schemas (i.e., recurrent design or cod- ing patterns, such as hook and template methods), new unanticipated dependency schemas arise in prac- tice, and can consequently be hard to recognize and detect. Thus, a developer making changes or extensions to an object-oriented system needs to understand these implicit contracts defined by the dependencies between a class and its subclasses, or risk that seemingly innocuous changes break them. Method: To tackle this problem, we have developed an approach based on Formal Concept Analysis. Our Formal Concept Analysis based-Reverse Engineering methodology (FoCARE) identifies undocumented hierarchical dependencies in a hierarchy by taking into account the existing structure and behavior of classes and subclasses. Results: We validate our approach by applying it to a large and non-trivial case study, yielding a catalog of hierarchy schemas, each one composed of a set of dependencies over methods and attributes in a class hierarchy. We show how the discovered dependency schemas can be used not only to identify good design practices, but also to expose bad smells in design, thereby helping developers in initial reengineer- ing phases to develop a first mental model of a system. Although some of the identified schemas are already documented in existing literature, with our approach based on Formal Concept Analysis (FCA), we are also able to identify previously unidentified schemas. Conclusions: FCA is an effective tool because it is an ideal classification mining tool to identify common- alities between software artifacts, and usually these commonalities reveal known and unknown charac- teristics of the software artifacts. We also show that once a catalog of useful schemas stabilizes after several runs of FoCARE, the added cost of FCA is no longer needed. 
534 |a Information and Software Technology 52(11) p. 1167-1187 
650 4 |a DESARROLLO ORIENTADO A OBJETOS  |9 48825 
700 1 |a Ducasse, Stéphane  |9 46154 
700 1 |a Gordillo, Silvia Ethel  |9 42827 
700 1 |a Nierstrasz, Oscar  |9 46153 
856 4 0 |u http://hal.inria.fr/inria-00531498 
942 |c CP 
952 |0 0  |1 0  |4 0  |6 A0274  |7 3  |8 BD  |9 80880  |a DIF  |b DIF  |d 2025-03-11  |l 0  |o A0274  |r 2025-03-11 17:04:17  |u http://catalogo.info.unlp.edu.ar/meran/getDocument.pl?id=534  |w 2025-03-11  |y CP 
999 |c 55712  |d 55712