<!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>Improving the Development Tool Chain in the Context of Petri Net-Based Software Development</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tobias Betz</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lawrence Cabac</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthias Gu¨ttler</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Hamburg Faculty of Mathematics, Informatics and Natural Sciences Department of Informatics</institution>
        </aff>
      </contrib-group>
      <fpage>167</fpage>
      <lpage>178</lpage>
      <abstract>
        <p>Modern, collaborative software development projects are highly supported by a variety of tools. Aside from the pure code development that is nowadays well supported by integrated development environments (IDEs) such as Eclipse, also other activities receive increasing attention in the matter of tool support. Recent improvements in tool support for source code management (SCM), process management and documentation management are driven by the changing demands of increasing distribution and agility of development projects. Moreover, the integration of tool support systems into integrated project management environments (IPMEs) increase the usefulness of each emerging tool support, especially for agile approaches. The Petri net-based agent-oriented software engineering (Paose) is highly influenced by agile methods and combines the agile concepts with aspects from model driven development. We have achieved increased efficiency by the adoption of IPMEs into the Paose development approach. However, the introduced tool set integration lacks in support for the model driven part of Paose, i.e. the tool integration for graphical (model-based) source code i s missing. In this work we present an approach for an appropriate tool support of agile methods and model driven development. As a prototypical implementation of the concepts we present a Web service-based fra mework and plugin-based extension for Redmine as representative o f open source IPMEs, which is currently in use in the context of the Paose approach.</p>
      </abstract>
      <kwd-group>
        <kwd>Renew</kwd>
        <kwd>integrated project management</kwd>
        <kwd>Paose</kwd>
        <kwd>modeldriven development</kwd>
        <kwd>Redmine</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>development, today’s modern development requires more flexible ap proaches to
manage the given circumstances. In fact, project managers have to deal with
distributed teams and software systems, concurrently working developers and
fast and sporadic changes of demands.</p>
      <p>Therefore we need even more adequate tools in order to keep the development
process under control and to handle the different requirements in a satisfyingly
and efficient manner. In the usual software development process, there are a lot
of well-established tools in use, such as integrated development env ironments
(IDEs) to support technical aspects of programming and project management
tools, assisting developers and mainly superintendents in organizational matters.
The centralized or distributed storage of source code is also well supported by
various source code management (SCM) tools such as Subversion1 or Git2.</p>
      <p>
        In contrast to the classical software development, the agent-o riented software
development faces developers and project managers with some new aspects of
tasks and therefore with some new fields to support, possibly even with an
extended tool chain. One main reason for this is the self-organized an d autonomous
character of agents, which we also adopted into the organization of the
development team [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. This adoption goes well with the agile methods, which highly
influenced the evolution of the Paose approach. Another reason is the model
driven development based on Petri nets. In the Paose approach, we do not only
operate with plain text files as source code, we also work with a graphical
representation of Petri nets as source code to accomplish our targets of development.
In contrast to the conventional model-driven development, in whic h the models
are used to generate the executable source code, the Paose approach directly
uses the models (Petri nets) as source code.
      </p>
      <p>With this work we present an approach to improve the developers tool chain
in context of the Petri net-based agent-oriented software dev elopment. For that
reason, we advance the development process through adjusted and new tools,
which fill the gap of partially unsupported tasks. Additionally, our focus lies on
the adequate integration of these tools in our existent tool chain to advance the
integrated project management environment (IPME). In Section 2 we
investigate the developers’ tasks, especially in context of the agent-or iented and agile
procedure of development. Furthermore, we point out the deficits of the
existent tool chain and additionally work out some possible supporting measures.
We decided to primarily improve the topic of source code management within
the Petri net-based development through an extended tool set . Section 3
describes these tools with regard to the architecture, realization and integration.
We also present our prototypical implementation, which allows to include visual
representations of any diagram type / net, available in the Renew tool set (see
http://www.renew.de), in an IPME. This includes the simple displaying of
diagrams / nets as well as the presentation of visual differences between versions
available in the SCM.
1 Apache Subversion, Enterprise-class centralized version control for the masses
(http://subversion.apache.org)
2 Git, distributed version control system (http://git-scm. com)</p>
      <p>In the final conclusion we summarize our results of investigation and discuss
the achieved benefits through our enhancement in the development tool chain.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Developer Tasks in Context of Paose</title>
      <p>
        The process of software development consists of many different activities and
phases we traverse during the specification, implementation, verification and
deployment of software artifacts [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Figure 1 shows the various tasks a developer
has to deal with. Besides the pure writing of source code, there are more tasks
to focus on. Primarily, the definition of development tasks and their timing is
essential concerning the planning and definition of pending work. These activities
are supported by ticketing systems or bug trackers, which are widely applied
in common tool chains of software development projects. Not only the current
implementation phase is supported by tickets, it is also part of the software
artifact specification within the meaning of agile methods.
      </p>
      <p>
        While communication is a prerequisite for the proper planning and
coordination inside the development team3, this activity gets more relevant within
distributed teams and concurrently working developers. The terms self-organization
and responsibility are outstanding in agent-oriented development [
        <xref ref-type="bibr" rid="ref4 ref6">4 ,6</xref>
        ], as well
as in applied agile approaches [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Regular teamwork is already well supported
3 In this context, we refer to development teams as individuals, who take part in the
process of development and subsumes programmers, managers and contributors to
the project.
by various communication platforms, but often less efficient than desired,
especially in the context of agent-oriented software development 4. Proper change
notification in distributed planning is a complex task, regarding what Petrie et
al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] investigated in this matter, and still not satisfactorily solved for
modern, collaborative software development environments. In the context of agent
oriented software development, especially the autonomous and self-organized
aspect is predominant and consequently communication and coordination within
the team becomes more important.
      </p>
      <p>
        Furthermore, the source code management plays a significant role sharing
resources within the development team. Regarding textually represented source
code, a wide variety of tools exists to support the developer [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. We already
mentioned SCM tools like Subversion and Git. For graphically represented source
code or models, on which the Petri net-based agent-oriented sof tware
development is based on, however, there is a lack of supporting tools to manage and
visualize source code or changes made to it [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Finally one of the most useful
features of modern SCM tools is the possibility to reveal differences between
arbitrary revisions (versions) of the source code. This insufficiency within the
Petri net-based development is a problem in order to accomplish the required
information exchange and also the change notification between the developers
of a (distributed) team, as mentioned before. Regarding Schipper et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], a
major concern is the depiction of changes in graphical models in a graphical way.
We will present an appropriate solution for this missing feature in the following
section.
      </p>
      <p>
        Documentation is another task a developer is faced with. In agile approaches
this task is less expensive, because running software has a higher value as
comprehensive documentation if we follow the agile manifest [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. However, apart
from this, documentation is always a task to manage. Some IPMEs already
support integrated documentation in the form of wikis for example. But also the
documentation inside the source code is a part of the entire documentation and
should be supported in some form by the integrated documentation system or
the IPMEs as well. An IPME with integrated SCM and possibility to write and
permanently save additional documentation fulfills this task sufficiently.
      </p>
      <p>Finally, developers make use of a lot of tools. We aim at the integration of
all used tools in the existent and usual tool chain and further connect these
tools together. This means that developers are able to link the various contents
and results of the tools’ usages. More precisely, we target the link ing of source
code with task definitions, documentation and discussed topics relevant to the
concrete realization. Additionally, the exchange of information between the tools
should be realized as an automatic process embedded into the usual workflow.
The result of this is an integrated project management environment, being able
to handle many tasks belonging to different phases and areas of the complete
development process and finally to make this information available through a
single interface.
4 Note that in Paose the agent-oriented paradigm is also applied to the developm ent
team and to the development process.</p>
      <p>The free available open source project management tools Redmine5 and Trac6
support many of these needs out of the box and also provide a notification system
via e-mail transparently embedded in the usual workflow. One missin g feature,
the possibility to view and compare graphical source code in a visual manner
inside the IPME, is realized through our extension of the tool chain and will be
presented in the following section.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Web ServiceB-ased Tool Integration</title>
      <p>In the previous section, we pointed out the requirement of a tool to visualize and
compare graphical source code, particularly in context of Petri net-based
development. This section deals with the architecture, implementation and integration
of the outlined draft for such a tool, that fits perfectly into the distributed nature
of agent-oriented software development, our existing tool chain and development
workflow.
3.1</p>
      <sec id="sec-3-1">
        <title>Architecture of the Tool Set</title>
        <p>Due to the plugin-based design of the most project management to ols, in our case
Redmine, it is possible to improve the functionality of the IPME with respect to
the integration of Petri nets and also other models such as sequence diagrams,
class diagrams, etc. For this purpose, we provide an extension, which enables
the IPME to (1) render net files in a graphical manner instead of showing the
corresponding text representation and (2) compare two revisions of the same
net file by highlighting their differences. The implementation of this extension is
divided into two functional components. The first is designed as a Web service,
which offers the capability to compute images of submitted nets that depict the
requested functionality of the extension (detailed description in Section 3.3). The
second component is located in the IPME as a plugin called Redmine Renew
Plugin and integrates the functionality offered by the Web service into the
webbased user interface (as described in Section 3.5). This is realized by extending
the existing code view mechanisms so that net files supported by Renew (*.rnw,
*.aip, *.draw, *.pnml, etc.) will be forwarded and handled by the corresponding
Web service.</p>
        <p>Each component of the tool chain can be assembled and hosted in a
completely distributed environment, as depicted in Figure 2, or centralized on one
host. The IPME is hosted on a web server that offers developers, managers and
designers an easy access using a simple Web browser. Source code repositories
are located on file servers and will be integrated into the environment with the
help of the build-in source code management (SCM) connectors. Th e major
workload of the net integration is done by the export server, which hosts the
two Web services (Image Net Export and Image Net Diff).
5 Redmine, A flexible project management web application (http://www.redmine.org)
6 Trac, Integrated SCM &amp; Project Management (http://trac.edgewall.org)
Conversion of diagram / net representation into image representations is
provided by two plugins available for Renew. The Export plugin is part of the
distribution of Renew and makes use of the powerful Freehep libraries (see
http://www.freehep.org/). It was first included in version 2.1 of Renew. The
Export agent makes use of the PNG (Portable Network Graphics) export format,
which is displayed directly in a Web browser.</p>
        <p>
          The ImageNetDiff plugin for Renew is available as on optional plugin and
allows producing a visual diff of two diagrams or nets. As the name suggests, the
visual diff is represented as an image (compare with [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]) and is in fact produced
through a comparison of two images, which are the result of an export operation.
The functionality is available in Renew from the GUI or as command line
argument, i.e. comparing two opened nets (or diagrams) as well as using the
functionality in scripts is possible. Additionally, the comparison of a
checkedout copy of a net against the revision base in a Subversion repository is directly
supported. With the integration of the ImageNetDiff functionality in the IPME
the comparison of arbitrary version in a repository is also easily possible. Instead
of executing a diff on the textual representation and mapping the results back
to the Petri net or diagram we make heavy use of the graphical (analogue)
representation of the diagram. Thus the diff procedure in our implementation
is not a semantic (or syntactic) diff but a purely visual one. On the one hand,
this approach holds some disadvantage. Direct editing of nets on the basis of
the diff representation is not possible and also our tool set does not support
automatic merges. On the other hand, we can also derive some advantages from
this approach. The implementation is very simple. In many relevant cases this
approach shows the desired results. The results integrate directly into the
Webbased applications. Note also, that the diff images are only transitional objects
during the development of models / source code. For the means of comparison,
they are only useful at the moment of creation. Once the desired information is
found, e.g. the error is located, the diff object is deleted.
3.3
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Web Service Implementation</title>
        <p>
          Both services (Image Net Export Service and Image Net Diff Service) used in
the Redmine Renew Plugin are realized as RESTful Web services [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. This
approach offers a high interoperability and simplifies the integration of services in
distributed environments. The current implementation of the Export Server (see
Figure 2) is based on Mulan/Capa [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]: a Petri net-based multi-agent
framework. Thus, the functionality of both services is provided by an agent (called
Export agent), which is able to offer its services as Web services. This is possible
with the help of the Mulan WebGateway agent, which is acting between the
export agent and the invoking Web client, in our case the Redmine Renew Plugin.
As depicted in Figure 3 the WebGateway agent has two communication interfaces
and is able to communicate on the right hand side with agents over FIPA-ACL 7
messages. On the left hand side the interface is implemented by a Jetty8 Web
server and is able to handle HTTP and WebSocket9 connections. Besides the
capability to register and manage agent Web services, the major purpose of the
WebGateway is to translate incoming Web client messages to FIPA-AC L
messages and vice versa. During agent service registration at the WebGateway, each
service can submit a service representation in terms of ordinary JSP10 Web sites.
These sites serve as web-based service invocation applications and are available
by opening the associated service URL in a Web browser.
        </p>
        <p>To fulfill the desired behavior of the export agent services (Image Net
Export Service and Image Net Diff Service), the implementation makes use of the
Renew Export and ImageNetDiff plugins (mentioned in Section 3.2), which are
available due to the fact that the Mulan multi-agent framework uses Renew
as a runtime engine.
3.4</p>
      </sec>
      <sec id="sec-3-3">
        <title>Redmine Renew Plugin Implementation</title>
        <p>The current prototype of the Redmine Renew Plugin implements two
different features, export and diff, which both work with source code files from the
connected repository, as described in Section 3.1.</p>
        <p>The visualization of a single net file is a relatively simple task and thus fairly
simple to implement. The plugin has to fetch the net file from the repository
and post the content of this file to the Web service to get a visual representation
7 FIPA ACL: http://fipa.org/specs/fipa00061/SC00061G.html
8 Jetty Web server: http://www.eclipse.org/jetty/
9 W3C WebSocket API: http://dev.w3.org/html5/websockets/
10 Java Server Page (JSP): http://www.oracle.com/technetwork/java/javaee/jsp/
WS
Client</p>
        <p>HTTP/WebSocket</p>
        <p>Inform/Request</p>
        <p>Response</p>
        <p>Register</p>
        <p>Response
Inform/Request</p>
        <p>WebGateway
Web Service Registry</p>
        <p>Agent
Service
Web
Service</p>
        <p>FIPA-ACL
Inform/Request</p>
        <p>Response
Register</p>
        <p>Agent</p>
        <p>Response</p>
        <p>Inform/Request
of the net as result. This result, the received PNG image, will be shown to the
user, embedded inside the repository view of Redmine (compare with Figure 4, in
which a diff image is shown, which is explained in Section 3.5). The comparison
of two revisions of the same net file from the repository does not make a big
effort, too. In this case, the plugin has to fetch the two different revisions of the
net file and post its contents to the Web service to receive the image with the
highlighted differences.</p>
        <p>However, the case of comparing two complete changesets11 is a complex task
with regard to the technical aspect. This is firstly, because a changeset might
contain graphical and textual source code changes, therefore the plugin has to
decide for every file separately, if it will use the image net diff algorithm or the
build-in textual one 12. Secondly, the type of change can be one of the following
for every single file in the changeset: addition, modification, deletion, duplication,
moving or renaming. As a consequence, there are a lot of possible cases to take
into account e.g. if we add a net file in one changeset, remove this file in the
next one and after that we add a file with the same name but different contents
again. Then, the complete history of changes made to this file name has to
receive attention in order to decide which revisions should be compared. Another
complex sequence of operations arises, when a file becomes renamed or moved.
In this case the plugin has to fetch the previously named file and the current
one in order to compare the changes, what results in a supplementary request
to the repository.
11 A changeset contains all changes, which were made in an atomic commit and contains
multiple files in the majority of cases.
12 The repository itself (i.e. Subversion) does not make any difference between file types
and returns a single unified diff file for all changes made in a changeset. Therefore
the Redmine Renew Plugin has to split this unified diff into separate parts, whereby
every part contains the changes made to a single file.</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.5 Integration into the Existing Tool Chain</title>
        <p>In the Paose approach we use project management tools that are already
wellestablished in agile development approaches. By their usage, we directly apply
the advantages of these tools to the agent-oriented developmen t and benefit from
the tight linking of source code with developer tasks and documentation, as
requested within Section 2. Beyond that, we extend these tools with plugins
according to the needs of the Petri net-based agent-oriented sof tware development,
which result from the model-driven nature of the Petri net-based development,
as described in Section 3.1.</p>
        <p>
          Figure 4 shows a screenshot of the web-based IPME Redmine. The im age
shows the repository view extended by the Redmine Renew Plugin in diff mode.
Inside the content area in the center, it shows the differences of two revisions
(i.e. revisions 9296 and 9538) of a Petri net from the connected Subversion
repository. The colored areas describe changed parts of the Petri net, whereby
green13 signifies added parts and red deleted parts, while the light-gray are as
signify unchanged parts. The plugin integrates into the IMPE in a transparent
way, without the need of changing anything in the general workflow.
Additionally, the presentation of both, textual and graphical source code, is embedded
into our IMPE homogeneously. The just described screenshot shows only one
possible use of the plugin. There is also the ability to compare other graphical
resources, such as use case diagrams or agent interaction protocols, which both
were introduced to the Paose approach [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>A demonstration of the new tool integrated into the IMPE Redmine is
accessible under https://paose.informatik.uni-hamburg.de/redmine/ . The
connected Subversion repository contains some examples, which were developed in
the context of the P*AOSE student project at the University of Hamburg. The
presented IPME allows public users to access the source code, to visualize and
to compare different versions.14</p>
        <p>In Section 2 we described the developer tasks and discussed the need for tool
support for the comparison of graphical source code (i.e. in our case Petri nets)
and other diagrams in a visual way. The possibilities offered by our presented
extensions especially support the developers in communication aspects and the
exchange of information. Furthermore, reviewing and refactoring of code, for
instance in order to discover and eliminate some bugs, are simplified, because
the simple access to a visualization of the graphical source code is integrated
into the applied IPME. Besides that, project leaders and other participants can
inform themselves straightforwardly about the progress of development without
the need of an IDE and thus also derive benefits from the integrated tool set.</p>
        <p>A typical use case for the net diff inside the IPME is a session of finding
the differences during a debugging session. However, one very useful simple use
case is examining, whether changes were made in a model. For instance marginal
changes in the layout (e.g. changing the z-order of elements) can r esult in
repository check-ins. Also if changes from for example version A to versio n B are
reverted in version C the control of absence of differences between version A and
C and the easy access to this information is of great advantage.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>In this work we investigated the development process in Petri net- based
agentoriented software development concerning the improvements of tool support.
After outlining developer tasks and gaps in tool support, we introduced an
extension to the tool set to accommodate the source code management of graphically
represented source code, embedded into the widely used open source project
management tool Redmine.
13 A black and white print shows only light-gray parts and black net elements and
inscriptions. With the exception of the comments (in square brackets) only additions
have been made in the presented diff.
14 Additionally the Web service-based functionality of diagr am export and diagram
image diff can be accessed manually via an included Web interface.</p>
      <p>With the introduction of our extended tool chain in the context of the
P*AOSE projects at the University of Hamburg, which follow the Paose
approach, we improved various aspects of the developers’ tasks. F irst of all, of
course we supported the possibility to observe graphical source code and
compare it concerning its different versions. Supplementary, we improved the speed
of development through this feature, in respect of the possibility to visually
compare model-based source code (i.e. in our case Petri nets) and oth er diagrams
directly and effortlessly in an integrated environment for the project
management and planning (IPME), which is closely linked to the SCM. Furthermore
the presented tool integration supports the communication of the developers.
Information exchange through source code changes between the developers gets
easier than before and performs thereby the requirements delineated in Section 2.
Finally, we come to the conclusion that our presented extended tool chain is one
substantial step to improve the development of Petri net-based agent-oriented
software. The gap between text-based and model-based source code – as well as
other design models – is thus further closed in regard to the handling of these
documents during development, reviewing, documentation and refactoring. The
presented approach could easily be adapted to support other development
approaches that make use of graphical representations (e.g. UML diagrams) during
development.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Helmut</given-names>
            <surname>Balzert</surname>
          </string-name>
          .
          <article-title>Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering</article-title>
          .
          <source>Spektrum Akademischer Verlag, 3. aufl. edition</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Kent</given-names>
            <surname>Beck</surname>
          </string-name>
          , Mike Beedle, Arie van Bennekum,
          <string-name>
            <surname>Alistair</surname>
            <given-names>Cockburn</given-names>
          </string-name>
          , Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin,
          <string-name>
            <surname>Steve Mellor</surname>
          </string-name>
          , Ken Schwaber, Jeff Sutherland, and Dave Thomas.
          <article-title>The agile manifesto</article-title>
          . http://agilemanifesto.org.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>W.G.</given-names>
            <surname>Bleek</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Wolf</surname>
          </string-name>
          . Agile Softwareentwicklung: Werte, Konzepte und Methoden. dpunkt, Heidelberg,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Lawrence</given-names>
            <surname>Cabac</surname>
          </string-name>
          .
          <article-title>Multi-agent system: A guiding metaphor f or the organization of software development projects</article-title>
          . In Paolo Petta, editor,
          <source>Proceedings of the Fifth German Conference on Multiagent System Technologies</source>
          , volume
          <volume>4687</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>11</fpage>
          -
          <lpage>2</lpage>
          , Leipzig, Germany,
          <year>2007</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Lawrence</given-names>
            <surname>Cabac</surname>
          </string-name>
          .
          <article-title>Modeling Petri NetB-ased MultiA-gent Applications</article-title>
          , volume
          <volume>5</volume>
          <source>of Agent Technology - Theory and Applications</source>
          . Logos Verlag, Berlin,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Lawrence</given-names>
            <surname>Cabac</surname>
          </string-name>
          , Till Dor¨ges, Michael Duvigneau, Christ ine Reese, and
          <string-name>
            <surname>Matthias</surname>
          </string-name>
          Wester-Ebbinghaus.
          <article-title>Application development with Mulan. I n Daniel Moldt</article-title>
          , Fabrice Kordon, Kees van Hee,
          <string-name>
            <surname>Joes-M´anuel Colom</surname>
          </string-name>
          , and Rem´i Bas tide, editors,
          <source>Proceedings of the International Workshop on Petri Nets and Software Engineering (PNSE'07)</source>
          , pages
          <fpage>1451</fpage>
          -
          <lpage>59</lpage>
          , Siedlce, Poland,
          <year>June 2007</year>
          .
          <article-title>Akademia Podla ska</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Lawrence</given-names>
            <surname>Cabac</surname>
          </string-name>
          and
          <article-title>Jan Schul¨ter. ImageNetDiff: A visual a id to support the discovery of differences in Petri nets</article-title>
          . In 15. Workshop Algorithmen und Werkzeuge uf¨r Petrinetze,
          <source>AWPN'08</source>
          , volume
          <volume>380</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <fpage>93</fpage>
          -
          <lpage>98</lpage>
          . Universiatt¨ Rostock,
          <year>September 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Duvigneau</surname>
          </string-name>
          , Daniel Moldt, and
          <article-title>Heiko Rol¨ke. Concu rrent architecture for a multi-agent platform</article-title>
          . In Fausto Giunchiglia, James Od ell, and Gerhard Wei,ß editors,
          <source>AgentO-riented Software Engineering</source>
          . 3rd International W orkshop,
          <source>AOSE</source>
          <year>2002</year>
          ,
          <article-title>Bologna</article-title>
          . Proceedings, pages
          <fpage>1471</fpage>
          -
          <lpage>59</lpage>
          . ACM Press,
          <year>July 2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Akhil</surname>
            <given-names>Mehra</given-names>
          </string-name>
          , John Grundy,
          <string-name>
            <given-names>and John</given-names>
            <surname>Hosking</surname>
          </string-name>
          .
          <article-title>A generic approach to supporting diagram differencing and merging for collaborative design</article-title>
          .
          <source>In Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, ASE</source>
          <volume>0</volume>
          '
          <issue>5</issue>
          , pages
          <fpage>2042</fpage>
          -
          <lpage>13</lpage>
          , New York, NY, USA,
          <year>2005</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Cesare</surname>
            <given-names>Pautasso</given-names>
          </string-name>
          , Olaf Zimmermann, and
          <string-name>
            <given-names>Frank</given-names>
            <surname>Leymann</surname>
          </string-name>
          .
          <article-title>Restful web services vs. b“ig” web services: making the right architectural deci sion</article-title>
          .
          <source>In Proceeding of the 17th international conference on World Wide Web, WWW</source>
          <volume>0</volume>
          '
          <issue>8</issue>
          , pages
          <fpage>8058</fpage>
          -
          <lpage>14</lpage>
          , New York, NY, USA,
          <year>2008</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>C. Petrie</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Goldmann</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Raquet</surname>
          </string-name>
          .
          <article-title>Agent-based proje ct management</article-title>
          .
          <source>Artificial intelligence today</source>
          , pages
          <fpage>3393</fpage>
          -
          <lpage>63</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Arne</surname>
            <given-names>Schipper</given-names>
          </string-name>
          , Hauke Fuhrmann, and
          <article-title>Reinhard von Hanxleden. Visual comparison of graphical models</article-title>
          .
          <source>Engineering of Complex Computer Systems</source>
          , IEEE International Conference on,
          <volume>0</volume>
          :
          <fpage>3353</fpage>
          -
          <lpage>40</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <article-title>Trung Hung VO</article-title>
          .
          <article-title>Software development process</article-title>
          . Available at: http://cnx.org/content/m14619/1.2/,
          <year>July 2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>