<!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>Galois Sub-Hierarchies Used for Use Case Modeling</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ants Torim</string-name>
          <email>ants.torim@ttu.ee</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Tallinn University of Technology</institution>
          ,
          <addr-line>Ehitajate tee 5, 19086 Tallinn</addr-line>
          ,
          <country country="EE">Estonia</country>
        </aff>
      </contrib-group>
      <fpage>21</fpage>
      <lpage>32</lpage>
      <abstract>
        <p>Use case diagrams are the core diagrams of the Unified Modeling Language (UML), de facto standard for software modeling. They are used to visualize relations between the users (Actors) and the functionality of the software system (Use Cases). Galois sub hierarchy (GSH) is a sub-order of the concept lattice that contains only concepts with object or attribute labels. This paper investigates the viability of GSH for visualizing the information contained within use case diagrams. While it is possible that a GSH diagram is more complex than a use case diagram for certain formal contexts a study of 87 student projects found no such case. On average, use case diagrams had 3.7 times more graphical elements than corresponding GSH diagrams, demonstrating the viability of GSH as a more compact alternative to the use case diagram.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Software engineering has a long tradition of graphical modeling, there are many
different diagram types like flowcharts, BPMN, ERD and even languages like
UML containing over dozen diagram types. Most of these diagrams have
elements connected with directed or non-directed connections. Each element is
represented as a node and each connection as a line between these nodes. While
this approach is easy to understand and apply, methods of Formal Concept
Analysis (FCA) like Galois sub hierarchies (GSH) can represent the same information
in a more concise way, significantly reducing the number of graphical elements.
This is achieved because a single node in GSH diagram can represent several
elements (it can have many labels) and a line can represent many connections.
This conforms to the “reduce redundant data-ink” principle from E. Tufte’s
classic work on visual information displays [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. GSH diagram makes it easy to see
which elements have same connections and which element has a subset of other
elements connections inviting interesting comparisons.
      </p>
      <p>GSH diagrams are most natural to use when there are two types of elements
and connections between these (a bipartite graph). This applies to the UML use
case diagram that describes actors, use cases and connections between them.
A study presented here compares the GSH approach with the UML use case
diagram. There is also a brief overview about describing the connections between
use cases and data tables with diagrams, information present in CRUD matrix,
another traditional software engineering artifact.
c paper author(s), 2013. Published in Manuel Ojeda-Aciego, Jan Outrata (Eds.): CLA
2013, pp. 21{32, ISBN 978{2{7466{6566{8, Laboratory L3i, University of La
Rochelle, 2013. Copying permitted only for private and academic purposes.</p>
    </sec>
    <sec id="sec-2">
      <title>Galois Sub-Hierarchies</title>
      <p>
        Our method of visual representation is based on Galois sub- hierarchy (GSH)
diagrams from the field of Formal Concept Analysis (FCA). This article uses
some FCA terminology (formal concept, concept lattice, extent, intent) without
explanation and definitions, these can be found from many foundational articles
of this field [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] . GSH is a subset of the concept lattice that contains
only labeled concepts. More formally, concept (A, B) from the formal context
(G, M, I) belongs to the GSH if and only if for some object g ∈ G, (A, B) =
({g}00, {g}0), or dually, for some attribute m ∈ M , (A, B) = ({m}0, {m}00). GSH
as a tool for software engineering was introduced by Godin and Mili [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] for the
purpose of class hierarchy re-engineering.
      </p>
      <p>This work differs from the standard FCA practice as the main area of
interest is not finding the concepts but visualizing the connections between the
elements of G and M in a concise way. Semantics of G and M can vary: objects
and attributes, use cases and actors, use cases and data tables. Users of GSH
diagrams would need to be acquainted with the following properties to see the
connections between G and M :
1. GSH diagrams show nodes (concepts), connections between them and labels
from the sets G and M attached to the nodes. Each element from G and M
has exactly one corresponding label.
2. g ∈ G is connected to m ∈ M iff there is an upward path from label g to
label m or they are labels of the same node.
3. If g1, g2 ∈ G and there is an upward path from g1 to g2 then the set of
elements g2 is connected to, g20, is a subset of g10.
4. Dually, if m1, m2 ∈ M and there is a downward path from m1 to m2 then
the set of elements m2 is connected to, m02, is a subset of m01.
5. If g1, g2 ∈ G and g1 and g2 are labels of the same node then g20 = g0 .
1
6. Dually, if m1, m2 ∈ M and m1 and m2 are labels of the same node then
m02 = m01.</p>
      <p>Figure 1 presents a simple formal context where G = {1, 2, 3, 4, 5, 6} and
M = {a, b, c, d, e, f } and its corresponding GSH diagram.</p>
      <p>a b c d e f
1
2 x
3
4
5
6
x
x</p>
      <p>x
x x
x
x
x
x</p>
      <p>
        There are several tools for concept lattice generation: Concept Explorer
[
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], ToscanaJ [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], GaLicia [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Of these, only GaLicia supports Galois
subhierarchies, but its labeling scheme is not convenient for our purposes as its
labels contain full concept intents and extents, therefore same element can
appear many times in different labels. Two freely available tools were developed as
bachelor theses, supervised by the author. One is GSH builder by Kristo Aun
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], another is GSH by Maarja Raud [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Both generate GSH diagrams that
show the labels, not extents or intents.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Use Cases and Actors</title>
      <p>
        Use Case modeling is a common tool for specifying functional requirements. An
actor is something with behavior (person, computer system) who interacts with
our system. A use case is a collection of related success and failure scenarios that
describe an actor using a system to support a goal [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. A detailed description
of the use case is given in a text document while the use case diagram shows a
general overview: actors and their relationships to use cases. Use case diagram
can also show include and extend relations between use cases. A use case diagram
is a diagram type within Unified Modeling Language. There are many books
written about the topic including [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        Following example (Figure 2) is redrawn from Craig Larmans partial use case
diagram describing NextGen sales system: a computerized application used to
record sales and handle payments in a retail store [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ](pp. 29, 71). This is a basic
use case diagram showing use cases, actors and connections between them.
He also mentions very high summary (used rarely) and too low (should not be
used) abstraction levels. S. Ambler recommends to avoid more than two levels
of use case associations [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Use cases Post a comment and Delete inappropriate
comment include a common Log in sub-functionality. Use case Manage comments
includes use cases Post a comment and Delete inappropriate comment. Levels
of abstraction different from the default user goal level are shown through UML
stereotypes.
      </p>
      <p>Extend and include arrows correspond to the direction of reference within the
use case documentation. In the case of an include relation, use case containing
the sub-functionality has a reference to it, in the case of an extend relation, the
sub-functionality has a reference to the use case containing it. Extend relation
is treated here as an include relation going to the opposite direction.</p>
      <p>A method used here to deal with the include and extend relations is to
focus on a single level of abstraction (preferably user goal or summary ). Use
cases at higher or lower levels of abstractions are removed and their relations
to actors are added to the use cases they have include/extend relations with.
This can introduce superfluous relations: it is impossible to deduce from the use
case diagram if a particular actor from the higher level use case participates in
certain sub-functionality or not, use case text has to be examined for that.</p>
      <p>Figure 5 shows how previous diagram (Figure 4) has been flattened as
described to the user goal abstraction level through the removal of generalization
and include relations and is now in the form that can be used for GSH generation.</p>
      <p>GSH diagrams scale well when the number of use cases increases. Figure 6 is
based on the example project Chair in University from the course “Introduction
to information systems” in Tallinn University of Technology. Original
documentation had entire use case model split into four use case diagrams containing 25
use cases, 3 actors and 30 connections between actors and use cases. These 4
diagrams are not reproduced here due to limited space. Equivalent GSH diagram
contains 5 nodes and 4 lines. That is a significant improvement in conciseness.</p>
      <p>In the previous examples GSH diagrams have all been simpler (less nodes,
less connections) than use case diagrams. It is easy to see that GSH diagram
can have no more nodes than the corresponding use case diagram as each GSH
node must have at least one label and labels don’t repeat. However, for certain
contexts, GSH diagram can have more connections than the corresponding use
case diagram, as shown in the following example.</p>
      <p>Figure 7 shows a formal context with 16 connections and a corresponding
GSH diagram with 18 connections. That raises a question if GSH diagrams are
really simpler than use case diagrams for practical applications. Following study
tries to answer this.
A study of 87 student projects, that were presented to the author for 2012
“Introduction to information systems” course, was completed to compare the use
case and GSH diagrams. Student projects contained the analysis documentation
for a freely chosen information system, including use case diagrams. Some of
these projects were done in groups and were larger and there was also a variation
of effort and quality. For all these projects a corresponding GSH diagram was
generated, based on its use case diagram.</p>
      <p>Some diagrams contained generalization relations between actors. In this
case sub-actors inherited all the relations from super-actors in the corresponding
formal context. Some diagrams contained include relationships between use
cases. For these cases, only use cases at the user goal level were kept, use cases
included in these and their connections with actors were merged into the user
goal level use cases as described in the previous section. Use case and connection
counts are for diagrams after removing the use cases not at the user goal level
of abstraction but before the removal of generalization relations. Generalization
relation is counted as one line.</p>
      <p>Ratio between the average number of elements of the use case diagrams and
the GSH diagrams is (U C + A + L)/GSHC+L = 3.72.</p>
      <p>Figure 8 shows the scatter plot of student projects showing the number of
visual elements on use case and GSH diagrams. It is easy to see that in all cases
GSH diagram was simpler than use case diagram, as all the data points lie below
the diagonal (U C + A + L) = GSHC+L line. This confirms that, at least for the
information systems with 30 or less use cases, GSH diagrams are much more
concise than the use case diagrams.</p>
      <p>Use case diagrams have their own advantages. They are easier to sketch and
modify by hand and they are easier to decompose into several diagrams. That
seems to suggest complementary roles for use case and GSH diagrams, use case
diagrams for quick sketching and GSH diagrams for a well-formated and concise
view of the system.</p>
    </sec>
    <sec id="sec-4">
      <title>CRUD matrix</title>
      <p>
        Use cases are not only connected to the actors who require such a functionality
but they operate on data tables. GSH diagrams are useful for modeling these
connections too. CRUD matrix is a well known artifact of software engineering
that describes relations between data tables and use cases. It is described in
several popular books about systems design [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and databases [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Use of CRUD
matrix as a basis for GSH diagrams was described by author in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. It is shortly
summarized here to show the usefulness of GSH diagrams for different software
engineering activities. There are 4 basic actions performed on data tables by
use cases: (C)reate, (R)ead, (U)pdate, (D)elete. In some variations use cases are
replaced with actors or business processes.
      </p>
      <p>Table 2 contains a CRUD matrix for a simplified library system. Columns
correspond to data tables and rows to use cases. Letters c, r, u, d inside the cells
of the matrix correspond to 4 basic actions. For example, use case Add New
Task reads data from the table Employee and creates (adds) new data to the
table Task.</p>
      <p>We can think of a CRUD matrix as defining dependencies between use case
layer and data layer. To describe only dependencies we introduce a new binary
matrix where all entries with no actions in the original CRUD matrix are replaced
with 0 and all entries with at least one action are replaced with 1. We refer to
such a matrix as a usage matrix. Table 3 is a usage matrix for Table 2.</p>
      <p>It is obvious that usage matrix, and therefore GSH diagram, can be
generated automatically from CRUD matrix. That kind of tool could provide visual
representation of CRUD matrix without extra effort from the tool user.</p>
      <p>Figure 9 is a GSH diagram based on the usage matrix from Table 3. From the
GSH diagram it is much easier to see the elements with same dependencies, like
use cases Add loan and Return loaned book and disconnected subsystems, like
use case Manage Readers with data table Reader. GSH diagrams are also helpful
for detecting hidden similarities/isomorphisms between different contexts. It is
much easier to see that GSH diagrams from Figures 1 and 9 are isomorphic than
that matrices from Figure 1 and Table 3 are isomorphic.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Related work</title>
      <p>
        The use of methods of FCA for software engineering is not a novel idea. A
thorough survey of FCA support for software engineering activities is given in
[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Most of such research is about extracting potential class hierarchies from
different contexts.
      </p>
      <p>
        Dolques et al [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] propose a FCA-based method for simplifying use case
diagrams through the introduction of new generalizations. The result of this method
is a refactored use case diagram. Their method preserves the information of
include and extend relations. Reduction of diagram elements seems to be smaller
than with GSH based method reviewed here though these results are hard to
compare exactly as they present them in the terms of edge density (ratio of
existing edges to all possible edges). It is possible that the edge density goes down
while the actual number of edges increases when new generalized use cases and
actors are introduced.
      </p>
      <p>
        Wolfgang Hesse and Thomas Tilley [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] use a concept lattice connecting
use cases and ”things” as a tool for identifying candidate classes for object
oriented design. There has been much research into using FCA and GSH for
class hierarchy design [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Algorithms for GSH generation are compared in
the article by Ar´evalo et al [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], a newer algorithm Hermes is presented by Berry
et al [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
7
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusions</title>
      <p>GSH diagrams can be a concise replacement for UML use case diagrams. In our
study they had 3.7 times less visual elements. GSH diagrams are likely to be
useful wherever there are connections between two types of elements: actors and
use cases, use cases and data tables, use cases and classes, business processes
and use cases and so on.</p>
      <p>One area for further research is the software engineering activity of
grouping elements into subsystems. Similar use cases can be grouped into functional
subsystems, similar data tables can be grouped into registers. GSH and concept
lattice diagrams can help here by organizing elements by similar connections.
Use cases that depend on the same data tables are likely to be similar.
Grouping elements with similar connections into same subsystems would also help to
minimize the connections at subsystem level. GSH diagrams can also be used to
visualize the subsystem level connections, thus promising to be a quite universal
tool for software engineering.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Ambler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>W.</surname>
          </string-name>
          (
          <year>2005</year>
          ):
          <source>The Elements of UML 2.0 Style</source>
          . Cambridge University Press.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Ar´evalo, G.,
          <string-name>
            <surname>Berry</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perrot</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sigayret</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>: Performances of Galois Sub-Hierarchy-Building Algorithms</article-title>
          .
          <source>Formal Concept Analysis, LNCS</source>
          , vol.
          <volume>4390</volume>
          ,
          <fpage>166</fpage>
          -
          <lpage>180</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Aun</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Galois sub-hierarchy builder</article-title>
          . [WWW] http://sourceforge.net/projects/gshbuilder/ (
          <volume>15</volume>
          .
          <fpage>09</fpage>
          .
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Becker</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hereth</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stumme</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          (
          <year>2002</year>
          )
          <article-title>: ToscanaJ - an Open Source Tool for Qualitative Data Analysis. Advances in Formal Concept Analysis for Knowledge Discovery in Databases</article-title>
          .
          <source>Proc. Workshop FCAKDD of the 15th European Conference on Artificial Intelligence</source>
          ,
          <fpage>1</fpage>
          -
          <lpage>2</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Berry</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Napoli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sigayret</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2012</year>
          ):
          <article-title>Hermes: an Efficient Algorithm for Building Galois Sub-hierarchies</article-title>
          .
          <source>CLA</source>
          <year>2012</year>
          :
          <fpage>21</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2000</year>
          )
          <article-title>: Writing Effective Use Cases</article-title>
          . Boston: Addison-Wesley.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dennis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haley Wixom</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roth</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          (
          <year>2008</year>
          )
          <article-title>: Systems Analysis</article-title>
          and Design, 4th ed. Wiley.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Dolques</surname>
            ,
            <given-names>X.</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>
          ,
          <string-name>
            <surname>Reitz</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2012</year>
          )
          <article-title>: Fixing Generalization Defects in UML Use Case Diagrams</article-title>
          .
          <source>Fundam. Inform</source>
          .
          <volume>115</volume>
          (
          <issue>4</issue>
          ):
          <fpage>327</fpage>
          -
          <lpage>356</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Ganter</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wille</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          (
          <year>1998</year>
          )
          <article-title>: Formal Concept Analysis</article-title>
          ,
          <source>Mathematical Foundations</source>
          . Berlin: Springer.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Godin</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mili</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          (
          <year>1993</year>
          )
          <article-title>: Building and Maintaining Analysis-Level Class Hierarchies using Galois Lattices</article-title>
          .
          <source>Proceedings of OOPSLA 28</source>
          ,
          <fpage>394</fpage>
          -
          <lpage>410</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Godin</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valtchev</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>: Formal Concept Analysis-Based Class Hierarchy Design in Object-Oriented Software Development</article-title>
          .
          <source>Formal Concept Analysis</source>
          <year>2005</year>
          ,
          <article-title>LNCS</article-title>
          , vol.
          <volume>3626</volume>
          ,
          <fpage>304</fpage>
          -
          <lpage>323</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Hesse</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tilley</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>: Formal Concept Analysis Used for Software Analysis and Modelling</article-title>
          .
          <source>Formal Concept Analysis</source>
          <year>2005</year>
          ,
          <article-title>LNCS</article-title>
          , vol.
          <volume>3626</volume>
          ,
          <fpage>259</fpage>
          -
          <lpage>282</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Larman</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2002</year>
          )
          <article-title>: Applying UML and Patterns</article-title>
          , 2nd ed. Upper Saddle River, NJ: Prentice Hall.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Oppel</surname>
            ,
            <given-names>A. J.</given-names>
          </string-name>
          (
          <year>2004</year>
          ): Databases Demystified. New York:
          <string-name>
            <surname>McGraw-Hill</surname>
          </string-name>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Raud</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          : GSH. [WWW] http://staff.ttu.ee/ torim/fca.html (
          <volume>15</volume>
          .
          <fpage>09</fpage>
          .
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Rumbaugh</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jacobson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Booch</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          (
          <year>1999</year>
          ):
          <article-title>The Unified Modelling Language Reference Manual</article-title>
          . Boston: Addison Wesley.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Tilley</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cole</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Becker</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eklund</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>: A Survey of Formal Concept Analysis Support for Software Engineering Activities</article-title>
          .
          <source>Formal Concept Analysis</source>
          <year>2005</year>
          ,
          <article-title>LNCS</article-title>
          , vol.
          <volume>3626</volume>
          ,
          <fpage>250</fpage>
          -
          <lpage>271</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Torim</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2011</year>
          )
          <article-title>: A Visual Model of the CRUD Matrix</article-title>
          .
          <source>Proceedings of the 21th European-Japanese Conference on Information Modelling and Knowledge Bases</source>
          . (Ed.) Jaak Henno, Yasuhi Kiyoki, Takehiro Tokuda,
          <string-name>
            <given-names>Naofumi</given-names>
            <surname>Yoshida</surname>
          </string-name>
          . Tallinn: TTU Press,
          <fpage>114</fpage>
          -
          <lpage>122</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Tufte</surname>
            ,
            <given-names>E. R.</given-names>
          </string-name>
          (
          <year>2001</year>
          ):
          <article-title>The Visual Display of Quantitative Information</article-title>
          , 2nd ed. Cheshire, Connecticut: Graphics Press.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Valtchev</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grosser</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roume</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , Hac´ene, R. (
          <year>2003</year>
          ):
          <article-title>Galicia: an Open Platform for Lattices. Using Conceptual Structures: Contrib. to the 11th ICCS</article-title>
          ,
          <fpage>241</fpage>
          -
          <lpage>254</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Wille</surname>
          </string-name>
          , R.:
          <article-title>Restructuring lattice theory (</article-title>
          <year>1982</year>
          )
          <article-title>: an approach based on hierarchies of concepts</article-title>
          .
          <source>Ordered Sets</source>
          , pp.
          <fpage>445</fpage>
          -
          <lpage>470</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Wille</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stumme</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ganter</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>: Formal Concept Analysis: Foundations and Applications</article-title>
          , Berlin: Springer.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Wille</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>: Formal Concept Analysis as Mathematical Theory of Concepts and Concept Hierarchies</article-title>
          .
          <source>Formal Concept Analysis</source>
          <year>2005</year>
          ,
          <article-title>LNCS</article-title>
          , vol.
          <volume>3626</volume>
          ,
          <fpage>47</fpage>
          -
          <lpage>70</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Yevtushenko</surname>
            ,
            <given-names>S. A.</given-names>
          </string-name>
          (
          <year>2000</year>
          )
          <article-title>: System of Data Analysis ”Concept Explorer” (In Russian)</article-title>
          .
          <source>Proceedings of the 7th national conference on Artificial Intelligence KII</source>
          ,
          <fpage>127</fpage>
          -
          <lpage>134</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>