<!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>A Reconciliation Framework to Support Cooperative Work with DSM</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Catalin Constantin</string-name>
          <email>catalin.constantin@fundp.ac.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vincent Englebert</string-name>
          <email>vincent.englebert@fundp.ac.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Philippe Thiran</string-name>
          <email>philippe.thiran@fundp.ac.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>PReCISE Research Centre, University of Namur Rue Grandgagnage 21</institution>
          ,
          <addr-line>B-5000 Namur</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2009</year>
      </pub-date>
      <abstract>
        <p>Despite the fact that DSM tools become very powerful and more frequently used, the support for their cooperation has not reached its full strength and the demand for model management is growing. In cooperative work, the decision agents are semi-autonomous and therefore a solution for reconciliating DSM after a concurrent evolution is needed. Many GPML environments are proposed by the CSCW community but they do not usually provide reconciliation, merging or versioning functionalities after asynchronous evolutions. In this paper we propose a reconciliation framework for cooperative work with a DSM language. The main goal is to support the e ciency of software developers and the reuse of software artifacts.</p>
      </abstract>
      <kwd-group>
        <kwd>CSCW</kwd>
        <kwd>DSM</kwd>
        <kwd>metaCASE</kwd>
        <kwd>model versioning</kwd>
        <kwd>model reconciliation and merging</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        and al. [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] argue that the group of people concerned by a cooperative task can
be large, transient, not stable or even non determinable. They also show that
the pattern of interactions can change dynamically and that agents are
semiautonomous in their partial work. There is thus a space for a weakly coupled
mode of cooperation where users would have the control of the shared data in
an asynchronous way. They could even distribute them without the control of
an omniscient central authority. This mode should allow users to have the
control of their data, to work in isolation of any other user or a central authority.
Implementing the exchange of method chunks [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] could serve as a basis for
this kind of collaborative work. In this paper, we consider a chunk as a
cohesive, autonomous and interoperable model. Standard formats like CDIF [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
GXL [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], PNML [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], or XMI [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] were designed to facilitate the exchange of
models among users. Unfortunately, if they de ne quite well the structure of
data, they disregard their semantics. This has jeopardized the interoperability
of CASE tools. But the exchange of models between users of the same family of
CASE tools is still possible.
      </p>
      <p>We propose to support a weakly coupled cooperation work for DSM users.
This mode of cooperation implies dealing with its speci c features:
1. Users store models in local repositories;
2. Models can be exchanged between users for long periods of time;
3. Users can be distributed in the world and belong to heterogeneous pro les;
4. Users can work concurrently on models in asynchronous way;
5. Users can delegate their models ownership to other users;
6. When a user owns several models that had a common ancestor model in
the past (i.e. they are the result of concurrent modi cations applied on a
common model the ancestor), an oracle should be able, if possible, to
reconcile the models and to merge them into one unique model by preserving
the consistency.</p>
      <p>
        Dealing with cooperative issues for DSM tools entails new problems. As
DSMs are de ned to match as close as possible the application domain, DSMs
have to follow its evolution and the new requirements of the stakeholders [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
MetaCASE tools must then be able to support the evolution of DSM languages
during all the project life-cycle. From this observation and from hypothesis 2,4
and 5, we deduce that not only models evolve concurrently, but also their
metamodels. Hence, the oracle should be able to reconcile both models and
metamodels.
      </p>
      <p>In this paper, we argue that a weakly coupled cooperative work is possible
for DSM tool users, even if we take into consideration the natural evolution of
the language (its metamodel). We present in the next sections the principles
of a framework that makes possible the de nition of a reconciliation oracle for
both models and their metamodels, and that meets the hypothesis of the weakly
coupled cooperation model.</p>
      <p>The paper is structured as follows: Section 2 gives a small summary of the
related work on reconciliation after cooperative work, Section 3 illustrates the
issues of cooperative work for DSM tools with an example, Section 4 introduces
the data description language that de nes the methods data (e.g., models,
metamodels), and the reconciliation framework is introduced in Section 5. Section 6
presents the bene ts of our framework and Section 7 concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Many GPML environments are proposed by the Computer Supported
Cooperative Work (CSCW) community but they do not usually provide reconciliation,
merging or versioning functionalities for asynchronous evolution. For instance,
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] proposes a cooperative tool supporting distributed edition of UML models
but in synchronous mode only.
      </p>
      <p>
        Regarding DSM, to the best of our knowledge, few approaches have been
proposed so far. MetaEdit+ uses a Client/Server approach with a smart locking
strategy to share data between users. It also o ers import-export facilities for
the asynchronous modelling development. This can update the source
repository, so that imports into target repositories update the source models there
rather than creating new ones. The tool is able to support asynchronous
cooperative work with its model patches for common scenarios that are propagated
to all users. It allows the users to reference, reuse or create their
representation of these core models. Eclipse Modelling Framework Project (EMF) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is a
modelling framework and a code generation facility for building tools and other
applications based on a structured data model. EMF provides resources for
developing and implementing UML models using semantic and notational data
that is implemented in terms of metamodels de ned in EMF. The UML models
are partitioned to facilitate a concurrent development and to reduce the
likelihood of a non trivial merging. Every change made at the model level generates
multiple changes at the metamodel level. The delta (di erence) engine is
implemented at the EMF level and generates the di erences related to both EMF and
UML models.
      </p>
      <p>
        The approach in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] proposes the use of a versioning system between method
chunks. It does not refer to the support of cooperative working and versioning
and it is mainly used to solve consistency problems between models and
metamodels when a tool allows their independent evolution. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] describes a proposal
for the consistency-receiving merge of model versions, a formalism is introduced
to describe the evolution of model revisions which includes a semantic de
nition of optimistic merge procedure. It however refers the metamodels as static
artifacts; only the models are dynamic assets.
      </p>
      <p>
        Computer Aided Design (CAD) is also a well established eld for CSCW
as a domain of inquiry. Objects can be described from di erent viewpoints,
representing results of either synchronous or asynchronous cooperative work.
Maintaining the relationships amongst these models has been discussed in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
but CAD tools generally suppose that objects are organized hierarchically and,
hence, aggregates are necessarily disjoint [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This last hypothesis is too strong
in software engineering.
      </p>
      <p>one metaclass
one metaproperty</p>
      <p>one entity
and its name</p>
      <p>metaclass
mcname:String</p>
      <p>instanceof
The cooperation scenario can be illustrated by a simple example. A user Alice
creates an Entity-Relationship model M along with its metamodel M M
(Figure 1). M and M M are then sent to Bob to be re ned. Bob has then to import
model M and its metamodel M M while preserving its local knowledge to avoid
any clash between Alice’s concepts and his own. Once the data is imported, he
extends M M by adding a persistent eld to the entity metaclass, and
valuates that eld as SQL for thecustomer entity. He then renames this entity as
Customer (with an uppercase), and he nally changes the name of theentity
metaclass to EntityType . The result(M1; M M1) is sent back to Alice and Bob
deletes this information from his repository. The problem consists in merging
M with M1 along with the merging of M M with M M1. If in the same time,
Alice modi es M (i.e. M2) or M M (i.e. M M2), the problem becomes more
complex: the artifacts evolve independently and the reconciliation of M 1=M 2 and
M M 1=M M 2 may require to solve inconsistencies, redundancies, semantic
mismatches, etc. For instance, Alice can change the name of the customer entity
in M from customer to CUSTOMER . This scenario is illustrated in Figure
2. Of course, this scenario must be generalized since models can be the object
of much more complex work ows. For the sake of simplicity, only the simple
scenario is discussed in this paper.
4</p>
    </sec>
    <sec id="sec-3">
      <title>The MetaL Language</title>
      <p>This research is carried out in the context of the MetaDone project that aims to
develop a metaCASE tool whose functionalities are driven by rst-class models.
This goal leads us to adopt a fully rei ed and bootstrapped repository with a
speci c meta data description language: MetaL. Contrary to EMF or UML, there
is no distinction between models and metamodels, items can have several types</p>
      <p>M2/MM2</p>
      <p>M1/MM1</p>
      <p>
        M/MM
Fig. 2. Cooperative Scenario. This gure shows the exchange of information and the
successive evolutions of the (meta)models. Modi cations are indicated with bold letters.
Cross symbols denote import and reconciliation processes. The upper cross consists
mainly in importing the chunk by preserving the local data. The bottom cross requires
a more complex reconciliation process.
(e.g. both an EClass and a EAttribute), items can belong to distinct abstraction
levels at the same time. The bene ts of this approach are discussed in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The
next paragraph gives details of the main features of MetaL.
      </p>
      <p>
        Data is modelled as a set of items D de ned as the non-disjoined union of two
sets O and P . Elements of O denote objects, while those of P denote properties
characterized by a domain and a range that are objects themselves. A subset of O
(OT ) denotes object types and a many-to-many relationship iof exists between
O and OT . In the same way, a subset of P (P T ) represents property types and
a one-to-many relationship pof is de ned between P and P T a property has
exactly one property type. For the sake of simplicity, we will not describe the
specialization relationship, and the constraints of this language. A subset OVS of
O will hold string values. Let’s just make clear that cycles are allowed in the iof
and pof graphs and items can play several roles (object or/and property) at the
same time, and can lose or gain roles. A function name = OT [ P T ! String
maps types to unique identi ers. This language is presented in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>String:type</p>
      <p>Figure 3 illustrates the graphical syntax of the MetaL language and how
the DSM language from Figure 1 is described with MetaL. We will reuse this
example in the rest of this paper. iof and pof relationships are not represented
graphically, but are explicit in our approach.</p>
      <p>
        MetaL describes the rst layer of our metaCASE architecture, a second
layer (MetaL2) exists with more abstract concepts (metaobjects,
metaproperties, metaroles, metamodels, identi ers, cardinalities, . . . ) in the same way that
OWL is de ned on top of RDF [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Figure 4 illustrates how a DSL statechart
can be modelled and used with this language only an excerpt of MetaL 2 is
presented. The main important aspect is that all the abstraction levels (e.g.,
models, metamodels, metametamodels) are stored together by keeping an
explicit relationship between instances and types . MetaL is de ned to overcome
the usual limitations of current DSM languages: limited number of abstraction
levels, forbidden relationships between elements of distinct abstraction levels,
and management of all the abstraction levels in a homogeneous way. Figure 5
illustrates the use of this modelling language in the context of the MetaDone
metaCASE environment.
      </p>
      <p>name:name</p>
      <p>MR:MO,MR
Me ta Me ta Mode l Le ve l</p>
      <p>T:T
«»,String:String,T</p>
      <p>MP:MP,MO
We rst formally describe the hypothesis of the world in which users play. We
note U the set of all the possible users who can play some roles in a cooperative
work. They can join or leave the game (i.e. cooperative work) whenever they
want. Let’s call R the databases/repositories users work with. The relation use µ
U £ R denotes the use of a database by a user; given that databases are not
shared between users. Each database is lled to store a MetaL speci cation (i.e.
a set D). We note data : R ! T £ L this process, where T is an in nite set
of names and L denotes all the sets Ds (see Section 4) that ful l the axioms
of the MetaL language. At this time, the name in T denotes the repository
from where data is coming from. The initial situation of our scenario would be
described as use = f(A; RA); (B; RB)g where Alice (A) and Bob (B) are resp.
using repositories RA and RB. They are populated as: data(RA) = frAg £ DA,
data(RB ) = frB g £ DB where DA;B 2 L.</p>
      <p>The cooperation scenario is implemented by the exchange of a repository
chunk from A to B. This chunk is a subset S of data(RA) that contains
information relevant for the user and that meets the axioms of MetaL2: it is cohesive and
autonomous. The chunk is built by a xpoint process that improves the chunk
at each step in order to meet the axioms. This process is explained hereafter:
Let’s rst de ne some preliminary functions: function ° : 2D ! B returns
true if the information is consistent wrt. the MetaL axioms. Function
± : 2D ! 2D computes which elements from D are lacking in order
to make the argument more consistent, indeed, the addition of new
elements can in turn infringe other axioms. The following properties are
satis ed: P1 ´ °(D) = true, and P2 ´ 8X µ D : ±(X) µ D. If C:
C µ D denotes the elements of interest to user A, then the chunk can
be computed as:</p>
      <p>while not °(C) do C : = C [ ±(C)
This computes the smallest consistent set S containing C. The ±(X)
function is built from rules such as: if 9x 2 X \ O; 9ot 2 OT n X :
iof (o; ot); and features of ot are used in X, then ±(X) must return ot.
From properties P1 and P2, we see that a) such a set exists, b) that the
process terminates, and c) that the result is contained in D.</p>
      <p>When Bob receives S, the problem consists in adding S to data(RB ). But
this last process must make sure to preserve the distinct identity of the data
that would be speci c to A and to merge the common data between A and B
for instance, elementary types such as object types String, metaclass, etc.
We suppose that a function IR : D 7! Z maps every item to a unique negative
number if this item is a common knowledge. Otherwise it maps every item to
a unique positive number. Of course, there are as many functions IR as there
are repositories3. If we keep the information about the original repository with
every data, we can now merge S and data(RB ) as:</p>
      <p>data(RB) [ ©(r; d) 2 S j IRA (d) ¸ 0ª</p>
      <p>An action is an elementary access to the repository (create, read, update,
delete) with additional information. Let’s name Action the set of actions that
can be performed on one element.</p>
      <p>
        Bob can now modify his copy of the chunk: create/read/update/delete (CRUD)
data at the model and metamodel levels. Once this job is nished, the modi ed
2 i.e. fdj9(r; d) 2 Sg 2 L.
3 These functions can be de ned as an increment, and then, several repositories could
hold the same data while building distinct functions I.
chunk can be sent back to Alice. As in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], we suppose that all the CRUD
actions on the repository are logged and stored in a journal. All events related
to an item are listed and the sequence of modi cations can be reiterated. This
enables the re-creation of models at di erent stages of their development. It also
contains important milestones such as sending and receiving of method chunks
or even free users annotations. When receiving the journal JB from Bob, entries
from the local journal and JB can be compared to decide if JB can be replayed
while preserving the actions operated by Alice. This decision could be de ned in
order to preserve a strong serialization between the transactions [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], but weaker
de nitions could be considered depending on the granularity of the data to allow
an interleaved execution for instance. The consistency rules should be checked at
the end of this process. Since the concepts of instances and types are considered
as rst-class data, the merging of both journals according to the serialization
rules concerns both models and metamodels at the same time.
      </p>
      <p>
        Another issue is the consistency of the repository that may occur when a
part is replicated and maybe modifed by concurrent users. The journals can
help to detect such problems and even to solve them sometimes. But this action
unfortunately occur a-posteriori and this may be too late. A weight-watchers
technique [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] can be used to detect such problems a-priori. This consists in
marking each data with a weight (say 256). This weight would next be distributed
(e.g. division by 2) between the users if they share data. When a reconciliation
happens, the data recovers its weight if the sender abandons his/her ownership.
The use of shared data (i.e. its weight&lt;256) can now be detected, and
computations that would have side e ects outside the method chunk can be detected
and executed at his/her own risks. Figure 7 demonstrates this principle where
at some time t, Alice and Bob share the same chunk. Every data of this chunk is
then weighted 2526 , if Alice decides in meanwhile to apply a transformation from
that chunk to a relational model, then the output of this transformation can be
invalidated later if the reconciliation process a ects the chunk.
      </p>
      <p>String:type
or a thick line. This scenario doesn’t illustrate items deletion.
r
A
r
B
r
A
r
B
r</p>
      <p>B</p>
      <p>
        trsf_ER2SQL
Our proposition allows the exchange of method chunks that consists in both
models and metamodels data. The reconciliation of both models and metamodels
may require to solve inconsistencies, redundancies and semantic mismatches. By
preserving in a unique language the relationships between the instances and
their types, we can provide a reconciliation process that encompasses several
abstraction levels at the same time. To the best of our knowledge, [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] is the
most complete work in that domain, but by generating explicitly a database
schema from the metamodel, it breaks this homogeneity. Moreover, by avoiding
the use of a central server (database or CVS-like), users can be autonomous and
do not require any administration. In MetaEdit+ [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], import/export of chunks
is possible as well as merging chunks together but there is a restriction: a user
can not import back the chunk he has just exported. Nevertheless, this tool
allows users to update the replica with patches, that scenario has not yet been
considered in our framework.
      </p>
      <p>
        We envision other bene ts as the journals could be interactively reiterated
to explain the contribution of the concurrent users or become rst-class objects.
The journal enables the recreation of models/metamodels at di erent stages of
their development. Although our approach has been introduced with the MetaL
language, it will be possible to extend this framework to other works such as
RDF/OWL [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] or Telos [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
7
      </p>
    </sec>
    <sec id="sec-4">
      <title>Future work and conclusions</title>
      <p>The support for cooperative tasks between DSM tools is still an open issue,
especially for asynchronous collaboration. This cooperative approach can be achieved
by the exchange of method chunks. Our paper presents a theoretical framework
that allows such exchanges at all the abstraction levels (models &amp; metamodels)
based on an ad-hoc meta data description language (MetaL).</p>
      <p>This work is carried out in the context of the MetaDone DSM tool. It is
based on MetaL and is currently being implemented in Java (30 KLOC).
Although MetaL proposes interesting advantages over other DSLs like EMF or
UML (rei cation, de ning relationships between elements of distinct
abstraction levels, management of all the abstraction levels in a homogenous way),
these make the reconciliation process more complex. The proposed reconciliation
framework is still at its early stage of design. Speci c DSM reconciliation aspects
should be considered: maintaining the consistency, re ning the reconciliation
oracle and explaining its strategies to the users, and de ning a methodological
framework for method chunks reconciliation.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. MetaEdit+ System Administration. http://www.metacase.com/support/45/ manuals/sysadmin/sa-2_
          <issue>4</issue>
          _1.html,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Maarten van Steen Andrew S. Tanenbaum</surname>
          </string-name>
          . Distributed Systems: Principles and
          <string-name>
            <surname>Paradigms.</surname>
          </string-name>
          Prentice-Hall,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Christian</given-names>
            <surname>Bartelt</surname>
          </string-name>
          .
          <article-title>Consistence preserving model merge in collaborative development processes</article-title>
          .
          <source>In CVSM'08: Proceedings of the 2008 international workshop on Comparison and versioning of software models</source>
          , pages
          <fpage>13</fpage>
          <lpage>18</lpage>
          , New York, NY, USA,
          <year>2008</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Philip</given-names>
            <surname>Bernstein</surname>
          </string-name>
          .
          <source>Principles of Transaction Processing</source>
          . Morgan Kaufmann, San Diego,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>H.T.</given-names>
            <surname>Chou</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Kim</surname>
          </string-name>
          .
          <article-title>A unifying framework for version control in a CAD environment</article-title>
          .
          <source>In Twelfth International Conference on VeryLarge Data Bases</source>
          , pages
          <fpage>336</fpage>
          <lpage>p344</lpage>
          , Kyoto,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Juan de Lara and
          <string-name>
            <given-names>Hans</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          .
          <article-title>Using atom3 as a meta-case tool</article-title>
          . In ICEIS, pages
          <fpage>642</fpage>
          <lpage>649</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>7. Eclipse. http://www.eclipse.org/.</mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Electronic</given-names>
            <surname>Industries Association. CDIF Technical</surname>
          </string-name>
          <article-title>Committee. CDIF Integrated Meta-model Common Subject Area</article-title>
          , eia/is-112 edition,
          <year>December 1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Vincent</given-names>
            <surname>Englebert</surname>
          </string-name>
          and
          <string-name>
            <given-names>Patrick</given-names>
            <surname>Heymans</surname>
          </string-name>
          .
          <article-title>Towards more extensible metaCASE tools</article-title>
          . In A.L.
          <string-name>
            <surname>Opdhal J. Krogstie</surname>
          </string-name>
          and G. Sindre, editors,
          <source>International Conference on Advanced Information Systems Engineering (CAiSE'07)</source>
          , number 4495 in LNCS, pages
          <fpage>454</fpage>
          <lpage>468</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Holt</surname>
          </string-name>
          , Sch rr, Sim, and Winter. GXL:
          <article-title>A graph-based standard exchange format for reengineering</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>60</volume>
          (
          <issue>2</issue>
          ):
          <fpage>149</fpage>
          <lpage>170</lpage>
          ,
          <year>April 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Steven</given-names>
            <surname>Kelly</surname>
          </string-name>
          .
          <article-title>Case tool support for co-operative work in information system design</article-title>
          .
          <source>In Colette Rolland</source>
          ,
          <string-name>
            <given-names>Yu</given-names>
            <surname>Chen</surname>
          </string-name>
          , and Meiqi Fang, editors,
          <source>Information Systems in the WWW Environment</source>
          , volume
          <volume>115</volume>
          <source>of IFIP Conference Proceedings</source>
          , pages
          <fpage>49</fpage>
          <lpage>69</lpage>
          . Chapman &amp; Hall,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Steven</given-names>
            <surname>Kelly</surname>
          </string-name>
          and
          <string-name>
            <surname>Juha-Pekka Tolvanen</surname>
          </string-name>
          .
          <article-title>Domain-Speci c Modeling. Enabling full code generation</article-title>
          .
          <source>Wiley-IEEE Computer Society Pr</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Takashi</surname>
            <given-names>Kiriyama</given-names>
          </string-name>
          , Tetsuo Tomiyama, and
          <string-name>
            <given-names>Hiroyuki</given-names>
            <surname>Yoshikawa</surname>
          </string-name>
          .
          <article-title>A model integration framework for cooperative design</article-title>
          . In Duvvuru Sriram, Robert Logcher, and Shuichi Fukuda, editors,
          <source>MIT-JSME Workshop</source>
          , volume
          <volume>492</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>126</fpage>
          <lpage>139</lpage>
          . Springer,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Akos</surname>
            <given-names>Ledeczi</given-names>
          </string-name>
          , Miklos Maroti, Arpad Bakay, Gabor Karsai, Jason Garrett, Charles Thomason, Greg Nordstrom, Jonathan Sprinkle, and
          <string-name>
            <given-names>Peter</given-names>
            <surname>Volgyesi</surname>
          </string-name>
          .
          <article-title>The generic modeling environment</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Andrea De Lucia, Fausto Fasano, Giuseppe Scanniello, and
          <string-name>
            <given-names>Genny</given-names>
            <surname>Tortora</surname>
          </string-name>
          .
          <article-title>Enhancing collaborative synchronous uml modelling with ne-grained versioning of software artefacts</article-title>
          .
          <source>J. Vis. Lang. Comput.</source>
          ,
          <volume>18</volume>
          (
          <issue>5</issue>
          ):
          <fpage>492</fpage>
          <lpage>503</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          .
          <article-title>Conceptual modeling and telos</article-title>
          . In P. Loucopoulos and R. Zicari, editors,
          <source>Conceptual Modeling, Databases, and CASE. An Integrated View of Information Systems Development, chapter 2</source>
          , pages
          <fpage>49</fpage>
          <lpage>68</lpage>
          . John Wiley &amp; Sons, Ltd,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <source>OMG. MOF 2</source>
          .
          <article-title>0/XMI Mapping Speci cation</article-title>
          ,
          <year>v2</year>
          .1, formal/05-09-01 edition,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>18. PNML. http://www.pnml.org/.</mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Jolita</surname>
            <given-names>RalytØ</given-names>
          </string-name>
          and
          <string-name>
            <given-names>Colette</given-names>
            <surname>Rolland</surname>
          </string-name>
          .
          <article-title>An approach for method reengineering</article-title>
          . In Hideko S. Kunii, Sushil Jajodia, and Arne Słlvberg, editors,
          <source>ER</source>
          , volume
          <volume>2224</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>471</fpage>
          <lpage>484</lpage>
          . Springer,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>Motoshi</given-names>
            <surname>Saeki</surname>
          </string-name>
          .
          <article-title>Con guration management in a method engineering context</article-title>
          .
          <source>In Eric Dubois and Klaus Pohl</source>
          , editors,
          <source>CAiSE</source>
          , volume
          <volume>4001</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>384</fpage>
          <lpage>398</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>Kjeld</given-names>
            <surname>Schmidt</surname>
          </string-name>
          and
          <string-name>
            <given-names>Liam</given-names>
            <surname>Bannon</surname>
          </string-name>
          .
          <article-title>Taking CSCW seriously: Supporting articulation work</article-title>
          .
          <source>Computer Supported Cooperative Work</source>
          ,
          <volume>1</volume>
          :
          <fpage>7</fpage>
          <lpage>40</lpage>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. W3C.
          <article-title>The world wide web consortium (w3c) http://www</article-title>
          .w3c.org.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>Jing</given-names>
            <surname>Zhang</surname>
          </string-name>
          .
          <article-title>Metamodel-driven model interpreter evolution</article-title>
          . In OOPSLA '
          <volume>05</volume>
          :
          <article-title>Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications</article-title>
          , pages
          <fpage>214</fpage>
          <lpage>215</lpage>
          , New York, NY, USA,
          <year>2005</year>
          . ACM.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>