-
Notifications
You must be signed in to change notification settings - Fork 0
Home
As Petri nets become large and complex, they become difficult to maintain and test. It should be possible to break a problem into smaller problems, and model each smaller problem with a smaller Petri net. It should be possible to implement and test changes in a small Petri net in at least partial isolation. It should also be possible to test a small Petri net as part of testing a composite Petri net in which it participates.
The current system works in isolation. The state of a Petri net cannot be viewed or modified externally. A Petri net cannot be used to drive the behavior of some other system.
The current system depends on the user interface for execution of a Petri net. The separation of logic between the core and GUI projects introduces the potential for Petri net execution independent of the GUI.
The design described below, is largely based on work by researchers and graduate students at the International Computer Sciences Institute (ICSI), work which was itself based on PIPE v2. Credit for those ideas belongs to Srini Narayanan, Jerry Feldman, Leon Barrett, and Malte Schilling.
The initial implementation of the design is available through the hierarchical-nets branch of PIPECore. There is as yet no user interface support for the new functions, but a compatible version of PIPE is available here.
This initial implementation would not have been possible without the thorough refactoring of PIPE done last year by Sarah Tattersall.