Generating a Catalog of Unanticipated ...
Document type :
Compte-rendu et recension critique d'ouvrage
Title :
Generating a Catalog of Unanticipated Schemas in Class Hierarchies using Formal Concept Analysis
Author(s) :
Arévalo, Gabriela [Auteur correspondant]
Consejo Nacional de Investigaciones Científicas y Técnicas [Buenos Aires] [CONICET]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Gordillo, Sylvia [Auteur]
Comisión de Investigaciones Científicas [Buenos Aires] [CIC]
Laboratorio de Investigación y Formación en Informática Avanzada [La Plata] [LIFIA]
Nierstrasz, Oscar [Auteur]
Software Composition Group [Bern] [SCG]
Consejo Nacional de Investigaciones Científicas y Técnicas [Buenos Aires] [CONICET]
Ducasse, Stephane [Auteur]

Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Gordillo, Sylvia [Auteur]
Comisión de Investigaciones Científicas [Buenos Aires] [CIC]
Laboratorio de Investigación y Formación en Informática Avanzada [La Plata] [LIFIA]
Nierstrasz, Oscar [Auteur]
Software Composition Group [Bern] [SCG]
Journal title :
Information and Software Technology
Publisher :
Elsevier
Publication date :
2010-12-31
ISSN :
0950-5849
HAL domain(s) :
Informatique [cs]/Génie logiciel [cs.SE]
English abstract : [en]
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 complex systems hard to ...
Show more >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 complex systems hard to understand and extend, due to the presence of implicit dependencies in the inheritance hierarchy. Objective: Although these dependencies often specify well-known schemas (i.e., recurrent design or coding patterns, such as hook and template methods), new unanticipated dependency schemas arise in practice, 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 FoCARE methodology (Formal Concept Analysis based-Reverse Engineering) identifies undocumented hi- erarchical 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 reengineering 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.Show less >
Show more >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 complex systems hard to understand and extend, due to the presence of implicit dependencies in the inheritance hierarchy. Objective: Although these dependencies often specify well-known schemas (i.e., recurrent design or coding patterns, such as hook and template methods), new unanticipated dependency schemas arise in practice, 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 FoCARE methodology (Formal Concept Analysis based-Reverse Engineering) identifies undocumented hi- erarchical 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 reengineering 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.Show less >
Language :
Anglais
Popular science :
Non
Collections :
Source :
Files
- https://hal.inria.fr/inria-00531498/document
- Open access
- Access the document
- http://rmod.lille.inria.fr/archives/papers/Arev10a-IST-generatingCatalog.pdf
- Open access
- Access the document
- https://hal.inria.fr/inria-00531498/document
- Open access
- Access the document
- http://rmod.lille.inria.fr/archives/papers/Arev10a-IST-generatingCatalog.pdf
- Open access
- Access the document
- document
- Open access
- Access the document
- Arev10a-IST-generating_a_catalog.pdf
- Open access
- Access the document
- document
- Open access
- Access the document
- Arev10a-IST-generating_a_catalog.pdf
- Open access
- Access the document