<!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>Combining Petri Nets and UML for Model-based Software Engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Joa˜o M. Fernandes</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dep. Informa ́tica / Centro Algoritmi Universidade do Minho 4710-057 Braga Portugal</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Recent Advances in Petri Nets and Concurrency, S. Donatelli, J. Kleijn, R.J. Machado, J.M. Fernandes (eds.), CEUR Workshop Proceedings, ISSN 1613-0073, Jan/2012, pp. 217{218.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        UML is by far the most widely used modelling language used nowadays in software
engineering, due to its large scope and its wide tool support. This software standard
offers many diagrams that cover all typical perspectives for describing and modelling
the software systems under consideration. Among those diagrams, UML includes
diagrams (activity diagram, state machine diagram, use case diagrams, and the interaction
diagrams) for describing the behaviour (or functionality) of a software system. Petri
nets constitute a well-proven formal modelling language, suitable for describing the
behaviour of systems with characteristics like concurrency, distribution, resource sharing,
and synchronisation. Thus, one may question why not combining some UML diagrams
with Petri nets for effectively supporting the activities of the software engineer. The
usage of Petri nets for/in Software Engineering was addressed by several well-known
researchers, like, for example, Reisig [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Pezze`[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], Machado [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and Kindler [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>In this invited paper, we discuss some alternatives to introduce Petri nets into a
UML-based software development process. In particular, we describe how Coloured
Petri Net (CPN) models can be used to describe the set of scenarios associated with a
given use case. We describe three different alternatives that can be adopted to achieve
that purpose.</p>
      <p>
        The first approach, initially presented in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], suggests a set of rules that allow
software engineers to transform the behaviour described by a UML 2.0 sequence diagram
into a CPN model. Sequence diagrams in UML 2.0 are much richer than those in UML
1.x, namely by allowing several traces to be combined in a unique diagram, using
highlevel operators over interactions. The main purpose of the transformation is to allow the
development team to construct animations based on the CPN model that can be shown
to the users or the clients in order to reproduce the expected scenarios and thus validate
them. Thus, non-technical stakeholders are able to discuss and validate the captured
requirements. The usage of animation is an important topic in this context, since it permits
the user to discuss the system behaviour using the problem domain language.
      </p>
      <p>
        In the second approach, discussed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], we assume that developers specify the
functionality of the system under consideration with use cases, each of which is
described by a set of UML 2.0 sequence diagrams. For each use case, there should exist
at least one sequence diagram that represents and describes its main scenario. Other
sequence diagrams for the same use case are considered to be variations of the main
scenario. The transformation approach allows the development team to interactively play
or reproduce any possible run of the given scenarios. In particular, the natural
characteristics of the CPN modelling language facilitate the representation of the hierarchy and
concurrency constructs of sequence diagrams.
      </p>
      <p>
        The third alternative, considered in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], is an improvement with respect to the
previous approach and is targeted to reactive systems. We identify and justify two key
properties that the CPN model must have, namely: (1) controller-and-environment-partitioned,
which means constituting a description of both the controller and the environment, and
distinguishing between these two domains and between desired and assumed behaviour;
(2) use case-based, which means constructed on the basis of a given use case diagram
and reproducing the behaviour described in accompanying scenario descriptions. We
have demonstrated how this CPN model is useful for requirements engineering, since it
provides a solid basis for addressing behavioural issues early in the development
process, for example regarding concurrent execution of use cases and handling of failures.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>G.</given-names>
            <surname>Denaro and M. Pezze</surname>
          </string-name>
          <article-title>`</article-title>
          .
          <source>Petri Nets and Software Engineering. In Lectures on Concurrency and Petri Nets: Advances in Petri Nets</source>
          , volume
          <volume>3098</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>439</fpage>
          -
          <lpage>466</lpage>
          . Springer,
          <year>2004</year>
          . DOI 10.1007/b98282.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>J.M. Fernandes</surname>
            ,
            <given-names>J.B.</given-names>
          </string-name>
          <string-name>
            <surname>Jørgensen</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Tjell</surname>
          </string-name>
          .
          <article-title>Requirements engineering for reactive systems: Coloured petri nets for an elevator controller</article-title>
          .
          <source>In 14th Asia-Pacific Software Engineering Conference (APSEC</source>
          <year>2007</year>
          ), pages
          <fpage>294</fpage>
          -
          <lpage>301</lpage>
          . IEEE CS Press,
          <year>December 2007</year>
          . DOI 10.1109/APSEC.
          <year>2007</year>
          .
          <volume>81</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>J.M. Fernandes</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Tjell</surname>
            ,
            <given-names>J.B.</given-names>
          </string-name>
          <string-name>
            <surname>Jørgensen</surname>
            , and
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Ribeiro</surname>
          </string-name>
          .
          <article-title>Designing Tool Support for Translating Use Cases and UML 2.0 Sequence Diagrams into a Coloured Petri Net</article-title>
          .
          <source>In 6th Int. Workshop on Scenarios and State Machines (SCESM</source>
          <year>2007</year>
          ),
          <source>within ICSE</source>
          <year>2007</year>
          . IEEE CS Press, May
          <year>2007</year>
          . DOI 10.1109/SCESM.
          <year>2007</year>
          .
          <volume>1</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Ekkart</given-names>
            <surname>Kindler</surname>
          </string-name>
          .
          <source>Model-Based Software Engineering and Process-Aware Information Systems. Transactions on Petri Nets and Other Models of Concurrency</source>
          ,
          <volume>5460</volume>
          :
          <fpage>27</fpage>
          -
          <lpage>45</lpage>
          ,
          <year>2009</year>
          . DOI 10.1007/978-3-
          <fpage>642</fpage>
          -00899-3
          <fpage>2</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>R. J.</given-names>
            <surname>Machado</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. B. Lassen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Oliveira</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Couto</surname>
            , and
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Pinto</surname>
          </string-name>
          . Requirements Validation:
          <article-title>Execution of UML Models with CPN Tools</article-title>
          .
          <source>International Journal on Software Tools for Technology Transfer</source>
          ,
          <volume>9</volume>
          (
          <issue>3</issue>
          -4):
          <fpage>353</fpage>
          -
          <lpage>369</lpage>
          ,
          <year>2007</year>
          . DOI 10.1007/s10009-007-0035-0.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>W.</given-names>
            <surname>Reisig</surname>
          </string-name>
          .
          <article-title>Petri Nets in Software Engineering</article-title>
          . In W. Brauer,
          <string-name>
            <given-names>W.</given-names>
            <surname>Reisig</surname>
          </string-name>
          , and G. Rozenberg, editors,
          <source>Advances in Petri Nets</source>
          , volume
          <volume>255</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>63</fpage>
          -
          <lpage>96</lpage>
          . Springer,
          <year>1987</year>
          . DOI 10.1007/3-540-17906-2
          <fpage>22</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>O.</given-names>
            <surname>Ribeiro</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Fernandes</surname>
          </string-name>
          .
          <article-title>Some Rules to Transform Sequence Diagrams into Coloured Petri Nets</article-title>
          . In K. Jensen, editor,
          <source>7th Workshop and Tutorial on Practical Use of Coloured Petri Nets and the CPN Tools (CPN</source>
          <year>2006</year>
          ), pages
          <fpage>237</fpage>
          -
          <lpage>256</lpage>
          ,
          <year>October 2006</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>