<!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>Model-Based Database Design</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ahmed Al-Brashdi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Electronics and Computer Science University of Southampton</institution>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Many databases contain critical resources and data upon which important decisions rely and therefore their design requires a rigorous, veri able approach. Formal methods are mathematical and veri able tools to specify and prove software speci cations. While formal methods have been applied to database systems, there is a lack of a comprehensive, tool-supported methodology for formal development of practical database systems. This research tries to bridge the gap between the two areas by introducing an approach to rigorously design databases using the Event-B formal method. It follows a case study methodology and models this case gradually in a UML-like notation called UML-B which is translated to Event-B and veri ed in the Rodin platform. This PhD work presents general guidelines for modelling database applications in Event-B and proving their consistency, integrity and security considering di erent types of classes and relations. It provides translation method and tool to transform proved graphical models to e cient database systems.</p>
      </abstract>
      <kwd-group>
        <kwd>Formal methods</kwd>
        <kwd>UML-B</kwd>
        <kwd>Database design</kwd>
        <kwd>Code generation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The design of database systems is one of the most important disciplines of
software engineering development as it carries critical resources and data upon which
important decisions rely. While designing a small database application might
be simple and straightforward, current enterprises depend on very large and
complex database systems. For every increase in complexity, the possibility of
inconsistency and errors increases as well. One way of addressing this issue is
to construct database applications using a rigorous design methodology. Using
formal methods, a developer can specify complex systems and use formal veri
cation to detect ambiguities and inconsistencies.</p>
      <p>Unveri ed database design might lead to critical consequences. Inconsistent
or corrupt data in patient databases might result in a patient getting a wrong
prescription which could harm his/her life. If an enterprise derives its decisions
from a non-accurate database, it may result in a loss of money. This highlights
the question of how to guarantee database consistency and integrity in the early
stages of development.</p>
      <p>
        To address these issues, we propose the development of a mathematically
provable approach for designing and creating databases. The research aims to
develop a method and a tool to help developers rigorously design the structure of
their database application and create the methods for manipulating and
maintaining its data. It de nes guidelines for modelling databases using a UML-like
graphical notation called UML-B [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] in the Rodin platform [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and use it to
prove the consistency of the model speci cations in Event-B [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. A tool, called
iUML-B, is used which supports building diagrams in UML-B and is integrated
in an Event-B machine or context. A veri ed database implementation code will
be generated with respect to consistency, integrity and security.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related work</title>
      <p>
        Barros in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] translates Z speci cations to relational databases. The work covers
di erent CRUD operations as well as transactions, sorting aggregations and
other database components. The work translates the textual speci cation in Z
and there is no graphical model of the representation in which the process should
start with.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], Khala nejad and Mirian-Hosseinabadi present a method that
translates Z notation to SQL and Delphi programming language by extending the
Delphi library to support Z structures. While the work provides a formal basis
to build a database prototype, it does not implement a tool for the
translation. Only the formal de nition of translation function is presented in the paper
without the implementation of these functions.
      </p>
      <p>
        Schlatte and Aichernig in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] present a method to create a VDM formal
model for relational databases. The method transfers an entity-relation diagram
to VDM-SL constructs along with additional constraints. The method includes
formalizing database structure, SQL data types, database operations and
runtime checking using triggers.
      </p>
      <p>
        Mammar and Laleau in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] present a tool that re nes a UML speci cation
into a B model and then to a database application. The work helps a modeller
to design a UML diagram and then translate that model to a B speci cation and
on to Java and SQL code. Only the rst normal form is guaranteed in Laleau
and Mammar's work and other normal forms are up to the UML designer to
satisfy.
      </p>
      <p>
        Davies et al. in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] explore how to formalize object database speci cations
and constraints using Booster notation [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. They use a model-driven approach
to automatically generate object-oriented databases. An extended version of B
method and Object Constraint Language (OCL) [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] are used to implement the
object database in which methods are implemented as functions in C language.
      </p>
      <p>
        Wang and Wahls in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] developed a Rodin plug-in that translates Event-B
to Java and JDBC code to create and query a database. While, to the best of
our knowledge, this is the only work that translates an Event-B to database
applications, it has some limitations. The results shown in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] identify major
performance issues as well as the issues with preserving database integrity as
shown in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], Bahmani et al. present an automated method for relational database
normalization that generates 2NF, 3NF and BCNF. The methods used to
automate the normalization process depends on scanning an existing data in a table
and determining the dependencies between its attributes. However, the focus
of our research is to guarantee the normalization when designing the database
structure and before populating any data on the databases.
      </p>
      <p>
        Bartino and Sandhu in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] discuss Discretionary Access Control (DAC) for
relational databases which includes two access control models; content-based and
role-based. The Mandatory Access Control (MAC) regulate the access between
subjects and objects. They also discuss the access control for object and XML
databases. In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], Dollinger highlighted the two models, DAC and MAC and
compares the second against Clark and Wilson Model. Both papers emphasis
the importance of database security in research and practice.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Expected Contributions</title>
      <p>At the end of this PhD research, we expect to deliver a comprehensive method
and a supporting tool to translate UML-B models to database systems. The
emphasis of this work will be on relational database systems but we plan to
extend in future to support other models of database systems such as NoSQL.
The current work provides a method and a tool to model and translate di erent
components of relational databases a long with their constraints. It will translate
the constraints that are supported by Structured Query Language (SQL) such
as unique, default or not null values.</p>
      <p>Contribution 1 : To de ne general guidelines on how to model database
systems in UML-B and prove them in Rodin platform. A set of case studies are
being modelled to deduce the guidelines which could be applicable to a wide class
of database systems. These guidelines will help the modeller to specify di erent
constraints and invariants that satisfy the system requirements.</p>
      <p>Contribution 2 : To de ne translation rules from UML-B and Event-B
models to database systems. These rules will be used by a tool that generates the
database implementation code from the model.</p>
      <p>Contribution 3 : To incorporate access control and privacy properties in our
database design method based on a security-sensitive case study like Internet
banking. Our approach will follow access roles and policies strategies to ensure
an authorized access or modi cation of the data.</p>
      <p>Contribution 4 : To automate the database normalization process by
letting the modeller speci es the functional dependencies between attributes. The
research aims to study the possibility of automating the normalization of a model
to BCNF using these functional dependencies.</p>
      <p>
        Contribution 5 : To provide a library of di erent data types and operation
on them using the Theory feature [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] in Roding platform. By using these data
types like String, Date, Binary object or Time, a modeller can specify events
that operate on these data types such as string substitution.
      </p>
      <p>Contribution 6 : To build a tool that supports the above contributions and
translate the UML-B model to database system. It will generate the code that
creates the database structure and manipulates its contents.</p>
      <p>
        Contribution 7 : To extend the method and the tool to support distributed
database transactions with multiple simultaneous users. The research should
make use of formal methods patterns represented in the literature to model
distributed transactions. These patterns, like timeout, cancel and failure patterns
in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], might address the issue of distributed transactions of multiple users in
databases.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Work so far</title>
      <p>Sine October 2015 where the PhD started, we have achieved the following:</p>
      <p>Contribution 1 : We identi ed general guidelines on how to model database
system in UML-B with di erent classes and associations. The guidelines were
concluded by modelling a student enrollment and registration system followed
by a second case study of car sharing system. This enabled us to identify the
common features in both systems and derive the guidelines. The guidelines will
be extended to suggest design patterns for relational database modelling. The
design patterns should be concluded by examining and modelling di erent case
studies in UML-B. It also includes how to specify di erent operations on database
systems when modelling them in UML-B and Event-B.</p>
      <p>Contribution 2 : So far, we have de ned twenty rules to map UML-B models
to database implementations and constraints. The rules specify how to translate
or map UML-B components to relational database components. It also de nes
how to translate Event-B invariants such as total or injective functions to SQL
constraints. The rules will be extended while developing and evaluating the tool
in Contribution 6.</p>
      <p>Contribution 3 : We started to work on modelling database security on an
Internet banking system by introducing access rules and policies to database
objects. These rules de nes who can access the data and what operations can
they perform on it.</p>
      <p>
        Contribution 6 : We developed a working prototype of the tool that
generates SQL code from the model de ned in UML-B. Part of the tool development
was de ning a meta-model of relational database and use it for model to model
transformation. The relational database meta-model is de ned using Eclipse
Modeling Framework (EMF) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Figure 1 shows part of our database
metamodel used for the tool where database is composed of tables, table may have
references to other tables and table may have di erent attributes. The tool takes
the EMF model of UML-B [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and maps it to our relational database model.
The tool then generates the SQL code from the database EMF model. While the
tool development is a continuous process that incorporates other contributions
throughout this PhD work, the initial version of the tool provides the following:
{ Generates the database and its tables with their associations from any
UML
      </p>
      <p>B class diagram model as SQL statements.
{ Translates each class attribute in UML-B diagram to an attribute to the
corresponding table.
{ Translates functional associations between classes to referential integrity
between two tables. If the association, C, is not a function but a relation, say
A $ B, the modeller is encouraged to model it as a separate class, C, and
provide associations from it to both classes, A and B. However, the tool
may provide an automated re nement of relational associations to associate
classes in future development.
{ Translates typing invariants of total functions for associations and attributes
in UML-B models to not null constraints, injective functions to unique
constraints and initial values to default constraints in SQL.
{ Translates some events in UML-B to corresponding database operations such
as insert, select, update or delete. Each event is translated to a stored
procedure in SQL. Constructor events in UML-B, for example, are translated to
procedures that takes all class attributes and associations as parameters and
execute an insert into statement with these parameters values. Procedures
can be used to check for some guards in the run-time to ensure user supplies
correct data.</p>
      <p>Contribution 4,5 and 7 : To be done.</p>
      <p>In summary, this PhD work will contribute a rigorous method and tool for
modelling relational database applications and automatically generate the code
for the database structure and manipulation. With extensive evaluation and
experiments, database integrity, consistency, security and privacy will be addressed
in the research. A further step is to incorporate distributed databases into this
research and prove their dependability.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abrial</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          :
          <article-title>Modeling in Event-B: system and software engineering</article-title>
          . Cambridge University Press (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Abrial</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Butler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hallerstede</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoang</surname>
            ,
            <given-names>T.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mehta</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Voisin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Rodin: an open toolset for modelling and reasoning in Event-B</article-title>
          .
          <source>International journal on software tools for technology transfer 12(6)</source>
          ,
          <volume>447</volume>
          {
          <fpage>466</fpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Al-Brashdi</surname>
            ,
            <given-names>A.: Translating</given-names>
          </string-name>
          <string-name>
            <surname>Event-B to Database Application</surname>
          </string-name>
          .
          <source>Master's thesis</source>
          , University of Southampton (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bahmani</surname>
            ,
            <given-names>A.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Naghibzadeh</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bahmani</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Automatic database normalization and primary key generation</article-title>
          .
          <source>In: Electrical and Computer Engineering</source>
          ,
          <year>2008</year>
          . CCECE 2008. Canadian Conference on. pp.
          <volume>000011</volume>
          {
          <fpage>000016</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ball</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Butler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Event-B patterns for specifying fault-tolerance in multi-agent interaction</article-title>
          . In:
          <article-title>Methods, models and tools for fault tolerance</article-title>
          , pp.
          <volume>104</volume>
          {
          <fpage>129</fpage>
          . Springer (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Barros</surname>
            ,
            <given-names>R.S.M.</given-names>
          </string-name>
          :
          <article-title>On the formal speci cation and derivation of relational database applications</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>14</volume>
          ,
          <issue>3</issue>
          {
          <fpage>29</fpage>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Bertino</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sandhu</surname>
          </string-name>
          , R.:
          <article-title>Database security-concepts, approaches, and challenges</article-title>
          .
          <source>Dependable and Secure Computing, IEEE Transactions on 2(1)</source>
          ,
          <volume>2</volume>
          {
          <fpage>19</fpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Butler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maamria</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Practical theory extension in Event-B</article-title>
          .
          <source>In: Theories of Programming and Formal Methods</source>
          , pp.
          <volume>67</volume>
          {
          <fpage>81</fpage>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Catano</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wahls</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>A case study on code generation of an ERP system from Event-B</article-title>
          .
          <source>In: Software Quality, Reliability and Security (QRS)</source>
          ,
          <year>2015</year>
          IEEE International Conference on. pp.
          <volume>183</volume>
          {
          <fpage>188</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Davies</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Crichton</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Crichton</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neilson</surname>
          </string-name>
          , D., S rensen, I.H.:
          <article-title>Formality, evolution, and model-driven software engineering</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>130</volume>
          ,
          <issue>39</issue>
          {
          <fpage>55</fpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Davies</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Welch</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cavarra</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Crichton</surname>
          </string-name>
          , E.:
          <article-title>On the generation of object databases using Booster</article-title>
          .
          <source>In: Engineering of Complex Computer Systems</source>
          ,
          <year>2006</year>
          .
          <source>ICECCS</source>
          <year>2006</year>
          . 11th IEEE International Conference on. pp.
          <volume>10</volume>
          {pp.
          <source>IEEE</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Dollinger</surname>
          </string-name>
          , R.:
          <article-title>Database security models-a case study</article-title>
          .
          <source>In: 8th international conference on intelligant engineering systems</source>
          . pp.
          <volume>313</volume>
          {
          <fpage>318</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. Khala nejad, S.,
          <string-name>
            <surname>Mirian-Hosseinabadi</surname>
            ,
            <given-names>S.H.</given-names>
          </string-name>
          :
          <article-title>Translation of Z speci cations to executable code: Application to the database domain</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>55</volume>
          (
          <issue>6</issue>
          ),
          <volume>1017</volume>
          {
          <fpage>1044</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Mammar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laleau</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>From a B formal speci cation to an executable code: application to the relational database domain</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>48</volume>
          (
          <issue>4</issue>
          ),
          <volume>253</volume>
          {
          <fpage>279</fpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Schlatte</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aichernig</surname>
            ,
            <given-names>B.K.</given-names>
          </string-name>
          :
          <article-title>Database development of a work- ow planning and tracking system using VDM-SL</article-title>
          . In: Workshop Materials: VDM in
          <string-name>
            <surname>Practice</surname>
          </string-name>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Snook</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Butler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>UML-B and Event-B</surname>
          </string-name>
          :
          <article-title>An integration of languages and tools</article-title>
          .
          <source>In: Proceedings of the IASTED International Conference on Software Engineering</source>
          . pp.
          <volume>336</volume>
          {
          <fpage>341</fpage>
          . SE '08, ACTA Press, Anaheim, CA, USA (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Snook</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fritz</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Illisaov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>An EMF framework for Event-B</article-title>
          . In: Workshop on Tool Building in Formal Methods - ABZ Conference, Orford, Canada (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Steinberg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Budinsky</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merks</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paternostro</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>EMF: Eclipse Modeling Framework</article-title>
          . Pearson
          <string-name>
            <surname>Education</surname>
          </string-name>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wahls</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Translating Event-B machines to database applications</article-title>
          .
          <source>In: Software Engineering and Formal Methods</source>
          , pp.
          <volume>265</volume>
          {
          <fpage>270</fpage>
          . Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Warmer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kleppe</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The Object Constraint Language: Precise Modeling with UML</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc., Boston, MA, USA (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>