Modelling Local and Global Behaviour: Petri Nets and Event Coordination
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.
KeywordsModel-based Software Engineering Local and global behaviour modelling Event coordination Petri nets Code generation
Unable to display preview. Download preview PDF.
- 1.OMG: MDA guide (2003), http://www.omg.org/cgi-bin/doc?omg/03-06-01
- 2.Kindler, E.: Model-based software engineering: The challenges of modelling behaviour. In: Aksit, M., Kindler, E., Roubtsova, E., McNeile, A. (eds.) Proceedings of the Second Workshop on Behavioural Modelling - Foundations and Application, BM-FA 2010, pp. 51–66 (2010)Google Scholar
- 4.Kindler, E., Schmelter, D.: Aspect-oriented modelling from a different angle: Modelling domains with aspects. In: 12th International Workshop on Aspect-Oriented Modeling (2008)Google Scholar
- 5.Kindler, E.: Integrating behaviour in software models: An event coordination notation – concepts and prototype. In: Proceedings of the Third Workshop on Behavioural Modelling - Foundations and Application, BM 2011 (2011)Google Scholar
- 6.Reisig, W.: Petri Nets. EATCS Monographs on Theoretical Computer Science, vol. 4. Springer (1985)Google Scholar
- 9.Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.J.: Eclipse Modeling Framework, 2nd edn. The Eclipse Series. Addison-Wesley (2006)Google Scholar
- 10.Harel, D., Marelly, R.: Come let’s play: Scenario-based programming using LSCs and the Play-engine. Springer (2003)Google Scholar
- 11.Kindler, E.: The Event Coordination Notation: Execution engine and programming framework. In: Fourth Workshop on Behavioural Modelling – Foundations and Application, BM-FA 2012, ECMFA 2012 Joint Proceedings of Co-located Events, pp. 143–157 (2012)Google Scholar
- 12.Axenath, B., Kindler, E., Rubin, V.: An open and formalism independent meta-model for business processes. In: Kindler, E., Nüttgens, M. (eds.) Workshop on Business Process Reference Models 2005, BPRM 2005, Satellite Event of the Third International Conference on Business Process Management, pp. 45–59 (2005)Google Scholar
- 16.Kummer, O.: A Petri net view on synchronous channels. Petri Net Newsletter 56, 7–11 (1999)Google Scholar
- 19.Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall (1985)Google Scholar
- 20.Milner, R.: Communication and Concurrency. International Series in Computer Science. Prentice Hall (1989)Google Scholar
- 21.Berry, G., Boudol, G.: The chemical abstract machine. In: POPL 1990, pp. 81–94 (1990)Google Scholar
- 22.Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes (Parts I & II). Information and Computation 100(1), 1–40, 41–77 (1992)Google Scholar
- 23.Basu, A., Bozga, M., Sifakis, J.: Modeling heterogeneous real-time components in BIP. In: Fourth IEEE International Conference on Software Enigneering and Formal Methods, pp. 3–12. IEEE Computer Society (2006)Google Scholar
- 24.Clarke, S., Baniassad, E.: Aspect-oriented analysis and design: The Theme approach. Addison-Wesley (2005)Google Scholar
- 25.Nowak, L.: Aspect-oriented modelling of behaviour – imlementation of an execution engine based on MoDowA. Master’s thesis, DTU Informatics (2009)Google Scholar
- 26.Brichau, J., Haupt, M.: Survey of aspect-oriented languages and execution models. Technical Report AOSD-Europe-VUB-01, AOSD-Europe (2005)Google Scholar
- 27.Chitchyan, R., Rashid, A., Sawyer, P., Garcia, A., Alarcon, M.P., Bakker, J., Tekinerdogan, B., Clarke, S., Jackson, A.: Survey of aspect-oriented analysis and design approaches. Technical Report AOSD-Europe-ULANC-9, AOSD-Europe (2005)Google Scholar
- 28.Harrison, W., Ossher, H.: Subject-oriented programming (a critique of pure objects). In: OOPSLA 1993, pp. 411–428. ACM (1993)Google Scholar
- 31.Mellor, S.J., Balcer, M.J.: Executable UML: A Foundation for Model-driven Architecture. Addison-Wesley (2002)Google Scholar