Tutorial Model-based Software Engineering for/with Petri Nets (Ekkart Kindler)

Tuesday June 25

Model-based Software Engineering (MBSE) is a catch-all term for software development technologies in which models are more than just “nice sketches” or “drawings”. In MBSE, models are mostly used for generating some parts of the code automatically from models or for executing models directly. The OMG’s Model Driven Architecture (MDA) is probably one of the most prominent approaches in this direction and Eclipse EMF is a very popular technology supporting MBSE. But, MBSE also covers approaches that are more focused on analyzing or verifying software models.

Petri nets have been used for modelling for a long time now and they are successfully used in different areas of software and systems development. Though Petri nets are used in all stages of software development, many approaches focus on the early phases of the development process and for building prototypes; the actual software is often still programmed manually.

This course presents the idea, the main concepts, and some technologies of MBSE — with the focus on automatic code generation. On the one hand, these technologies can be used for developing Petri net tools in a more efficient way. On the other hand, they can be used to generate parts of the software automatically from Petri net models. More importantly, we will see how Petri nets and the code generated from them can be integrated with other software.

The course will be based on the experiences with Eclipse EMF and developing the ePNK based on EMF, and discuss the lessons learned with developing the ECNO Tool, which allows to generate software completely automatically from models which consists of the Event Coordination Notation and ECNO nets (which are a special version of Petri nets for modeling the life-cycle of is components).