<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Class Model Normalization</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>A. Miralles</string-name>
          <email>andre.miralles@teledetection.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>G. Molla</string-name>
          <email>guilhem.molla@irstea.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>M. Huchard</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>C. Nebut</string-name>
          <email>nebut@lirmm.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>L. Deruelle</string-name>
          <email>laurent.deruelle@berger-levrault.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>M. Derras</string-name>
          <email>mustapha.derras@berger-levrault.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>(1) Tetis/IRSTEA</institution>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <fpage>111</fpage>
      <lpage>122</lpage>
      <abstract>
        <p>Designing or reengineering class models in the domain of programming or modeling involves capturing technical and domain concepts, finding the right abstractions and avoiding duplications. Making this last task in a systematic way corresponds to a kind of model normalization. Several approaches have been proposed, that all converge towards the use of Formal Concept Analysis (FCA). An extension of FCA to linked data, Relational Concept Analysis (RCA) helped to mine better reusable abstractions. But RCA relies on iteratively building concept lattices, which may cause a combinatorial explosion in the number of the built artifacts. In this paper, we investigate the use of an alternative RCA process, relying on a specific sub-order of the concept lattice (AOC-poset) which preserves the most relevant part of the normal form. We measure, on case studies from Java models extracted from Java code and from UML models, the practical reduction that AOC-posets bring to the normal form of the class model.</p>
      </abstract>
      <kwd-group>
        <kwd>Inheritance hierarchy</kwd>
        <kwd>class model normalization</kwd>
        <kwd>class model reengineering</kwd>
        <kwd>Formal Concept Analysis</kwd>
        <kwd>Relational Concept Analysis</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>In object-oriented software or information systems, the
specialization-generalization hierarchy is a main dimension in class model organization, as the is-a
relation in the design of domain ontologies. Indeed, it captures a classification of the
domain objects which is structuring for human comprehension and which makes
the representation efficient. Designing or reengineering class models in the
domain of programming or in the domain of modeling still remains a tricky task.
It includes the integration of technical and domain concepts sometimes with
no clear semantics, and the definition of the adequate abstractions while
avoiding the duplication of information. In many aspects, this task corresponds to a
kind of class model normalization, focusing on specialization and redundancy,
by analogy to the database schema normalization. Normalization is important
to assist forward engineering of a reliable and maintainable class model. It is
also useful to address the erosion of the specialization-generalization hierarchy
during software evolution.</p>
      <p>
        After the seminal paper of R. Godin and H. Mili at OOPSLA’93 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], several
approaches have been proposed to address this normalization, that all converged
to the implicit or explicit use of Formal Concept Analysis (FCA [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]) techniques.
In this context, FCA was used to mine descriptions that are common to groups
of classes and to suggest re-factorizing and creating more reusable super-classes.
Several approaches more specifically used a specific sub-order of the concept
lattice which captures the most relevant new super-classes (the AOC-poset,
for Attribute-Object Concept poset [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]). Then, Relational Concept Analysis
(RCA [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]), an extension of FCA to linked data, was proposed to find deeper
refactorizations. However, RCA iterates on building concept lattices, that leads to
a combinatorial explosion of the number of the built artifacts (including classes).
      </p>
      <p>In this paper, we investigate the use of an alternative version of RCA,
relying on AOC-posets. With AOC-posets, RCA might not converge, thus we have
to carefully handle the iteration mechanism, but when it converges, we expect
more efficiency. We measure, on case studies from UML models and from Java
models rebuilt from industrial Java code, the reduction brought in practice by
this approach to the normal form of the class model. We also show that, on
realistic tuning, the reasonable number of the new artifacts allows the designer
to analyze them and decide which of them should be kept in the model.</p>
      <p>In Section 2, the bases for FCA and RCA in the context of class models are
outlined. Then we present current work in this domain, and the motivation for
this study (Section 3). In Section 4, we give the setup of the experiment, as well
as the results. We conclude in Section 5 with a few perspectives of this work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Class Model Normalization</title>
      <p>FCA: A classical approach for applying FCA to class model normalization
involves building a formal context K-class=(G, M, I), where the classes (in G)
are associated with their characteristics (attributes, roles, operations, in M )
through I ⊆ G × M . There are many variations in this description of classes. For
example, Fig. 1 (right-hand side) shows such a formal context for the class model
presented in Fig. 2(a). A concept is a pair (Extent, Intent) where Extent = {g ∈
G|∀m ∈ Intent, (g, m) ∈ I} and Intent = {m ∈ M |∀g ∈ Extent, (g, m) ∈ I}.
The concept extent represents the objects that own all the characteristics of the
intent; the concept intent represents the characteristics shared by all objects
of the extent. The specialization order between two formal concepts is given
by: (Extent 1, Intent 1) &lt; (Extent 2, Intent 2) ⇔ Extent 1 ⊂ Extent 2. It
provides the concepts with a lattice structure.</p>
      <p>In the concept lattice, there is an ascending inheritance of objects and a
descending inheritance of characteristics. The simplified intent of a formal concept
Device
CVaunpeAAnneemmoommeetteerr ×× × ×
PlateAnemometer × ×
PitotAnemometer ×
iteghH iseonn</p>
      <p>n
m io
eeddn ienD reb e sen th</p>
      <p>m gn
rceomm iandwV cupuNm eayvnpT ilteap teub</p>
      <p>D eL
×
×
×
K-class
RainGauge
RAanienmfaolmleter × × ×
Wind
t ltreav teagnD iltay tun tgh iton
teubH seaum rccaau seam ceod taowm irennw iircendwD illfraan indw
iegh Iren cy ir u</p>
      <p>u Q reA tSd
× × ×
× ×
× ×
×
×
is its intent without the characteristics inherited from its super-concept intents.
The simplified extent is defined in a similar way. In our example, among the
formal concepts that can be extracted from K-class, Concept C = ({Rainfall,
Wind}, {measuringDate, codeQuality}) highlights two classes that share the
two attributes measuringDate and codeQuality. This concept C is interpreted
as a new super-class of the classes of its extent, namely Rainfall and Wind. The
new super-class, called here Measure, appears in Fig. 2(b). New super-classes
are named by the class model designer.</p>
      <p>
        AOC-posets: In the framework of class model analysis with FCA, often
AOCposets, rather than concept lattices, are used. Formal context of Fig. 1 (left-hand
side) is used to illustrate the difference between the concept lattice and the
AOCposet. The concept lattice like in Fig. 3(a) contains all the concepts from the
formal context. Some concepts, like Concept Device 2, inherit all their
characteristics from their super-concepts and their objects from their sub-concepts. In
the particular case of object-oriented modeling, they would correspond to empty
description, with no correspondence with an initial class description and be rarely
considered. In the AOC-poset like in Fig. 3(b), only concepts that introduce one
characteristic or one object are kept, simplifying drastically the structure in case
of large datasets. The number of concepts in the concept lattice can increase up
to 2min(|G|,|M|), while it is bounded by |G| + |M | in the AOC-poset. The Iceberg
lattice, such as introduced in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], is another well known sub-set of the concept
lattice which is used in many applications. The iceberg lattice is induced by the
sub-set of concepts which have an extent support greater than a given threshold.
In our case, this would mean only keeping new super-classes that have a
minimum number of sub-classes, which is not relevant in modeling and programming:
a super-class may only have one sub-class.
      </p>
      <p>RCA: RCA helps to go further and get the class model of Fig. 2(c). In this
additional normalization step, RainGauge and Anemometer have a new super-class
which has been discovered because both have a role towards a sort of Measure
(resp. Rainfall and Wind). To this end, the class model is encoded in a
Relational Context Family (RCF) as the one in Table 1, composed of several formal
contexts that separately describe classes (K-class), attributes (K-attribute),
and roles (K-role) and of several relations including relation between classes and
attributes (r-hasAttribute), relation between classes and roles (r-hasRole), or
relation between roles and their type r-hasTypeEnd. Here again, this encoding
can vary and integrate other modeling artifacts, like operations or associations.</p>
      <p>Concept_Device_0
Concept_Device_1
recommendedHeight</p>
      <p>Concept_Device_3
windVaneDimension
(a)</p>
      <p>Concept_Device_5
cupNumber
CupAnemometer</p>
      <p>Concept_Device_2</p>
      <p>Concept_Device_8</p>
      <p>tubeLength</p>
      <p>PitotAnemometer
Concept_Device_6</p>
      <p>vaneType
VaneAnemometer</p>
      <p>Concept_Device_7
plateDimension</p>
      <p>PlateAnemometer</p>
      <p>Concept_Device_4
Concept_Device_1
recommendedHeight</p>
      <p>Concept_Device_3
windVaneDimension
(b)</p>
      <p>Concept_Device_5
cupNumber
CupAnemometer</p>
      <p>Concept_Device_6</p>
      <p>vaneType
VaneAnemometer</p>
      <p>Concept_Device_7
plateDimension
PlateAnemometer</p>
      <p>Concept_Device_8</p>
      <p>
        tubeLength
PitotAnemometer
Fig. 3. Concept lattice (a) and AOC-poset (b) for anemometers (Fig. 1, left) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
      </p>
      <p>
        RCA is an iterative process where concepts emerge at each step. Relations
and concepts discovered at one step are integrated into contexts through
relational attributes for computing concept lattices at the next step. At step 0,
attributes with the same name (resp. the two attributes measuringDate or the
two attributes codeQuality) are grouped. At step 1, classes that share attributes
from an attribute group are grouped into a concept that produces a new
superclass (e.g. Wind and Rainfall are grouped to produce the super-class Measure).
At step 2, roles rainfall and wind share the fact that they end at a sub-class of
Measure, thus they are grouped into new role shown under the name measure in
Fig. 2(c). At step 3, the current context of classes (extended with relational
attributes) shows that both classes RainGauge and Anemometer have a role ending
to Measure. Then a new super-class, called Device by the designer, is extracted.
RCA has been first assessed on small [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] or medium [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] class models, encoding
technical information (multiplicity, visibility, being abstract, initial value) in the
RCF, which was the source of many non-relevant concepts.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], the authors assessed RCA on Ecore models, Java programs and UML
models. The encoding was similar to the one presented in Section 2 to illustrate
RCA (classes, attributes, roles, described by their names and their relationships).
      </p>
      <p>While for Java models, the number of discovered class concepts (about 13%)
was very reasonable, for UML class models, the increase (about 600%) made the
post-analysis impossible to achieve.</p>
      <p>
        Recently, we systematically studied various encodings of the design class
model of an information system about Pesticides [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ]. We noticed a strong
impact of association encoding, and that encoding only named and navigable
ends of associations was feasible, while encoding all ends (including those without
a name and those that are not navigable) led to an explosion of the number of
concepts. Restricting to named ends and to navigable ends means that we give
strong importance to the semantics used by designer, thus the lost concepts have
a greater chance to be uninteresting.
      </p>
      <p>
        Guided by the intuition of the model designer, we recently proposed a
controlled approach with progressive concept extraction [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. In this approach, the
designer chooses at each step of the RCA process the formal contexts and the
relations he wants to explore. For example, he may begin with classes and
attributes, then add roles, then associations, then remove all information about
classes and consider only classes and operations, etc. Such a choice is memorized
in a factorization path. In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], we used AOC-posets, but we did not evaluate the
difference between AOC-posets and concept lattices in the controlled process.
The objective was to evaluate the number of discovered concepts at each step
and to observe trends in their progress. It was worth noting that the curves of
the same factorization path applied to different models had the same shape.
      </p>
      <p>
        In this paper, we will use the 15 versions of the analysis class model of the
same information system on Pesticides, as well as a dataset coming from
industrial Java models. Contrarily to the experiments made by authors in [
        <xref ref-type="bibr" rid="ref10 ref11 ref9">9–11</xref>
        ],
our objective is to evaluate the benefits of using the variant of RCA, which
builds AOC-posets (rather than concept lattices) during the construction
process. Studying the concepts discovered at each step, we can also evaluate what
was called the automatic factorization path in the controlled approach of [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. It is
clear that AOC-posets are smaller than concept lattices, thus the results we
expect focus on assessing the amount of the reduction in the number of discovered
concepts that will be brought to the designer for analysis.
4
      </p>
    </sec>
    <sec id="sec-3">
      <title>Case study</title>
      <p>Experimental setup: Figure 4 presents the metamodel used in practice to
define the RCF for our experiments. Object-Attribute contexts are associated
to classes, attributes, operations, roles and associations. Attributes, operations,
roles and associations are described by their names in UML and Java models.
Classes are described by their names in UML models.</p>
      <p>Object-object contexts correspond to the meta-relations hasAttribute,
hasOperation, hasRole (between Class and Role and between Association and
Role), hasTypeEnd, and isRoleOf. This last meta-relation is not used in the
Java model RCF, because from Java code we can only extract unidirectional
associations (corresponding to Java attributes whose type is a class).</p>
      <p>All the roles extracted from Java code have a name. In UML models, we only
consider the named roles, and the navigable ends of associations to focus on the
most meaningful elements. We do not consider multiplicities in role description,
nor the initializer methods (constructors).</p>
      <p>
        Each of the 15 UML models corresponds to a version of an information
system on Pesticides. These models, described in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], were collected during the
Pesticides information system development and then the evolution of the project
throughout 6 years. The RCF for UML models contains all the UML model
elements. We also used 15 Java models coming from Java programs developed by
the company Berger-Levrault in the domain of human resource management.
These 15 Java models come from 3 Java programs: Agents, Chapter and
Appraisal Campaign. For each program, we determined a central meaningful class
and navigated from this central class through association roles at several
distances: 1, 2, 4, 8 and 16. For the 5 Java models, we could not get results due
to the size of the models. The Java programs are the Java counterpart of the
database accesses, thus we focused on Java attributes, that are encoded as
attributes when their type is primitive (integer, real, boolean, etc), and as roles
of a unidirectional associations when their type is a class. The operations were
access and update operations associated to these attributes, thus they do not
bring any meaningful information. For the sake of space, we only present results
on 4 representative Java models, from the Chapter program (distances 1, 2, 4,
8). Depending on the version, 254 to 552 model elements are involved in the
Pesticides models and 34 to 171 of these model elements are classes. The
Chapter models are composed of 204 to 3979 model elements of which 37 to 282 are
classes.
      </p>
      <p>The experiments have been made with the help of UML profiles of
Objecteering1 to extract the RCF from the UML models and Java modules to extract the
RCF from the Java models. RCAExplore2 is used to compute the lattices and</p>
      <sec id="sec-3-1">
        <title>1 www.objecteering.com/ 2 dolques.free.fr/rcaexplore/</title>
        <p>the AOC-posets, and Talend3 to extract information from RCAExplore outputs,
to integrate data, to build the curves and analyze the results.</p>
        <p>Results: We computed various metrics on the built lattices and AOC-posets,
such as the number of several categories of concepts: merged concepts (simplified
extents have a cardinal strictly greater than 1), perennial concepts (simplified
extents have a cardinal equals to 1) and new concepts (simplified extents are
empty). A merged concept corresponds to a set of model elements that have
the same description, for example a merged attribute concept groups attributes
with a same name. A perennial concept corresponds to a model element which
has at least one characteristic that makes it distinct from the others. A new
concept corresponds to a group of a model elements that share part of their
description, and no model element has exactly this description (it always has
some additional information). We focus in this paper on the classes and on the
number of new class concepts, because they are the predominating elements
that reveal potential new abstractions and a possible lack of factorization in the
current model. To highlight the observed increase brought by the conceptual
structures (lattice and AOC-poset), we present the ratio of new class concepts
on the number of initial classes in the model (Fig. 5, 6, 7, 8). To compare lattices
#New class concepts in lattice
and AOC-posets, we compute the ratio: #New class concepts in AOC−poset (Fig. 9,
10). For Chapter models, lattices are computed for the steps 0 to 6 and, for all
other cases, lattices or AOC-posets are determined up to step 24.</p>
        <p>In lattices for the Pesticides models (Fig. 5), the process always stops between
steps 6 and 14 depending on the models. At step 6, the ratio of new class concepts
on the number of classes varies between 165% (V10) and 253% (V05). Results</p>
      </sec>
      <sec id="sec-3-2">
        <title>3 www.talend.com/</title>
        <p>are hard to analyze for a human designer without any further filtering. In lattices
for the Chapter models (Fig. 7), we stopped the process at step 6, because we
observed a high complexity: for example, for distance 8, at step 6, we get 43656
new class concepts. It is humanly impossible to analyze the obtained new class
concepts. At distance 16, Chapter model could not even be processed. For the
model at distance 1 (resp. 2), at step 6, the ratio is 11 % (resp. 62%) remaining
reasonable (resp. beginning to be hard to analyze). We also observe stepping
curves, that are explained by the metamodel: at step 1, new class concepts are
introduced due to attribute and role concept creation of step 0, then they remain
stable until step 2, while role and association concepts increase, etc...</p>
        <p>Curves for AOC-posets for Pesticides models are shown in Fig. 6. The
ordering on Pesticides AOC-posets roughly corresponds to the need of factorization:
the highest curves correspond to V00 and V01 where few inheritance relations
(there is none in V00) have been used. This shows the factorization work done
by the designer during model versioning. The ratio at step 6 varies between 56%
(V10) and 132% (V00). In Pesticides lattices, we observed many curve crossings,
and curves have different shapes, while with Pesticide AOC-posets, the curves
have a regular shape and globally they decrease.</p>
        <p>For Chapter models (Fig. 8), convergence is obtained for all AOC-posets
(distance 1 to 8) and the process stops between steps 5 and 23. The curves are
also ordered and, as for lattices, the highest curve corresponds to the highest
distance. The curves reveal many opportunities for factorization. The ratio at
step 6 varies between 5% (distance 1) and 161% (distance 8).
#New class concepts in lattice</p>
        <p>Fig. 9. Ratio #New class concepts in AOC−poset for Pesticides models
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>For class model normalization, concept lattices and AOC-posets are two
structures giving two different normal forms. UML models that are rebuilt from these
structures are interesting in both cases from a thematic point of view.
Nevertheless, lattices are often too huge, and AOC-posets offer a good technique to
reduce the complexity.</p>
      <p>As future work, we plan to go more deeply into an exploratory approach,
defining different factorization paths, with model rebuilding at each step with
expert validation. This would allow the complexity to be controlled
introducing less new concepts at each step. We also plan to use domain ontologies to
guide acceptance of a new formal concept, because it corresponds to a thematic
concept.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgment</title>
      <p>This work has been supported by Berger Levrault. The authors also warmly
thank X. Dolques for the RCAExplore tool which has been used for experiments.</p>
      <p>#New class concepts in lattice</p>
      <p>Fig. 10. Ratio #New class concepts in AOC−poset for Chapter models</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Godin</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mili</surname>
          </string-name>
          , H.:
          <article-title>Building and Maintaining Analysis-Level Class Hierarchies Using Galois Lattices</article-title>
          .
          <source>In: Proceedings of the Eight Annual Conference on ObjectOriented Programming Systems, Languages, and Applications (OOPSLA 93)</source>
          , ACM (
          <year>1993</year>
          )
          <fpage>394</fpage>
          -
          <lpage>410</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Ganter</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wille</surname>
          </string-name>
          , R.:
          <source>Formal Concept Analysis: Mathematical Foundation</source>
          . Springer-Verlag Berlin (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Dolques</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Le Ber</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>AOC-Posets: a Scalable Alternative to Concept Lattices for Relational Concept Analysis</article-title>
          .
          <source>In: Proceedings of the Tenth International Conference on Concept Lattices and Their Applications (CLA</source>
          <year>2013</year>
          ). Volume 1062 of CEUR Workshop Proceedings., CEUR-WS.org (
          <year>2013</year>
          )
          <fpage>129</fpage>
          -
          <lpage>140</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Rouane-Hac`ene,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Huchard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Napoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Valtchev</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.</surname>
          </string-name>
          :
          <article-title>Relational concept analysis: mining concept lattices from multi-relational data</article-title>
          .
          <source>Ann. Math. Artif. Intell</source>
          .
          <volume>67</volume>
          (
          <issue>1</issue>
          ) (
          <year>2013</year>
          )
          <fpage>81</fpage>
          -
          <lpage>108</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Miralles</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dolques</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Le Ber</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Libourel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nebut</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , Gu´edi,
          <string-name>
            <surname>A.O.:</surname>
          </string-name>
          <article-title>M´ethode de factorisation progressive pour accroˆıtre l'abstraction d'un mod`ele de classes</article-title>
          .
          <source>Ing´enierie des Syst`emes d'Information</source>
          <volume>20</volume>
          (
          <issue>2</issue>
          ) (
          <year>2015</year>
          )
          <fpage>9</fpage>
          -
          <lpage>39</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Stumme</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taouil</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bastide</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pasquier</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lakhal</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Computing Iceberg Concept Lattices with TITANIC</article-title>
          .
          <source>Data Knowl. Eng</source>
          .
          <volume>42</volume>
          (
          <issue>2</issue>
          ) (
          <year>2002</year>
          )
          <fpage>189</fpage>
          -
          <lpage>222</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Rouane-Hac`ene, M.:
          <article-title>Relational concept analysis, application to software reengineering</article-title>
          . Th`ese de doctorat, Universit´e du Qu´
          <article-title>ebec a` Montr´eal (</article-title>
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Roume</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Analyse</surname>
          </string-name>
          et restructuration de hi´erarchies de classes. Th`ese de doctorat,
          <source>Universit´e Montpellier</source>
          <volume>2</volume>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Falleri</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nebut</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A generic approach for class model normalization</article-title>
          .
          <source>In: Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE</source>
          <year>2008</year>
          ).
          <article-title>(</article-title>
          <year>2008</year>
          )
          <fpage>431</fpage>
          -
          <lpage>434</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. Osman Gu´edi,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Miralles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Huchard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Nebut</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          :
          <article-title>A practical application of relational concept analysis to class model factorization: Lessons learned from a thematic information system</article-title>
          .
          <source>In: Proceedings of the Tenth International Conference on Concept Lattices and Their Applications (CLA</source>
          <year>2013</year>
          ). Volume 1062 of CEUR Workshop Proceedings., CEUR-WS.org (
          <year>2013</year>
          )
          <fpage>9</fpage>
          -
          <lpage>20</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Osman Gu´edi,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Huchard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Miralles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Nebut</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          :
          <article-title>Sizing the underlying factorization structure of a class model</article-title>
          .
          <source>In: Proceedings of the 17th IEEE International Enterprise Distributed Object Computing Conference, (EDOC</source>
          <year>2013</year>
          ).
          <article-title>(</article-title>
          <year>2013</year>
          )
          <fpage>167</fpage>
          -
          <lpage>172</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>