Today, it is possible to generate major parts of a software system from models. Most of the generated code, however, concerns the structural parts of the software; the code that concerns the actual functionality or behaviour of the software system is often still programmed manually. In order to address this problem, we developed the notation of coordination diagrams, which allows us to define the global behaviour of a software system on top of existing class diagrams. One of the major objectives of coordination diagrams was to make it easy to integrate them and the code generated from them with existing structural models, with existing code, and with other behavioural models. Basically, coordination diagrams define how the local behaviour of the individual parts of the software is coordinated with each other. The main concepts of coordination diagrams and their semantics are stabilising now: We call it the Event Coordination Notation (ECNO). ECNO’s coordination diagrams define the global behaviour of a system only: they define how the local behaviour is coordinated and jointly executed in so-called interactions. In principle, ECNO is independent from a specific notation for modelling the local behaviour. For our experiments with ECNO, however, we implemented a simple modelling notation for the local behaviour, which is based on Petri nets: ECNO nets. Together, ECNO coordination diagrams and ECNO nets allow us to completely model a software system, and generate executable code for it. In this paper, we discuss the general idea of ECNO and of ECNO nets. ECNO nets are implemented as a Petri net type for the ePNK tool, together with a code generator that produces code that can be executed by the ECNO execution engine.
Lecture Notes in Computer Science, 2012, p. 71-93
Model-based Software Engineering; Local and global behaviour modelling; Event coordination; Petri nets; Code generation