<!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>Formal Computation Independent Model of the Problem Domain within the MDA</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Janis Osis</string-name>
          <email>janis.osis@cs.rtu.lv</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Erika Asnina</string-name>
          <email>erika.asnina@cs.rtu.lv</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrejs Grave</string-name>
          <email>andrejs.grave@inbox.lv</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Computer Science and Information Technology, Institute of Applied Computer Systems, Riga Technical University</institution>
          ,
          <country country="LV">Latvia</country>
        </aff>
      </contrib-group>
      <fpage>47</fpage>
      <lpage>54</lpage>
      <abstract>
        <p>The proposed approach called Topological Functioning Modeling for Model Driven Architecture (TFMfMDA) uses formal mathematical foundations of Topological Functioning Model. It introduces more formal analysis of a business system (“as is”), enables defining of what the client needs, textual functional requirements validation, and missing requirements checking in conformance with the problem domain “as is” model. By using a goal-based method, a use case model of the planned application is defined. Graph transformation from the TFM to a conceptual class diagram enables the definition between domain concepts and their relations to be established. The paper also suggests a concept of a tool for the TFMfMDA, which is realized as an Eclipse plug-in, and uses Natural Language Processing techniques.</p>
      </abstract>
      <kwd-group>
        <kwd>MDA</kwd>
        <kwd>problem domain</kwd>
        <kwd>topological functioning modeling</kwd>
        <kwd>use case</kwd>
        <kwd>eclipse</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        The main idea of the given work is to introduce more formalism into the problem
domain modeling within OMG Model Driven Architecture (MDA) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] in the field of
object oriented software development. For that purpose, formalism of a Topological
Functioning Model (TFM) is used [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. TFM holistically represents complete
functionality of the system from the computation-independent viewpoint. TFM can be
considered as so-called “model of the business” that abstracts details, which are
overly specific for the given viewpoint. TFM is an expressive and powerful
instrument for a clear presentation and formal analysis of system functioning and the
environment the system works within.
      </p>
      <p>This paper is organized as follows. Section 2 describes key principles and
suggested solutions for a computation independent modeling as well as their
weaknesses in the object oriented analysis (OOA) within the MDA. Section 3
discusses a developed approach, i.e. Topological Functioning Modeling for Model
Driven Architecture (TFMfMDA). This is illustrated in an example of modeling of
library functioning. Section 4 describes the concept of a tool that partially automates
it. Conclusions establish further directions into the research of Computation
Independent Model (CIM).</p>
    </sec>
    <sec id="sec-2">
      <title>2 CIM Constructing Within the MDA</title>
      <p>
        The MDA states that the CIM usually includes several distinct models that describe
system requirements, business processes and objects, environment the system will
work within, etc. OOA is a semiformal specification technique that contains use case
modeling, class modeling, and dynamic modeling. Use cases are a notation not an
approach. Their usage is not systematic in comparison with systematic approaches
that enable identification of all system requirements. Creation of use case models and
establishment of concepts and relations among them are usually rather informal than
semiformal. Fig. 1 shows several existing ways of creating these models. One way is
to apply assisting questions [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ], categories of concepts and concept relations [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] or
goals [
        <xref ref-type="bibr" rid="ref4 ref6">6, 4</xref>
        ] in order to identify use cases and concepts from the description of the
system (in a form of an informal description, expert interviewing, etc.). Another way
is drafting a system requirements specification using some requirement gathering
technique. Later these requirements are used for use case identification and
conceptual model creation. The most complete way is use case and concept
identification having knowledge of the problem domain as well as the system
requirements specification [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        Use case modeling starts with some initial estimate (a tentative idea) about where
the system boundary lies. As an example we can mention the Unified Process [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
where use cases are driven by system requirements, the B.O.O.M. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which is IT
project driven, and Alistair Cockburn's approach [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Use cases’ fragmentary nature
does not give any answer to questions about identifying all of system’s use cases,
conflicts among the use cases, gaps in the system’s requirements, how changes can
affect behavior that other use cases describe [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. We consider that problem domain
modeling and understanding to be the primary stage in the software development,
especially in case of embedded and complex business systems, whose failure can lead
to huge losses. This means that use cases must be applied as a part of a technique,
whose first activity is a construction of a well-defined problem domain model. Such
an approach is TFMfMDA which is discussed in this paper. This research can be
considered as a step towards the MDA completeness.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3 Topological Functioning Modeling for MDA</title>
      <p>
        The TFMfMDA is based on the formalism of Topological Functioning Model and
uses some capabilities of universal category logic [
        <xref ref-type="bibr" rid="ref10 ref11 ref2">10, 11, 2</xref>
        ].
      </p>
      <p>The main steps of the TFMfMDA are illustrated by bold lines in Fig. 2. There are
two parallel branches at the beginning of the problem analysis: analysis at the
(business or enterprise) system level, and analysis at the application level. Having
knowledge about a complex system that operates in the real world, a TFM of this
system can be composed. The main idea is that the functionality determines the
structure of the planned system. This means that the TFM of the system validates and
can be partially changed by functional requirements. Then TFM’s functional features
are associated to business goals of the system; this provides business use cases as well
as system use cases identification according to the problem domain realities.
Moreover, after those activities functional requirements are not only in conformance
with the business system functionality but also can be traceable to the system use case
model. Problem domain concepts are selected and described in UML Class Diagram.</p>
      <p>
        Step 1: Topological Functioning Model Construction. The TFM has a solid
mathematical base. It is represented in a form of a topological space (X, Θ), where X
is a finite set of functional features of the system under consideration, and Θ is
topology that satisfies Hausdorff's axioms and is represented in a form of a directed
graph. The necessary condition for construction of a topological space is a meaningful
and exhaustive verbal, graphical, or mathematical system description. The adequacy
of a model describing the functioning of some concrete system can be achieved by
analyzing mathematical properties of such abstract object [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. TFM has topological
(connectedness, closure, neighborhood, and continuous mapping) and functional
(cause-effect relations, cycle structure, and inputs and outputs) characteristics. It is
acknowledged that every business and technical system is a subsystem of the
environment.
      </p>
      <p>Steps of the TFM construction for problem domain modeling in a business system
context are as follows: a) Definition of physical or business functional characteristics
(inner and external objects, functional features) by means of noun and verb analysis in
the informal problem description; b) Introduction of topology, i.e. establishing
causeeffect relations between functional features. These relations are represented as arcs of
a digraph that are oriented from a cause vertex to an effect vertex; and c) Separation
of the topological functioning model.</p>
      <p>Cause-effect relations form causal chains that sometimes are functioning cycles.
All the cycles and subcycles should be carefully analyzed in order to completely
identify existing functionality of the system. The main cycle (cycles) of system
functioning (i.e. functionality that is vitally necessary for system’s life) must be found
and analyzed before starting further analysis. In case of studying a complex system, a
TFM can be separated into a series of subsystems according to identified cycles.</p>
      <p>The result of this activity can be represented like the one in Fig.3a that illustrates a
TFM for a fragment of library (business) system functioning. The identified inner
objects are a librarian, a book copy, a reader account, a reader card, a request for a
book, a fine, a loan term, a statement of utilization, book fund. The identified
functional features should be represented in the form of &lt;functional feature,
[{precondition},] the responsible entity, subordination (“in” is inner, “ex” is
external)&gt;, e.g. “1: Arriving of a person, person, ex” or “2: Creating of a reader
account, {unregistered person}, librarian, in”. All system functionality– the set X got
by the closuring operation is X= {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
19, 20, 21}. The main functional cycle is defined by an expert, and includes
functional features “17-8-9-10-11-5-12-13-14-15-17” (bold lines in Fig. 3a).
21
22
1
20
16
19
18
2
15
14
a)
8
13
3
17
7
9
12
4
6
10
5
11
20
21
25
1
16
26
15
24</p>
      <p>2</p>
      <sec id="sec-3-1">
        <title>Step 2: Functional Requirement Conformity to the TFM. It is the functional</title>
        <p>
          requirement (hereafter requirements) validation in conformity with the constructed
TFM. Functional features specify functionality that exists in the problem domain.
Requirements specify functionality that must exist in the application. Thus,
requirements can be mapped onto functional features of a TFM. Mappings are
described with arrow predicates ⎯ constructs borrowed from the universal
categorical logic for computer science that is explored in details in [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>Within the TFMfMDA, five types of mappings and corresponding arrow predicates
are defined: one-to-one for a complete specification of a functional feature,
many-toone for an overlapping or non-overlapping specification of a functional feature,
oneto-many for an incomplete or complete specification of a functional feature set,
oneto-zero for a new or undefined functionality specification (possible changes in
functioning must be defined), and zero-to-one indicates missed requirements. Thus, it
is mandatory to make a decision about implementation of the discovered functionality
together with the client. Results of this activity are both validated functional
requirements and TFM, which describes needed system functionality and the
environment it operates within.</p>
        <p>Let us assume that five functional requirements are drafted: FR1, FR2, FR3, FR4,
and FR5. The new functionality introduced by FR5 can be described by new
identified objects (the system, a wait list and SMS), and the following functional
features – 23, 24, 25, 26. As a result existing cause-effect relations are rechecked and
the set X = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25,
26}. The resulting model is represented in Fig. 3b. The final mappings of
requirements onto the functional features are illustrated in Fig. 3c.</p>
        <p>
          Step 3: Use Case Model Construction. Transition from an initial problem domain
model to a CIM “output” model, i.e. a use case model, goes as follows: 1)
Identification of business users (actors and workers) and their goals. Actors are
external entities that establish business goals. In the TFM, they are represented as
external objects responsible for functional feature execution. Workers are system’s
inner entities (humans, roles, etc.), who either establish system goals or implement
them and business goals [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Identification of goals is identification of the set of
functional features necessary for the satisfaction of the goal; 2) Identification and
refinement of system’s use cases that includes discovering functional features
specified by requirements that are needed to achieve a business goal. It enables formal
identification of a use case model from the TFM. An executor of the goal is
transformed into an (UML) actor. Identified use cases can be represented in an UML
activity diagram by transforming functional features into activities, and cause-effect
relations into control flows; 3) Use case prioritizing is defined in conformance with
the main functional cycle (critical, important, useful).
        </p>
        <p>In our example, actors are a person, a reader, and a utilizer. Workers are a librarian
and the system itself. The resulting use-case model, where workers are transformed
into actors, goal names into use case names, functional features into steps of the
corresponding use case is shown in Fig. 4a.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Step 4: Obtaining a Concept Diagram. The last step is identification of a</title>
        <p>conceptual class model. After Step 3, the TFM shows functionality that must be
implemented, and includes all concepts that are necessary for proper functioning.</p>
        <p>In order to obtain a conceptual class model each TFM functional feature is detailed
to the level where it only uses one type objects. After that, this model must be
transformed one-to-one into a problem domain object graph, and then vertices with
the same type of objects must be merged keeping all relations with other graph
vertices. As a result, a conceptual class graph with indirect associations is defined.
Concepts used in the main functionality are necessary in all cases. Such
transformation also indicates possible inheritance relations, and use case interfaces.</p>
        <p>
          In our example, the step of the TFM refinement is skipped. Fig. 4b reflects the
TFM after the gluing of all graph vertices with the same object types. This reflects the
idea proposed in [
          <xref ref-type="bibr" rid="ref13 ref2">13, 2</xref>
          ] that the holistic domain representation by means of the TFM
allows identifying of all necessary domain concepts, and, even, allows to define their
necessity for a successful implementation of the system.
The TFMfMDA uses a complex graph-based constructs that require additional efforts.
The main purpose of a tool for the TFMfMDA is the model management, i.e. model
validation, traceability handling, step automation, etc. This section discusses the
concept of the tool that is approved to be realized at Riga Technical University.
        </p>
        <p>
          The tool supports client-server architecture. The server keeps information about
models; the client part enables the connection with the server and the use of the kept
information. It is implemented as an Eclipse plug-in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Eclipse is an open
development platform that consists of different components, which helps in
developing Integrated Development Environments (IDEs). For the TFMfMDA tool
realization the following Eclipse components were used: Workbench UI, Help
system, and Plug-in Development Environment (PDE). The Workbench UI is
responsible for plug-in integration with Eclipse User Interface (UI). It defines
extension points, by using which a plug-in can communicate with the Eclipse UI.
Help System provides complete integration of help information into the Eclipse help
system. PDE is the environment that enables automation of activities related to the
plug-in development.
        </p>
        <p>The tool allows working with textual information (an informal description, a
functional requirements description), and graph-based constructs (a topological
functioning model, a conceptual class model, a use case model). All changes are
automatically propagated to the related models. The scheme of the tool activities is
illustrated in Fig. 5. It describes the considered TFMfMDA steps. The first three steps
reflect TFM construction, the step IV reflects functional requirement validation and
TFM enhancing, the step V illustrates use case model creation, and the step VI shows
the process of getting the conceptual class diagram. By now realized parts of the tools
include the first three steps. The steps IV, V and VI are still under research.</p>
        <p>The interesting part is the realization of the work with an informal description. The
informal text is handled on the server side for several reasons. They are knowledge
base using, the multi-user environment, and “learning” possibilities of the tool. The
server program supports detection of nouns, noun phrases, and verbs. The detected
information is sent to the client side in XML file form, where it is highlighted to the
user in different ways (different colors, fonts, etc.). The tool provides convenient
interface for handling this information and creation of functional features. The
topology introduced between functional features is realized as a mix of their graphical
and textual representation. The tool offers the user to join, split up and define
causeeffect relations between functional features using a tabular representation, but the
result is also represented in the form of graphs.</p>
        <p>The TFMfMDA tool provides a separate editor for each step. Each editor has
relevant views that represent actual information. All automated steps that need user
participation are realized as wizards that open corresponding editors. By now, there
are three wizards constructed in the tool. The first wizard creates a system description
file with the detected nouns, noun phrases and verbs by the Natural Language
Processing Server (NLPS). The second one creates a topological space. And the third
one creates a TFM.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>5 Conclusions</title>
      <p>The TFMfMDA application has the following advantages. First, careful cycle analysis
can help to identify all (possible at that moment) functional and causal relations
between objects in complex business systems. Use case implementation priorities can
be ordered not only in accordance with the client's wishes, but in accordance with the
functioning cycles. It makes it possible to take a decision about functional change
acceptability before their realization in the application, and helps to validate
functional requirement completeness. Second, it solves some use case limitations in
information capturing, thinking limitation and completeness checking, provides use
case completeness, avoids conflicts among use cases, and shows their effect on each
other. Besides that it does not limit the use of any requirement gathering techniques.</p>
      <p>The tool partially automates TFMfMDA steps described above. But this approach
still requires human participation. Therefore, the further research is related to the
TFMfMDA enhancing with the capabilities of natural language handling in order to
make it possible to automate more steps of this approach and to decrease human
participation in decision making.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mukerji</surname>
            ,
            <given-names>J</given-names>
          </string-name>
          . (eds):
          <source>OMG: MDA Guide Version 1.0</source>
          .1 http://www.omg.org/docs/omg/03-06-01.pdf (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Osis</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Formal computation independent model within the mda life cycle</article-title>
          .
          <source>In: International Transactions on Systems Science and Applications</source>
          , Vol.
          <volume>1</volume>
          ,
          <issue>Nr</issue>
          . 2. Xiaglow Institute Ltd, Glasgow, UK (
          <year>2006</year>
          )
          <fpage>159</fpage>
          -
          <lpage>166</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Jacobson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Christerson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jonsson</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Object-Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley</surname>
          </string-name>
          (
          <year>1992</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Leffingwell</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Widrig</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Managing Software Requirements: a use case approach</article-title>
          . 2nd ed. Addison-Wesley (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Larman</surname>
          </string-name>
          , Cr.:
          <string-name>
            <surname>Applying</surname>
            <given-names>UML</given-names>
          </string-name>
          and
          <article-title>Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development</article-title>
          . 3rd ed.
          <source>Prentice Hall PTR</source>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Structuring Use Cases with Goals</article-title>
          . http://alistair.cockburn.us/crystal/ articles/sucwg/structuringucwithgoals.htm
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Arlow</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neustadt</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>UML2 and the Unified Process: Practical Object-Oriented Analysis</article-title>
          and
          <string-name>
            <surname>Design.</surname>
          </string-name>
          Addison-Wesley, Pearson
          <string-name>
            <surname>Education</surname>
          </string-name>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Podeswa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>UML for the IT Business Analyst: A practical Guide to Object-Oriented Requirements Gathering</article-title>
          . Boston, Thomson Course Technology PTR (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Ferg</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>What's Wrong with Use Cases?</article-title>
          http://www.ferg.org/papers/ferg-- whats_
          <article-title>wrong_with_use_cases</article-title>
          .html (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Asnina</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Formalization of Problem Domain Modeling within Model Driven Architecture</article-title>
          .
          <source>PhD thesis</source>
          , Riga Technical University, RTU Publishing House, Riga, Latvia (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Asnina</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Formalization Aspects of Problem Domain Modeling within Model Driven Architecture</article-title>
          .
          <source>In: Databases and Information Systems, 7th International Baltic Conference on Databases and Information Systems</source>
          , Communications, Materials of Doctoral Consortium. Vilnius: Technika (
          <year>2006</year>
          )
          <fpage>93</fpage>
          -
          <lpage>104</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Diskin</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kadish</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piessens</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Johnson</surname>
          </string-name>
          , M.:
          <article-title>Universal Arrow Foundations for Visual Modeling</article-title>
          .
          <source>In: Proc. Diagramms'2000: 1st Int. Conference on the theory and application of diagrams</source>
          . Springer LNAI, No.
          <year>1889</year>
          (
          <year>2000</year>
          )
          <fpage>345</fpage>
          -
          <lpage>360</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Osis</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Software Development with Topological Model in the Framework of MDA</article-title>
          .
          <source>In: Proceedings of the 9th CaiSE/IFIP8</source>
          .1/EUNO International Workshop on Evaluation of
          <article-title>Modeling Methods in Systems Analysis and Design (EMMSAD'2004) in connection with the CaiSE'2004</article-title>
          , Vol.
          <volume>1</volume>
          . Riga: RTU (
          <year>2004</year>
          )
          <fpage>211</fpage>
          -
          <lpage>220</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <article-title>Eclipse - an open development platform</article-title>
          . http://www.eclipse.org
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15] OMG:
          <article-title>Uml extension for business modeling</article-title>
          .
          <source>Version 1</source>
          .1. http://umlcenter.visualparadigm.com/umlresources/ (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>