[ 02162: Course on Software Engineering 2 (e13) ]

 
Project
This page discusses the project of the course Software Engineering 2 (02162) in the autumn semester 2013.

 

In addition to the information on this page, there will be a presentation of the project (see slides) and the used technologies in the first weeks of this course, where you will also be able to ask your questions.

 

Overview
Petri nets are are a graphical notation for modelling all kinds of discrete dynamic systems. Once a system is modelled as a Petri net, it can be simulated, analysed, and checked for correctness, which helps making sure that the system under development does what it is supposed to do.

 

Petri nets can be used in many different application areas. In this project, the focus is on material flow systems and transport systems. In this application area, there are two major problems:

  • Petri nets are discrete, which means that states change in steps. By contrast, material flow and transportation systems are continuous — physical objects do not jump.

     

  • The graphical notation of Petri nets shows everything as a black token. Therefore it requires some excercise and education to relate the Petri net simulations to what really happens in the physical world.
In order to PNVis: Screen shot overcome this problem, different extensions of Petri nets have been proposed that make it easy to equip a Petri net model with information on the physical world and to visualize and animate the Petri net simulation in 3D. This way, people that do not Petri net at all can see what is "really" going on in a simulation and can even interact with the simulation.

 

One tool that allowd to equip Petri nets with a 3D animation was PNVis (see article). Unfortunately, PNVis is a bit outdated, is based on a Petri net tool that no longer is supported, and uses outdated technology.

 

In the project of this course, the ideas and concepts behind PNVis should be re-implemented using model-based technology and a modern Petri net tool that follows the principles of model-based software engineerin, the ePNK.

 

Some details
The PNVis article should give a pretty good overview of the main idea, the concept and functionality of the tool that is to be developped in this course (as it is a re-implementation of PNVis). But, your tool does not need to be compatible with PNVis. The concrete representation of labels (animation, geometry, etc) and the XML representation of the geometry and appearances (model files), can be changed — and probably need to be changed for technology reasons. Moreover, students are free to propose conceptual changes in their project definition and systems specification — but this needs to be discussed and approved with the teachers.

 

Below, the main functionality and requirements of the tool are summarized, where the terminology of the PNVis article and the ePNK documentation is used (without introducing it again):

  • A Petri Net Type for the ePNK that adds the extensions of PNVis nets in some form or the other to Place/Transition nets: animations, references to geometry objects and shapes, token identities, ...

     

    Note that by implementing such a Petri Net Type, the ePNK will provide a graphical editor for these kind of Petri nets.

     

  • A simple graphical editor for geometries that define the geometry along which the animated objects should move. There should be an EMF model defining what the concepts of a geometry and the relation between geometry objects are.

     

  • A simple editor that defines the graphical appearance (shape) of the geometry and the animated objects, and the scene's background. There should be an EMF model for these concepts. Dependent on the clarity of that model, the simple EMF tree editor that is automatically generated might do.

     

  • A simple simulator for the extended Petri net type, that has an interface for interacting with the 3D animation engine.

     

  • A 3D visualisation that interacts with the simulation, so that the tokens of the Petri net have corresponding objects in the 3D visualisation that behave according to the defined animations.

     

  • S simple graphical interface for starting, controlling (pause, reset, stop), and finishing different 3D animations on different or the same model at the same time.

 

In addition, there are the following requirements:

  • All the model elements (Petri net, geometry, appeance model) should be implemented in the MBSE philospphy (have a meta-model and some code is generated from these models automatically).

     

  • The runtime information that represent the current state of a Petri net and the 3D animation, can be implemented and do not need to have an EMF meta-model (but UML models should be included in the documentation).

     

    The Petri net models and the models behind a 3D animation should not change by starting and running a 3D animation. It should be possible to start several animations on the same model at the same time!

     

  • The interface between the Petri net simulation and the 3D animation enigne should be clear and simple, so that it would be easy to exchange a Petri net simulator with other simulators.

     

  • The animation should work smoothly on typical modern laptop computers for medium size scenarios (in your detailed specification be specific what exactly that means).

     

  • The 3D models do not need to be too fancy, and it is up to the group to decide which of the (common) formats they are using.

     

  • The tool should come with a fully fledged example that demonstrates all the features and capabilities of the groups tool.
Installing Eclipse and the ePNK
The tool should be implemented based on Eclipse 4.3 (Kepler) and its model-based technologies and the ePNK.

 

Therefore, you need to install Eclipse. This installation guide explains how to install Eclipse 4.3 and its extensions on your computer in the right configuration (with EMF, GMP/GMF, Xtext, OCL, Ecore Tools, and SVN subversion).

 

Once the groups are created, every group will be given access to a separate SVN repository. All the documents of the development process as well as the models and the software should be maintained in and accessible via this repository.

 

The ePNK for Eclipse 4.3 (Kepler) can be installed from the following Eclipse update site: http://www2.imm.dtu.dk/~ekki/projects/ePNK/kepler/update/. Use the Eclipse "Install New Software..." mechanism (you find that in Eclipse's Help menu). From that update site, you should select and install all features. The details will be explained in one of the tutorials. But, for understanding the project, you should have a look at the ePNK documentation already now.

 


 

Ekkart Kindler (), Aug. 23, 2013 (latest update September 2, 2013).