<!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>Using Functional Characteristics to Analyze State Changes of Objects</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Uldis DONINS</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <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>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Asnate JANSONE</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Applied Computer Science, Riga Technical University</institution>
          ,
          <country country="LV">Latvia</country>
        </aff>
      </contrib-group>
      <fpage>94</fpage>
      <lpage>106</lpage>
      <abstract>
        <p>Event-driven software systems continuously wait for occurrence of some external or internal events. When such event is received and recognized, the system reacts by performing corresponding computations which may include generation of events that trigger computation in other components. After the event handling operation is complete the system returns to the waiting state for the next event occurrence. The response to the received event depends on the current state of the system and underlying objects and can include a change of state leading to a state transition. The state changes and transitions within a system can be formally analyzed by using functional characteristics of Topological Functioning Model (TFM). TFM captures system functioning specification in the form of topological space consisting of functional features and cause-and-effect (i.e. topological) relations among them and is represented in a form of directed graph. The functional features together with topological relationships contain the necessary information to create State diagram which reflects the state changes within system.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Topological functioning modeling</kwd>
        <kwd>functional characteristics</kwd>
        <kwd>objects</kwd>
        <kwd>states</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The behavior of an object over time could be surmised by analyzing system use-case
descriptions, activity diagrams, or other software design artifact. To avoid surmising
the state change of objects in system, a State diagram is used [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]. The state diagram
is part of the Unified Modeling Language (UML) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The application of design models
provide better understanding of proposed solution and allows making better decisions
concerning the implementation details. Additionally, the model driven development has
been put forward to enable development, validation and transformation of syntactically
and semantically complete models, thus allowing source code generation automation.
In such way models are promoted as the core and main artifact of software design and
development.
      </p>
      <p>
        Despite the presence of UML and a number of software development methods, the
way the software is built still remains surprisingly primitive (by meaning that major
software applications are cancelled, overrun their budgets and schedules, and often
have hazardously bad quality levels when released) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. This is due that the very
beginning of software development lifecycle is too fuzzy and lacking a good structure
since the software developers has limited analysis and modeling of systems [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Instead
of analyzing the system software developers set the main focus on analysis and
modeling of software thus leading to a gap between the system and its supporting
software [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. This issue can be overcome by formalizing the very beginning of the
software development lifecycle. By adding more efforts at the very beginning of
lifecycle it is possible to build better quality software systems [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ].
      </p>
      <p>
        By having too fuzzy beginning of the software development and lacking a good
structure of it, the elimination of gap between computation independent viewpoint and
the platform independent viewpoint depends much on designers’ personal experience
and knowledge (both viewpoints mentioned in the context of Model Driven
Architecture – MDA [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]). Thus the quality of software system design models cannot be
well controlled [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ]. There are a number of researches which try to enforce the
initial phase in software development by strengthening it with various models like use
cases [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], goal based models [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], behavioral models (like Activity and Sequence
diagrams) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], and structural models [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Previous researches in the field of
formalizing very beginning of software development lifecycle propose TopUML
modeling that enables modeling the functioning of both the problem and solution
domains [
        <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
        ]. Additionally it supports early solution domain model validation
against functioning of the problem domain. TopUML modeling is a model-driven
approach which combines Topological Functioning Model (TFM) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and its
formalism with elements and diagrams of TopUML [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] (a profile based on UML).
The TFM holistically represents a complete functionality of the system from the
computation independent viewpoint [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. It considers problem domain information
separate from the solution domain information.
      </p>
      <p>The purpose of this research is to strengthen the TopUML modeling with formal
development of State diagram thus enabling transformation from TFM to it and
eliminating the gap between problem domain model and software design (solution)
model. Thus the paper is organized into following sections. Section 1 discusses the
UML modeling driven methods that supports analysis of object state transitions and
composition of corresponding State diagrams. Section 2 explores TopUML modeling
and the prerequisites that should be satisfied in order to formally develop State
diagrams in strong relevance with the problem domain. This section gives the formal
method of developing State diagram based on TFM, i.e., the TFM to State diagram
transformation pattern. Section 3 shows an example of using functional characteristics
to analyze state changes of objects based on enterprise data synchronization system.
Paper is concluded with conclusions of the performed research.</p>
    </sec>
    <sec id="sec-2">
      <title>1. Related Works</title>
      <p>
        UML is a notation and as such its specification does not contain any guidelines of
software development process (e.g., which diagrams to use in which order). In fact this
is pointed out as one of the UML weaknesses [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Despite that UML is independent of
particular methods and approaches, most of the UML modeling driven methods use
Use Case driven approach [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. This might be caused by the originators (Booch,
Rumbaugh, and Jacobson) of the UML since they recommend a Use Case driven
process in their book “The Unified Modeling Language User Guide” [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
      </p>
      <p>
        According to [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] a successful software development project can be measured
against the deliverables that satisfy and possibly exceed expectations of customer, the
delivery schedule that has occurred in a timely and economical fashion, and the created
result is resilient to change and adaptation. For software development project to be
successful by means of given measurements, it should satisfy the following two
characteristics:
      </p>
      <p>Solution should have a strong architectural vision, and</p>
      <p>A well-managed development lifecycle should be used.</p>
      <p>
        Above mentioned three statements regarding application of State diagrams raise a
set of ambiguousness and questions. The Use cases cannot be considered as a complete
problem domain representation and a formal connection between problem domain and
the solution [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. The application of Use cases to develop diagrams of other types (such
as State diagram) depends much on the designers’ personal experience and knowledge,
thus leaving the following question open:
      </p>
      <p>How to formally eliminate and overcome the gap between problem domain
model and the design models?, and</p>
      <p>What are “most important objects” and how to formally identify them?
To overcome these issues the TopUML modeling is applied within software
development as described in the next section.</p>
      <p>
        State diagrams within Unified software development process [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] are
developed during elaboration and construction phases. The use of state
diagrams is emphasized for showing system events in use cases, but they may
additionally be applied to any class.
      </p>
      <p>
        Business Object-Oriented Modeling (B.O.O.M.) developed by Podeswa [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
states that at least for every key business object a state diagram should be
created.
      </p>
      <p>
        According to GRASP patterns (General Responsibility Assignment Software
Pattern) introduced by Larman in [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] the State diagrams are used to describe
allowed sequence of external system events that are recognized and handled
by a system in the context of a use case. Additionally state diagrams can be
applied to any class.
      </p>
      <p>
        Conceptual modeling described in [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] states that each entity type may be
associated with zero, one, or more State diagrams. Conceptual modeling can
be viewed as an activity related to capturing the knowledge about the desired
system functionality.
      </p>
      <p>
        State diagrams within Component based development are used to determine
the threads of control within the system [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
      </p>
      <p>The reviewed methods share common viewpoint of the application of State
diagrams within software development process:</p>
      <p>State diagrams are developed by analyzing Use cases (more precisely: the
scenario described by it),
One state diagram per class or object, and
State diagram should be developed for each most important object within the
system.</p>
      <p>This section discusses the current state of the art of UML based software
development approaches by paying attention on one aspect – support of analysis for
object state changes and transitions:
•
•
•
•
•
•
•
•
•
•
•
•</p>
    </sec>
    <sec id="sec-3">
      <title>2. Object State Change and Transition Analysis by using Functional</title>
    </sec>
    <sec id="sec-4">
      <title>Characteristics of Problem Domain</title>
      <p>
        The object state change and transition analysis by using functional characteristics of
problem domain is based on TopUML modeling, which is a model-driven approach
intended to model problem domain and design software systems [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. It combines TFM
and its formalism with elements and diagrams of TopUML. The TFM considers
problem domain information separate from the solution domain information and
holistically represents a complete functionality of the system from the computation
independent viewpoint while TopUML has elements of representing system design at
the platform independent viewpoint and platform specific viewpoint. TFM has strong
mathematical basis and 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 the
topology that satisfies axioms of topological structures and is represented in a form of a
directed graph [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        The application of TopUML modeling ensures proper analysis of system
functioning by identifying and analyzing the functioning cycles. By using TopUML the
information of system functioning from TFM can be transferred to design models thus
allowing marking and evaluating the most important objects and components within
system and to assign proper responsibilities to the right objects in a formal way. The
most important objects are the ones that are participating in the main functioning cycle
of the system. The main functional cycle is a directed closed loop that shows the
functionality of system which is essential to its existence. By interrupting the main
functional cycle the system cannot function or even exist. [
        <xref ref-type="bibr" rid="ref19 ref29">19, 29</xref>
        ]
      </p>
      <p>In the context of state change analysis of objects the following TopUML modeling
activities should be performed:
• TFM development (see Section 2.1 below),
• Domain model analysis and design (see Section 2.2), and
• Object state change and transition analysis (see Section 2.3).</p>
      <sec id="sec-4-1">
        <title>2.1. Topological Functioning Model Development</title>
        <p>The development of TFM consists of four steps. By completing these steps a TFM
representing complete functioning of the problem domain gets developed. Afterwards
the TFM is used as a source for development of other diagrams thus overcoming the
gap between problem and solution domains. The four steps of TFM development are as
follows:</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Step 1: Definition of physical or business functional characteristics which</title>
      <p>
        consists of the following activities [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]:
2.
3.
      </p>
      <p>Definition of objects and their properties from the problem domain
description;
Identification of external systems and partially-dependent systems; and
Definition of functional features using verb analysis in the problem domain
description, i.e., by finding meaningful verbs.</p>
      <p>
        As a result a set of functional features are defined. Each functional feature Xid is a
unique tuple specifying an action in problem and solution domains [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Equation (1)
defines tuple of functional feature together with elements required to transform TFM
into State diagram:
      </p>
      <p>Xid = &lt;Id, A, Op, R, O, Cl, St, PrCond, PostCond, E, Es, S&gt;, where
(1)
• Id – identifier of functional feature,
• A – action of object O,
• Op – operation which will provide functionality defined by action A (can be
acquired when the class diagram is synthesized),
• R – result of action A (optional),
• O – object that receives the result or that is used in action A (for example, a
role, a time period, a catalogue, etc.),
• Cl – class which will represent object O in static viewpoint of system (can be
acquired when the class diagram is synthesized),
• St – new state of object O after performing action A (optional),
• PrCond – is a set of preconditions (optional),
• PostCond – is a set of postconditions (optional),
• E – entity responsible for performing action A,
• Es – indicates if execution of action A could be automated (i.e., performed
without human interaction), and
• S – subordination of functional feature (can be internal or external).</p>
      <p>At the lowest abstraction level one functional feature describes only one atomic
action. Atomic action means that it cannot be further divided into a set of business
actions. The functional features are represented as vertices in a directed graph of TFM.</p>
      <p>Step 2: Introduction of topology Θ (in other words – creation of topological
space) which involves establishing cause-and-effect relations between identified
functional features. Cause-and-effect relations are represented as arcs of a directed
graph that are oriented from a cause vertex to an effect vertex. Topological space
represents the system under consideration together with the environment in which this
system exists.</p>
    </sec>
    <sec id="sec-6">
      <title>Step 3: Separation of TFM from topological space which is done by applying</title>
      <p>
        the closure operation over a set of system’s inner functional features [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]. Initial TFM
can be called “TFM as-is” where “as-is” means that the TFM represents the
functioning of the problem domain without the impact of planned software system.
Construction of initial TFM can be iterative. Iterations are needed if the information
collected for TFM development is incomplete or inconsistent or there have been
introduced changes in system functioning or in software requirements. The TFM
development steps 1 to 3 can be partly automated as shown in [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] where the business
use cases are automatically transformed into TFM.
      </p>
      <p>Step 4: Identification of logical relations between cause-and-effect relationships
consists of two steps since there are two kinds of logical relationships – one kind is
between arcs that are outgoing from functional features and the other kind is between
arcs that are incoming to functional features. Thus the identification of logical relations
consists of two actions:
1. Identification of logical relations between cause-and-effect relationships that
are outgoing from functional feature, and
2. Identification of logical relations between cause-and-effect relationships that
are incoming to functional feature.
Logical relation OR between
incoming arcs of functional
feature 3
Logical relation XOR between
outgoing arcs of functional
feature 8
2
9</p>
      <p>OR
10
XOR
8
3
4
7</p>
      <p>AND</p>
      <p>Each logical relation consists of two or more cause-and-effect relationships and a
relation type. Within TFM can be defined three types of logical relations:
•
•
•</p>
      <p>Conjunction (and),
Disjunction (or), and</p>
      <p>Exclusive disjunction (xor).</p>
      <p>An example of TFM consisting of nine functional features, nine topological (i.e.,
cause-and-effect) relationships and three logical relations is given below in Figure 1.</p>
      <sec id="sec-6-1">
        <title>2.1.1. Mappings between TFM and State Diagram</title>
        <p>
          This section discusses the mappings between elements of TFM and State diagram.
The mappings between standard UML diagrams can be found in various books and
researches, like [
          <xref ref-type="bibr" rid="ref1 ref23 ref27 ref33">1, 23, 27, 33</xref>
          ] and [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ]. Mappings between elements of TFM and State
diagram are described in the form of table (see Table 1) by giving element of TFM and
corresponding element in State diagram. For better understanding in addition a
description of each mapping is given.
Each functional feature specifies an object performing
certain operation. If during execution of this action changes
the state of object performing this action, functional feature
specifies the new state of the object. Object state from
functional feature is transformed into state in State diagram.
        </p>
        <p>When information from input functional feature is
transformed into a state, an initial state is added before this
state.</p>
        <p>When information from output functional feature is
transformed into a state, a final state is added after this state.</p>
        <p>If during execution of action specified by functional feature
is changed the state of object performing this action then
incoming topological relationship defines transition from
previous state to the new state.</p>
        <p>Each functional feature specifies an atomic business action
which later is specified by topological operation in TFM. If
functional feature specifies the new state of object, the
operation is transformed into the event triggering transition
from one state to another.</p>
        <p>If current functional feature specifies the new state of
object, the operation is transformed into the entry effect of
this new state.
TFM element
Preconditions of
functional features
(PrCond and
PostCond (1))
Logical
relationship with
type “and” (and
partially “or”)</p>
        <p>State diagram</p>
        <p>element
Exit effect
Guard condition
Fork and Join
If descendant functional feature specifies the new state of
object, the operation of this descendant functional feature is
transformed into the exit effect of current state.</p>
        <p>If current functional feature specifies the new state of
object, the preconditions of this functional feature are
transformed into the guard conditions.</p>
        <p>A logical relation in TFM give additional information about
execution concurrency of functional features, thus
conjunction (and) within State diagram is represented with
fork and corresponding join. Disjunction (or) indicates of
possible fork and join.</p>
      </sec>
      <sec id="sec-6-2">
        <title>2.2. Domain Model Analysis and Design</title>
        <p>Domain model analysis and design within TopUML modeling is based on the
Topological class diagram and consists of the following two steps:</p>
        <p>
          Step 1: Analysis of objects and their communication is based on the TFM
transformation into Communication diagram (in previous researches the Problem
domain objects graph was use instead of Communication diagram [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]). This
transformation can be done automatically since TFM has all the information that is
necessary for Communication diagram. When transforming TFM into Communication
diagram the following are used:
• Functional features – source for lifeline identification and message sending
from object to object,
• Topological relationships – determines the message sender and receiver as
well as the message sending sequence, and
• Logical relations – shows the message sending concurrency.
        </p>
        <p>In order to obtain a Communication diagram, it is necessary to check if each
functional feature of the TFM reflects only one type of object. If some of functional
feature reflects more than one type of object then it is needed to decompose it to the
level where one functional feature uses only one type of objects. If TFM has been
successfully checked it can be transformed into Communication diagram. The first step
in transformation is to merge functional features with objects of the same type in one
lifeline (the lifeline represents the class attribute of the functional feature). While
merging functional features into lifelines the relationships with other lifelines should be
retained (if there is more than one topological relationship then only one link is added
between lifelines). Actors to Communication diagram are added from the input
functional features.</p>
        <p>For a better understanding of TFM to Communication diagram transformation, a
small fragment of TFM consisting of two functional features A and B is used (see
Figure 2), where A is an input functional feature of TFM and dashed arrows show
mappings between elements of TFM and Communication diagram.
Fragment
of TFM</p>
        <p>Fragment of
Communication
diagram</p>
        <p>Step 2: Domain model development by means of Topological class diagram
consists of four activities:
1. Adding classes and operations,
2. Adding topological relationships between classes,
3. Identifying attributes, and
4. Refining initial Topological class diagram.</p>
        <p>At first the Communication diagram is used for adding classes and operations to
the Topological class diagram – lifelines are transformed into classes and messages
into operations. The next step is adding topological relationships between classes.
Since the notation of Topological class diagram allows variations of topological
relationship graphical representation, it is advised to draw only one directed arrow in
the same direction between classes (the arrow will show the cause and the effect
operations).</p>
        <p>
          After the classes and topological relationships between them have been established
the next step is identification of attributes. This can be achieved by taking into
consideration attributes of the object represented by functional feature. If the functional
feature is well specified the class attribute of it is determined. If the class attribute is
not determined, it can be specified in several ways (e.g. by analyzing functioning
description of the system and searching nouns that represents attributes of the object
[
          <xref ref-type="bibr" rid="ref35">35</xref>
          ], performing expert interviews [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], or by using ontology [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ]).
        </p>
        <p>
          By transforming Communication diagram an initial Topological class diagram is
obtained (with attributes, operations, and topological relations between classes). A
topological relation shows the control flow within the system. If static relations should
be included (such as associations, generalization, etc.) then initial topological class
diagram should be refined [
          <xref ref-type="bibr" rid="ref37">37</xref>
          ].
        </p>
      </sec>
      <sec id="sec-6-3">
        <title>2.3. Object State Change and Transition Analysis</title>
        <p>Object state change and transition analysis is based on the TFM transformation into a
set of State diagrams (see Figure 3). The input of this activity is refined TFM and
classes (either from Topological class diagram or lifelines from Communication
diagram) and the output of this activity is one State diagram for each class.</p>
        <p>
          Each functional feature specifies an object performing certain action. The count of
obtained State diagrams is denoted by count of distinct objects specified by functional
features. It is advised to analyze state changes of complex or most important objects in
the system [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. The most important objects are denoted by TFM – the functional
features that are included into main functional cycle denote them, thus the
identification of most important objects are done in a formal way.
        </p>
        <p>The first action is to scale down TFM which is performed by removing functional
features which does not represent the object under consideration but in the same time
retaining cause-and-effect relations. For example, assume that TFM consists of three
functional features A, B, and C and are in the following causal chain: A→ B→C. The A
and C represent the same object while B represents another object. The resulting
(scaled down) TFM is as follows: A→C.</p>
        <p>States for each class are obtained from the functional features of refined TFM
(functional feature has an attribute that defines the new state of the object). If the
execution of functional feature involves the change of the corresponding object’s state,
then the state attribute has value, otherwise the value is not set. State transitions are
obtained by transforming cause-and-effect relationship between functional features.</p>
        <p>The special states (initial state and final state) are added to the obtained State
diagram as follows:
• The initial state is added before the states that are obtained from the functional
features which are the inputs of the downscaled TFM (the ones which has no
predecessors), and
• The final state is added after the states that are obtained from the functional
features which are the outputs of the downscaled TFM (the ones which has no
descendants).</p>
        <p>The example of transforming generic example of TFM into State diagram is given
in Figure 4.</p>
        <p>Fragment
of TFM
Fragment of
State diagram</p>
        <p>St = «New»
O = «CardRequest»
State specification:
Name = A.St
Entry effect = A.Op
Exit effect = B.Op</p>
        <p>A
New</p>
        <p>St = «Completed»</p>
        <p>O = «CardRequest»
C</p>
        <p>Completed
Transition specification:
Source state = A.St
Event trigger = B.Op
Guard condition = B.PrCond
Target state = B.St</p>
        <p>State specification:
Name = B.St
Entry effect = B.Op
Exit effect = Ø</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>3. Example of Object State Change and Transition Analysis</title>
      <p>
        Example of object state change and transition analysis by using functional
characteristics of problem domain is based on a case study in which TFM is developed
for enterprise data synchronization system. The enterprise data synchronization system
is developed by applying TopUML modeling and involves creation of TFM, Use case
diagram, Problem domain objects graph (applied instead of Communication diagram),
Topological class diagrams, and Sequence diagrams [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
      <p>Within the case study have been defined 30 functional features by analyzing
functioning of enterprise data synchronization system. Part of defined functional
features is given in Table 2 where are included features that specify the new state for
object named “Scheduler”. After definition of functional features the topology Θ
(cause-and-effect relationships) is identified between those functional features thus
creating topological space. In order to get the TFM the closuring operation is applied
over the set of internal system functional features. The developed TFM after applying
closuring operation is as follows: X={2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19,
20, 22, 24, 25, 26, 27, 28, 29}. The resulting graph is given in Figure 5 (a) which shows
functional features (vertices), cause-and-effect relationships (arcs between vertices).</p>
      <p>The example of object state change analysis in the context of enterprise data
synchronization system development case study is performed for the object name
“Scheduler”. The functional features specification in Table 2 shows that this object in
total has five different states: 1) Reading data, 2) Checking data, 3) Importing, 4)
Logging status, and 5) Completing import. The resulting State diagram is given in
Figure 5 (b).</p>
      <p>Precondition (PrCond)
If import should be
performed from source
data base
If data structure is
according to specification
If import file structure is
according to specification
If data
completed
import
is</p>
      <p>Scheduler
Object (O)
Scheduler</p>
      <p>New state (St)</p>
      <p>Reading data
Scheduler
Scheduler
Scheduler
Scheduler
Scheduler
Scheduler
Scheduler
Scheduler</p>
      <p>Reading data</p>
    </sec>
    <sec id="sec-8">
      <title>4. Conclusions</title>
      <p>The main goal of this research is to do formal development of State diagram by
analyzing functional characteristics of a problem domain. The result of research is
method for transforming TFM into State diagram thus eliminating the gap between
problem domain model and software design (solution) model.</p>
      <p>UML modeling driven methods (like Unified process, B.O.O.M. and patterns
based software development) manifests that the State diagrams are developed by
analyzing Use cases (more precisely: the scenario described by it), one state diagram
per class or object. In fact they say that State diagram should be developed for each
most important object within the system. These statements raise a set of ambiguousness
and questions. The Use cases cannot be considered as a complete problem domain
representation and a formal connection between problem domain and the proposed
solution. The application of Use cases to develop diagrams of other types (such as State
diagram) depends much on the designers’ personal experience and knowledge.</p>
      <p>The elaborated TopUML modeling (including the State diagram development)
proposes a way on how to formally overcome the gap between problem domain and
solution domain – the first one is represented by TFM which shows the complete
functioning of a problem domain and the latter one is obtained by transforming TFM of
a problem domain. Moreover the TopUML enables formal identification of the most
important objects and classes within system – they are denoted by TFM: functional
features that are included into main functional cycle specify these objects and classes.
In contrast, the reviewed UML modeling driven methods relies that the designers’
personal experience and knowledge is sufficient to identify most important objects
within system. In addition the example described in paper shows State diagram
development for the case study in which enterprise data synchronization system has
been developed by using TopUML modeling.</p>
      <p>This research shows that by adding additional efforts at the very beginning of
software development life cycle it is possible to create a model that contains sufficient
and accurate information of problem domain. By “sufficient” meaning that this model
can be transformed into other diagrams without major re-analysis of problem domain
and by “accurate” meaning that the model precisely reflects the functioning and
structure of the system.</p>
    </sec>
    <sec id="sec-9">
      <title>Acknowledgement</title>
      <p>This work has been supported by the European Social Fund within the project “Support
for the implementation of doctoral studies at Riga Technical University”.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>H.</given-names>
            <surname>Podeswa</surname>
          </string-name>
          ,
          <article-title>UML for the IT Business Analyst</article-title>
          . 2nd ed. Course
          <string-name>
            <surname>Technology</surname>
            <given-names>PTR</given-names>
          </string-name>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K.</given-names>
            <surname>Scott</surname>
          </string-name>
          , The Unified Process Explained. Addison-Wesley, USA,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Unified</given-names>
            <surname>Modeling Language</surname>
          </string-name>
          <article-title>Superstructure version 2.3</article-title>
          . OMG, May
          <year>2010</year>
          . Available from: http://www.omg.org/spec/UML/2.3/Superstructure/PDF/.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C.</given-names>
            <surname>Jones</surname>
          </string-name>
          , Positive and negative innovations in Software Engineering,
          <source>International Journal of Software Science and Computational Intelligence</source>
          <volume>1</volume>
          (
          <issue>2</issue>
          ) (
          <year>2009</year>
          ),
          <fpage>20</fpage>
          -
          <lpage>30</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Asnina</surname>
          </string-name>
          ,
          <article-title>A business model to make software development less intuitive</article-title>
          .
          <source>In: Proceedings of the 2008 International Conference on Innovation in Software Engineering</source>
          , Vienna, Austria. IEEE Computer
          <string-name>
            <surname>Society</surname>
            <given-names>CPS</given-names>
          </string-name>
          , Los Alamitos, USA,
          <year>2008</year>
          ,
          <fpage>1240</fpage>
          -
          <lpage>1246</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          ,
          <article-title>Formal computation independent model within the MDA life cycle</article-title>
          ,
          <source>International Transactions on Systems Science and Applications</source>
          <volume>1</volume>
          (
          <issue>2</issue>
          ) (
          <year>2006</year>
          ),
          <fpage>159</fpage>
          -
          <lpage>166</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Asnina</surname>
          </string-name>
          ,
          <article-title>Topological modeling for model-driven domain analysis and software development: functions and architectures</article-title>
          .
          <source>In: Model-Driven Domain Analysis and Software Development: Architectures and Functions</source>
          , IGI Global, Hershey - New York,
          <year>2011</year>
          ,
          <fpage>15</fpage>
          -
          <lpage>39</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Asnina</surname>
          </string-name>
          ,
          <article-title>Is modeling a treatment for the weakness of Software Engineering? In: ModelDriven Domain Analysis and Software Development: Architectures and Functions</article-title>
          , IGI Global, Hershey - New York,
          <year>2011</year>
          ,
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>Miller</surname>
          </string-name>
          and
          <string-name>
            <surname>J</surname>
          </string-name>
          . Mukerji, editors,
          <source>MDA Guide Version 1.0.1. OMG</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          , E. Asnina,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Grave</surname>
          </string-name>
          ,
          <article-title>MDA oriented computation independent modeling of the problem domain</article-title>
          .
          <source>In: Proceedings of the 2nd International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE</source>
          <year>2007</year>
          ), Barcelona, Spain,
          <year>2007</year>
          ,
          <fpage>66</fpage>
          -
          <lpage>71</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>W.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , H. Mei,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and J</given-names>
            .
            <surname>Yang</surname>
          </string-name>
          ,
          <article-title>Transformation from CIM to PIM: A feature-oriented component-based approach</article-title>
          .
          <source>In: Model Driven Engineering Languages and Systems, Lecture Notes in Computer Science</source>
          <volume>3713</volume>
          (
          <year>2005</year>
          ), Springer-Verlag, Berlin,
          <fpage>248</fpage>
          -
          <lpage>263</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>T.</given-names>
            <surname>Yue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Briand</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Labiche</surname>
          </string-name>
          ,
          <article-title>A use case modeling approach to facilitate the transition towards analysis models: concepts and empirical evaluation</article-title>
          .
          <source>In: Model Driven Engineering Languages &amp; Systems, Notes in Computer Science</source>
          <volume>5795</volume>
          (
          <year>2009</year>
          ), Springer-Verlag, Heidelberg,
          <fpage>484</fpage>
          -
          <lpage>498</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>E.</given-names>
            <surname>Letier</surname>
          </string-name>
          and
          <string-name>
            <surname>A. van Lamsweerde</surname>
          </string-name>
          ,
          <article-title>Deriving Operational Software Specifications from System Goals</article-title>
          .
          <source>In: Proceedings of the 10th ACM SIGSOFT Symposium on Foundations of Software Engineering</source>
          , ACM, New York,
          <year>2002</year>
          ,
          <fpage>119</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>I.</given-names>
            <surname>Diaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Pastor</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Matteo</surname>
          </string-name>
          ,
          <article-title>Modeling interactions using role-driven patterns</article-title>
          .
          <source>In: Proceedings of 13th IEEE International Conference on Requirements Engineering (RE</source>
          <year>2005</year>
          ), Paris, France. IEEE Computer Society,
          <year>2005</year>
          ,
          <fpage>209</fpage>
          -
          <lpage>220</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>E.</given-names>
            <surname>Insfran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Pastor</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Wieringa</surname>
          </string-name>
          ,
          <article-title>Requirements engineering-based conceptual modeling</article-title>
          ,
          <source>Requirements Engineering</source>
          <volume>7</volume>
          (
          <issue>2</issue>
          ) (
          <year>2002</year>
          ),
          <fpage>61</fpage>
          -
          <lpage>72</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>U.</given-names>
            <surname>Donins</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          ,
          <article-title>Topological modeling for enterprise data synchronization system: a case study of topological model-driven software development</article-title>
          .
          <source>In: Proceedings of the 13th International Conference on Enterprise Information Systems (ICEIS</source>
          <year>2011</year>
          )
          <volume>3</volume>
          (
          <issue>2011</issue>
          ), SciTePress,
          <fpage>87</fpage>
          -
          <lpage>96</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>U.</given-names>
            <surname>Donins</surname>
          </string-name>
          ,
          <article-title>Software development with the emphasis on topology</article-title>
          .
          <source>In: Advances in Databases and Information Systems, Notes in Computer Science</source>
          <volume>5968</volume>
          (
          <year>2010</year>
          ), Springer-Verlag, Berlin,
          <fpage>220</fpage>
          -
          <lpage>228</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Asnina</surname>
          </string-name>
          ,
          <article-title>Model-Driven Domain Analysis and Software Development: Architectures and Functions</article-title>
          , IGI Global, Hershey-New York, USA,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          and
          <string-name>
            <given-names>U.</given-names>
            <surname>Donins</surname>
          </string-name>
          ,
          <article-title>Platform independent model development by means of Topological Class Diagrams</article-title>
          . In:
          <string-name>
            <surname>Model-Driven Architecture</surname>
            and
            <given-names>Modeling</given-names>
          </string-name>
          <string-name>
            <surname>Theory-Driven</surname>
            <given-names>Development</given-names>
          </string-name>
          , 2nd
          <source>international MDA &amp; MTDD workshop in conjunction with ENASE</source>
          <year>2010</year>
          , Athens, Greece, SciTePress, Portugal,
          <year>2010</year>
          ,
          <fpage>13</fpage>
          -
          <lpage>22</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Asnina</surname>
          </string-name>
          ,
          <article-title>Enterprise modeling for information system development within MDA</article-title>
          .
          <source>In: Proceedings of the 41st Annual Hawaii International Conference on System Sciences (HICSS</source>
          <year>2008</year>
          ), USA,
          <year>2008</year>
          ,
          <volume>490</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kent</surname>
          </string-name>
          ,
          <article-title>The Unified Modeling Language</article-title>
          . In:
          <article-title>Formal Methods for Distributed Processing: A Survey of Object-Oriented Approaches, 1st edition</article-title>
          (
          <year>October 22</year>
          ,
          <year>2001</year>
          ), Cambridge University Press,
          <fpage>126</fpage>
          -
          <lpage>151</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>B.</given-names>
            <surname>Dobing</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Parsons</surname>
          </string-name>
          ,
          <article-title>Dimensions of UML diagram use: practitioner survey and research agenda</article-title>
          .
          <source>In: Principle Advancements in Database Management Technologies: New Applications and Frameworks, IGI Global</source>
          ,
          <year>2010</year>
          ,
          <fpage>271</fpage>
          -
          <lpage>290</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>G.</given-names>
            <surname>Booch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Rumbaugh</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Jacobson</surname>
          </string-name>
          ,
          <article-title>The Unified Modeling Language User Guide</article-title>
          . 2nd ed.
          <source>Addison-Wesley</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>G.</given-names>
            <surname>Booch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Maksimchuk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Engel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Young</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Conallen</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          K. Houston,
          <article-title>Object-Oriented Analysis and Design with Applications</article-title>
          . 3rd ed.
          <source>Addison-Wesley</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>C.</given-names>
            <surname>Larman</surname>
          </string-name>
          ,
          <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</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>A.</given-names>
            <surname>Olive</surname>
          </string-name>
          ,
          <source>Conceptual Modeling of Information Systems</source>
          , Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>P.</given-names>
            <surname>Stevens</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Pooley</surname>
          </string-name>
          ,
          <string-name>
            <surname>Using</surname>
            <given-names>UML</given-names>
          </string-name>
          :
          <article-title>Software Engineering with Objects and Components</article-title>
          . 2nd ed. Addison-Wesley,
          <article-title>(</article-title>
          <year>2005</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Asnina</surname>
          </string-name>
          ,
          <article-title>Derivation of use cases from the topological computation independent business model</article-title>
          .
          <source>In: Model-Driven Domain Analysis and Software Development: Architectures and Functions</source>
          , IGI Global, Hershey - New York,
          <year>2011</year>
          ,
          <fpage>65</fpage>
          -
          <lpage>89</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          , E. Asnina,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Grave</surname>
          </string-name>
          ,
          <article-title>Formal problem domain modeling within MDA</article-title>
          . In: Evaluation of Novel Approaches to Software Engineering.
          <source>Communications in Computer and Information Science</source>
          <volume>22</volume>
          (
          <year>2008</year>
          ), Springer-Verlag, Berlin,
          <fpage>387</fpage>
          -
          <lpage>398</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          , E. Asnina,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Grave</surname>
          </string-name>
          ,
          <article-title>Formal computation independent model of the problem domain within the MDA</article-title>
          .
          <source>In: Proceedings of the 10th International Conference on Information Systems and Formal Models (ISIM'07)</source>
          , Silesian University in Opava, Czech Republic,
          <year>2007</year>
          ,
          <fpage>47</fpage>
          -
          <lpage>54</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>E.</given-names>
            <surname>Asnina</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          ,
          <article-title>Topological Functioning Model as a CIM-business model</article-title>
          .
          <source>In: Model-Driven Domain Analysis and Software Development: Architectures and Functions</source>
          , IGI Global, Hershey - New York,
          <year>2011</year>
          ,
          <fpage>40</fpage>
          -
          <lpage>64</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Šlihte</surname>
          </string-name>
          <article-title>Transforming textual use cases to a computation independent model</article-title>
          .
          <source>In: Proceedings of the 2nd International Workshop on Model-Driven Architecture and Modeling TheoryDriven Development</source>
          , Athens, Greece,
          <source>July 22-24</source>
          ,
          <year>2010</year>
          ,
          <fpage>33</fpage>
          -
          <lpage>42</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>O.</given-names>
            <surname>Nikiforova</surname>
          </string-name>
          ,
          <article-title>Object interaction as a central component of object-oriented system analysis</article-title>
          .
          <source>In: Proceedings of the 2nd International Workshop on Model-Driven Architecture and Modeling TheoryDriven Development</source>
          , Greece, Athens, July 22-
          <issue>24</issue>
          ,
          <year>2010</year>
          ,
          <fpage>3</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>R.</given-names>
            <surname>Van Der Straeten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Simmonds</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Jonckers</surname>
          </string-name>
          ,
          <article-title>Using description logic to maintain consistency between UML models</article-title>
          .
          <source>In: UML 2003 - The Unified Modeling Language, Modeling Languages and Applications. Lecture Notes in Computer Science</source>
          <volume>2863</volume>
          (
          <year>2003</year>
          ), Springer-Verlag, Berlin,
          <fpage>326</fpage>
          -
          <lpage>340</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          and
          <string-name>
            <given-names>U.</given-names>
            <surname>Donins</surname>
          </string-name>
          ,
          <article-title>Formalization of the UML class diagrams</article-title>
          . In: Evaluation of Novel Approaches to Software Engineering.
          <source>Communications in Computer and Information Science</source>
          <volume>69</volume>
          (
          <year>2010</year>
          ), SpringerVerlag, Berlin,
          <fpage>180</fpage>
          -
          <lpage>192</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>X.</given-names>
            <surname>Li</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Parsons</surname>
          </string-name>
          ,
          <article-title>Ontological semantics for the use of UML in conceptual modeling</article-title>
          . In: Challenges in Conceptual Modelling. Tutorials, posters,
          <source>panels and industrial contributions at the 26th International Conference on Conceptual Modeling, Auckland, New Zealand, November 5-9</source>
          ,
          <year>2007</year>
          ,
          <fpage>179</fpage>
          -
          <lpage>184</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>U.</given-names>
            <surname>Donins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Osis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Šlihte</surname>
          </string-name>
          , E. Asnina, and
          <string-name>
            <given-names>B.</given-names>
            <surname>Gulbis</surname>
          </string-name>
          ,
          <article-title>Towards the refinement of topological class diagram as a platform independent model</article-title>
          .
          <source>In: Proceedings of the 3rd International Workshop on Model-Driven Architecture and Modeling-Driven Software Development, China</source>
          , Beijing, June 8-11,
          <year>2011</year>
          ,
          <fpage>79</fpage>
          -
          <lpage>88</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>