Model-based Software Engineering for/with Petri Nets
On these pages, you will find the material of the
tutorial on
"Model-based Software Engineering for/with Petri Nets", which will be held by
Ekkart Kindler
on Tuesday, June 25, 2019 in Aachen during Petri Nets/ACSD 2019.
People who participate in the tutorial and, in particular, in its hands-on part (small project),
should have installed Eclipse EMT and the ePNK as discussed
below before the tutorial starts.
Overview |
|
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 have been 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 tutorial 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 tutorial 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 its components).
|
Preparation |
|
For the practical part, particpants of this tutorial should install Eclipse EMT (Eclipse with the
Eclipse Modeling Tools package preinstalled); Eclipse EMT can be downloaded from
https://www.eclipse.org/downloads/packages/release/2019-03/r/eclipse-modeling-tools
(note that you need to install the 64-bit version of Java to run Eclipse).
In this version of Eclipse, you should install the
ePNK as discussed in the
release notes of the
ePNK 1.2. You should install all features from the three categories:
"ePNK Features", "ePNK Experimental Features", and "HLPNG Simulator" (if you want, you can install
also the ECNO Tool features; but these are not needed for the practical part of the tutorial).
|
Schedule and Material |
|
- 900-1030
-
MBSE overview (01-PN-Course-MBSE.pdf)
- vision, idea, concepts
- technologies (overview)
Presentation of project(s) (05-PN-Course-Project.pdf)
- 1030-1100 Coffee break
- 1100-1230
-
Technology details
Modelling behaviour
- 1230-1330 Lunch break
- 1330-1500
-
Model-based technology in Petri nets (04-PN-Course-PNML-ePNK.pdf)
- PNML (overview of concepts)
- ePNK (overview and experiences)
- 1500-1530 Coffee break
- 1530-17xx
-
Hands-on work
(05-PN-Course-Project.pdf, 06-PN-Course-Project-Details.pdf)
This will be individual hands-on work on a small project, so you should have installed
Eclipse EMT and the ePNK as discussed above before
the start of the tutorial.
|
Further reading |
|
The tutorial will be pretty much self-contained, and the material tutorials is provided
via these web pages above.
Below, you will find some additional references. These might help to better understand the concepts
and ideas behind MBSE. Some of the online references, might be helpful in solving some problems you might
have during the work on your project (an intelligent use of search engines will also be a great help).
Books, Standards, and Articles
- Frank Budinsky, David Steinberg, Ed Merks, Raymond Ellersick, and Timothy J. Grose:
Eclipse Modeling Framework: A Developer's Guide.
Addison-Wesley Professional, 2nd edition, 2008
(see also http://safari.informit.com/9780321331885).
- Eric Clayberg and Dan Rubel:
Eclipse Plug-ins, Third Edition.
Addison-Wesley Professional, 3rd edition, 2008
(see also http://my.safaribooksonline.com/9780321574435).
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides:
Design Patterns: Elements of Reusable Object-Oriented Software.
1st edition, Addison-Wesley Professional Computing Series, 1995.
(see also
Amazon Online Reader).
- Richard C. Gronback:
Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit.
Addison-Wesley Professional, 2009
(see also http://my.safaribooksonline.com/9780321591364).
- Ekkart Kindler:
Model-based Software Engineering and Process-Aware Information Systems.
In: K. Jensen and W.v.d. Aalst (eds.): Transactions on Petri Nets and Other Models of Concurrency II:
Special Issue on Concurrency in Process-Aware Information Systems,
Springer, LNCS 5460, pp. 27-45, 2009.
- Ekkart Kindler:
Coordinating Interactions: The Event Coordination Notation.
DTU Compute Technical Report 2014-05,
Technical University of Denmark, DTU Compute, May 2014.
- OMG:
Meta Object Facility (MOF) Core Specification,
Version 2.0, formal/06-01-01, January 2006.
Online information
- ePNK: ePNK Homepage ,
ePNK 1.2 Manual (draft).
- PNML: PNML Homepage,
L.M. Hillah and E. Kindler and F. Kordon and L. Petrucci and N. Trèves:
The Petri Net Markup Language and ISO/IEC 15909-2, CPN Workshop 2009 .
- EMF: EMF Homepage,
EMF basic tutorial (Lars Vogel),
Links to tutorials, documentation and articles.
- JET: Eclipse JET (main page),
JET Tutorial 1,
JET Tutorial 2.
- GMF: GMF (GMP) Homepage,
Nice tutorials dealing with typical GMF problems,
"Official" GMF Tips (F&Q).
|
|