Check out this Petri Net modeler. It is pretty sweet! http://pipe2.sourceforge.net/
The old way of doing Concurrent programming is with shared memory and mutexes. You might just get sucked into the following design pattern book. Concurrent Programming in Java(TM): Design Principles and Pattern by Doug Lea If you look at Scala, Erlang, Haskell, they all support the concept of message passing. It seems to me a good way to analyze programs is to model them with a Petri Net. The resulting model can be analyzed for liveness, reachability, deadlock, circular conditions, and all the non-functional requirements. Scala Actors http://java.dzone.com/articles/scala-threadless-concurrent Erlang http://www.erlang.org/doc/getting_started/conc_prog.html Haskell http://bartoszmilewski.wordpress.com/2009/02/26/message-passing-atoms-mvars/ brian -- Brian Lavender http://www.brie.com/brian/ "Program testing can be used to show the presence of bugs, but never to show their absence!" Professor Edsger Dijkstra 1972 Turing award recipient _______________________________________________ vox-tech mailing list [email protected] http://lists.lugod.org/mailman/listinfo/vox-tech
