Please disable Adblockers and enable JavaScript for domain CEWebS.cs.univie.ac.at! We have NO ADS, but they may interfere with some of our course material.
[Info]
Model Translation
Create a piece of code that can convert arbitrary BPMN 2.0 XML code into a tree structure. Test your code with your model A and 15 supplied models. Below you can find an example of the resulting tree (i.e. imperative model).
<description xmlns="http://cpee.org/ns/description/1.0">
<loop mode="post_test" condition="data.test < 3">
<call id="a2" endpoint="timeout">
<parameters>
<label/>
<method>:post</method>
<arguments>
<timeout>4</timeout>
</arguments>
</parameters>
<finalize output="result">data.test -= 1</finalize>
<update output="result"/>
</call>
</loop>
<call id="a1" endpoint="timeout">
<parameters>
<!--{{{-->
<method>:post</method>
<arguments>
<timeout>4</timeout>
<bug>data.nasty</bug>
</arguments>
</parameters>
<!--}}}-->
<finalize output="result">data.x += "done"</finalize>
</call>
<parallel wait="2">
<parallel_branch>
<call id="a2_1" endpoint="timeout">
<parameters>
<!--{{{-->
<method>:post</method>
<arguments>
<timeout>6</timeout>
</arguments>
</parameters>
<!--}}}-->
</call>
</parallel_branch>
<parallel_branch>
<call id="a2_2" endpoint="timeout">
<parameters>
<!--{{{-->
<method>:post</method>
<arguments>
<timeout>2</timeout>
</arguments>
</parameters>
<!--}}}-->
</call>
</parallel_branch>
</parallel>
<manipulate id="a3">data.x += '_end'</manipulate>
<choose>
<alternative condition="data.x != nil">
<call id="a4_1" endpoint="timeout">
<parameters>
<!--{{{-->
<method>:post</method>
<arguments>
<timeout>4</timeout>
</arguments>
</parameters>
<!--}}}-->
</call>
</alternative>
<otherwise>
<call id="a4_2" endpoint="timeout">
<parameters>
<!--{{{-->
<method>:post</method>
<arguments>
<timeout>10</timeout>
</arguments>
</parameters>
<!--}}}-->
</call>
</otherwise>
</choose>
</description>
Details:
- root tag description, namespace as given above
- the children form an execution sequence
- <call> is a call to a web service
- <manipulate> is a script task
- <loop>'s can have arbitrary children which form sequence again, and the condition can be either tested (mode) at the beginning or the end
- <parallel>'s can have branches, and inside branches arbitrary children wich again form a sequence.
- <choose>'s have <alternative>'s and one optional <otherwise> and can be either inclusive or exclusive (mode).
Submission:
- 1 ZIP with the code of your solution.
- 1 PDF with installation/compilation instructions.
- 1 PDF which compares a screenshot of signavio with the resulting XML.
Every resulting tree should be correct XML. Every resulting tree should adhere to the example/schema given above.
Tipp: «http://researcher.watson.ibm.com/researcher/files/zurich-hvo/VVK09.pdf» can be used as a basis.
Letzte Änderung: 30.10.2017, 14:39 | 546 Worte