Teaching Coloured Petri Nets- A Gentle Introduction to Formal Methods in a Distributed Systems Course

This paper is about the two compulsory project assignments set to the students in an undergraduate course on distributed systems. In the first assignment the students design and validate a non-trivial layered protocol by means of Coloured Petri Nets, and in the second they implement the designed protocol in an object-oriented language. From the two assignments the students experience that Coloured Petri Nets, as a formal method, are useful for designing and analysing distributed systems. In the course students are introduced to basic concepts and techniques for distributed systems, and it is explained that such systems are often too complex to manage without using formal methods. In this paper we also report on our experience with teaching the course and describe the didactic methods applied. Based on the obtained experience we conclude that the combination of distributed systems and Coloured Petri Nets is fruitful — the two areas complement each other. Although our experiences origin in Coloured Petri Nets, we believe that many of our observations hold for other formal methods as well.

[1]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[2]  Kurt Jensen,et al.  Coloured Petri nets (2nd ed.): basic concepts, analysis methods and practical use: volume 1 , 1996 .

[3]  Wilfried Brauer Proceedings of the Advanced Course on General Net Theory of Processes and Systems: Net Theory and Applications , 1979 .

[4]  Peter Huber,et al.  Design/CPN?: A Reference Manual , 1992 .

[5]  Lawrence C. Paulson,et al.  ML for the working programmer (2. ed.) , 1996 .

[6]  Kurt Jensen,et al.  Coloured Petri Nets: Basic Concepts, Analysis Methods and Practical Use. Vol. 2, Analysis Methods , 1992 .

[7]  J. Davenport Editor , 1960 .

[8]  Randall H. Trigg,et al.  Design issues for a Dexter-based hypermedia system , 1994, CACM.

[9]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[10]  Chris Reade,et al.  ML for the Working Programmer (2nd edition) by L. C. Paulson, Cambridge University Press, 1996. A Practical Course in Functional Programming Using Standard ML by R. Bosworth, McGraw Hill, 1996. , 1997, Journal of Functional Programming.

[11]  Wilfried Brauer,et al.  Net Theory and Applications , 1980, Lecture Notes in Computer Science.

[12]  Matthias Jantzen Structured Representation of Knowledge by Petri Nets as an Aid for Teaching and Research , 1979, Advanced Course: Net Theory and Applications.

[13]  Kenneth P. Birman,et al.  Reliable broadcast protocols , 1990 .