more difficult for the designer the task of modeling
the class structure of such systems. This paper
provides guidance for class hierarchy generation for
any type of systems or even the information
generation in a database schema.
This paper is organized as follows: The next
section presents the related work. Section III briefly
describes the theoretical aspects of the theory of
Formal Concept Analysis. Section IV discusses the
proposal that is presented. Section V describes the
experimental results using the framework. Section
VI provides the final conclusions and suggestions
for future work.
2 RELATED WORKS
The class hierarchy and its factoring has been
reported by other authors in various development
scenarios, such as the construction of the hierarchy
of its starting point through objects and
specifications of classes (Arévalo, Ducasse et al
2003); the evolution of the class hierarchy in order
to accommodate new requirements through the
addition of unlimited classes (Godin and Mili 1993)
or by adding limited compatibility with a prior
hierarchy or existing objects (Rapicault and Napoli
2001); reengineering of an existing class hierarchy
from the relationship between classes and their
attributes and methods (Godin and Chau 2000),
using code analysis tools by applying refactoring
(Snelting and Tip 2000) and in reengineering
procedural code in the environment of objects
(Moha, Hacene et al 2008).
In many cases the proposed approach is based on
techniques that produce hierarchies that are not
readily comprehensible for developers who need to
spend a good amount of effort to interpret them.
The Formal Concept Analysis, in contrast,
provides a theoretical framework that can be applied
to the design and maintenance of class hierarchy in
object-oriented environments whose comprehension
is more natural. Several researches have adopted the
Formal Concept Analysis in solving this problem
(Bhatti, Anquetil et al 2012), (Arévalo, Falleri et al
2006), (Huchard, Dicky et al 2000) and (Falleri,
Huchard et al 2008).
In (Bhatti, Anquetil et al 2012) a catalogue of
patterns in concept lattices were generated with the
purpose to allow automating the task of lattice
interpretation helping the designer to concentrate on
the task of reengineering rather than understanding a
complex lattice. It is not aim of (Bhatti, Anquetil et
al 2012) the hierarchization of classes from the
concept lattice generation.
The abstraction of concepts and relationships for
a specific domain were automated by techniques
based on application of FCA in a model-driven
context as proposed by (Arévalo, Falleri et al 2006).
However this work does not address the semantics
of the attributes or simplifies the concept lattice
through their pruning.
In (Huchard, Dicky et al 2000) algorithms were
developed for the building class hierarchies by
different frameworks showing the advantages and
drawbacks of using the Galois lattice and sub-
hierarchy as models of class hierarchies. An
inconvenience of (Huchard, Dicky et al 2000)
consists in the generation of multiple inheritance,
requiring adjustements for languages that have only
single inheritance.
In (Falleri, Huchard et al 2008) was presented a
generic approach implemented in a tool capable of
dealing with any language described by a meta-
model, that helps software architects designing and
improving their class models. This work showed the
Relational Concept Analysis technique (RCA), as an
extension of FCA (Dao, Huchard et al 2004),
(Huchard, Hacene et al 2007). Although (Falleri,
Huchard et al 2008) has contributed a theory capable
to normalize class models based on different
metamodels, it does not address the semantics of the
attributes such as (Arévalo, Falleri et al 2006).
Unlike the surveys previously presented this
paper shows how to simplify the lattice concepts
through heuristic pruning, dealing the semantics of
the class attributes and supports the concept of
multiple inheritance in hierarchies generated.
3 THEORETICAL ANALYSIS OF
FORMAL CONCEPTS
The representation of the FCA enables to obtain the
relationship between the set of objects or instances
of domain from the list of attributes that describe its
characteristics, thus resulting in the Formal Concept
(Nilander and Zárate 2011). In Table 1, called
Formal Context, an example for a hypothetical
domain is presented.
Table 1 represents a structure that defines objects
(rows), the attributes (columns) and their respective
relationship of incidence. A Formal Context (G,M,I)
consists of two sets G and M, and a binary relation I
between these sets. The elements of G are called
objects, while M are called attributes. If an object g
ICEIS2014-16thInternationalConferenceonEnterpriseInformationSystems
276