The example -- workflow of the Dutch Justice Department -- was originally developed by Rudiger Valk and W.M.P. van der Aalst. The example is defined as follows.
When a criminal offense has happened and the police has a suspect, a record is made by an official. This is printed and sent to the secretary of the Justice Department. The information on the official record is verified by a secretary.
Meanwhile extra information about the history of the suspect and some data from the local government are supplied and completed by a second official.
When these activities are completed, an official examines the case and a prosecutor determines whether the suspect is summoned, charged or that the case is suspended.
A life of a case can be specified by a Petri net. It specifies operations which have to be done, together with their causality:
Cases are processed by a system. A system structure can be also described by a Petri net. It specifies actors and their interconection. Actors are capable of performing some operations on the cases (operation names are specified in the picture):
The cases are specified by an OOPN class Case. The operations are specified as synchronous ports:
The system structure is specified by an OOPN class Structure. Some actors (which are capable to perform several operations) are modeled by several alternative transitions:
Thanks to the syntactic sugar it is possible to specify such alternatives more straightforward way, by means of disjunction in transition guards. In this case, each actor is modeled by only one transition. It better corresponds to starting PN model of the system structure:
Note that only the transitions which invoke executable opeation can be executed. This means that in this example each case controls its path through the system although it is a passive object.