Overview |
The Event Coordination Notation (ECNO) is a notation to coordinate the
behaviour among related model elements that are defined in structural diagrams such as class diagrams.
The ECNO allows the definition of events and provides means for defining how different
related model events need to join or participate in the execution of these events: an
interaction.
The local behaviour of each element defines, in which events an element could participate, which parameters are contributed, and which action is executed once an interaction is established and executed.
In the ECNO protoype that is available below, there is an ECNO runtime engine, and there is an extension of Petri nets (ECNO nets) that allow to define the local behaviour of elements. And there is a code generator that allows to generated the code for the local behaviour of ECNO nets. Moreover, there is an example deployed with this prototype.
|
Installing the ECNO prototype |
The ECNO runtime engine and a ECNO net extension for modelling the local behaviour of
elements and the code generator is implemented as a Petri net type of the
ePNK. It
is available at the ePNK update site for eclipse:
http://www2.imm.dtu.dk/~eki/projects/ePNK/update/. The ECNO prototype is
available in the "Experimental" category under "ECNO Nets". In order to install this
extension, you will need to install eclipse Galileo (3.5) or Helios (3.6) first
(see the ePNK
installation page for details); then the ePNK and the ECNO net extension can be
installed by "Help" -> "Install New Software..." and adding the ePNK update site.
The example discussed in [2] is deployed together with the ECNO net extension. After you have installed the ECNO net extension in your version of eclipse, you can import the example to your workspace in the following way: first, open the plug-ins view ("Window" -> "Show view" -> "Other ..." -> "Plug-in Development" -> "Plug-ins"); go to that view and right-click on the plug-in "dk.dtu.imm.se.ecno.pn.example-project" and select "Import As" -> "Source Project". You will find the Petri nets (as a PNML document) in the folder "petrinets". Note that you will see the nets in a tree editor when you initially open that PNML document. For opening a graphical editor, you need to browse the nets in the tree editor and find its pages. Right-click on the page and select "ePNK" -> "Start GMF Editor on Page" (see the ePNK manual [3] for details).
The example project actually contains all code (the one which would be generated from the ECNO coordination diagram) and the one that is generated from the ECNO nets. In order to generate the code from the ECNO nets, you need to open the tree editor on the PNML document, right-click on a net (of type ECNO net) and select "ECNO" -> "Generate Code". Note that the fully qualified name of that net will determine to which package the generated class will be added.
All this code can be found in the package "dk.dtu.imm.se.ecno.pn.example.vendingmachine". This code is actually independent from eclipse and can be run in any Java runtime environment (1.6 or higher). The vending machine code can be started by right-clicking on "VendingMachineInstance.java" and selecting "Run As" -> "Java Application". Then, you will see a GUI for the coffee and tee vending machin starting up (see [2] for details).
|
Acknowledgements |
The ideas of ECNO gradually evolved over several years and started out in
a quite different field of research. Over the time, different students have
done projects that directly or indirectly contributed to the concepts of
ECNO: The students of the AMFIBIA project at the University of Paderborn:
Achim Heynen, André Altenau, Christiane Klapdohr, David Schmelter, Dennis
Goeken, Elmar Köhler, Patrick Könemann, and Peter Pietrzyk.
David Schmelter elaborated some parts in his master's thesis. Moreover, there
were students at Denmark's Technical University: Lukasz Nowak and Yang Li did
their masters' thesis on AMFIBIA and MoDowA; Tigran Tchougourian, Piotr
Borowian, Maciej Zarzycki, and Vaidas Karosas did a related project in the
course "Advanced Topics in Software Engineering".
Moreover, my co-researchers on AMFIBIA, Björn Axenath and Vladimir Rubin, contributed to what became ECNO now.
It is diffcult to attribute which ideas of ECNO where inspired by which student. But, I would like to thank all of them for their work, their ideas, and many interesting discussions.
|
References |
|
Ekkart Kindler (), May 18, 2011 (updated Feb. 20, 2012)