English 中文(简体)
Is there a tool to model/simulate software concurrency?
原标题:

Is there a good tool out there that can model an application concurrency/locking scheme in a graphical way and that can simulate some of the aspects?

I know that Petri nets can be used for that more or less, but I don t know a good GUI tool that can design and simulate.

Is UML in any way usable for such purposes?

Any good links are very appreciated.

最佳回答

UML Activity Diagrams can be expressed as Petri nets (e.g. see this paper). Unfortunately I don t know any good industrial oriented tools for simulation of Petri Nets or Activity Diagram (but there are many academic projects which you can easily find).

Are you sure that you want to simulate your model (by simulation I mean that you actually want to sit and look how your Perti net is being executed)? Usually this type of analysis is applicable for small and simple algorithms. In real world situation you probably would like to do model checking of your algorithm rather than simulation. I would recommend you to check SPIN (used by many companies, e.g. Siemens). Also I have a positive experience with Alloy and Prism. But if your focus is on verifying parallel algorithms I would suggest you to consider SPIN first.

Edit: I checked some tools for simulation and I can advise looking at

1) http://sourceforge.net/projects/visual-petri/

2) http://www.renew.de/

3) http://www.winpesim.de/index.html

问题回答

SPIN is a popular tool for verification of distributed systems but is command line only I think. But on the Spin webpage there is a link to a closely related GUI tool called GOAL

I m doubt this is what you are looking for, but I ll throw in my two cents:

At my university, in our class on concurrent software systems, we use a tool called Labelled Transition System Analyser (LTSA). It s actually a language that you can use to model the behavior of a system.

The "code" is turned into a state diagram and a transition table.

Here is an interactive Java applet which can design and run a Petri net.

It s been a long time since I ve looked at it, but it sounds like Ptolemy would be a good fit.

You can check Petri Net Sim, to simulate common/timed/colored Petrinets, it comes with a nice GUI that displays Petri Net execution in real time.

Try using the concurrency tool, LTSA. Java program. (Labelled Transition System Analyser), to simulate programs. You can download it from:

http://www.doc.ic.ac.uk/ltsa/

But you have to be patient while using it, it can take a couple of hours to learn how to use it. Probably works best while modeling Java programs.

And it s always good to use UML models of course :)





相关问题
Is there a tool to model/simulate software concurrency?

Is there a good tool out there that can model an application concurrency/locking scheme in a graphical way and that can simulate some of the aspects? I know that Petri nets can be used for that more ...

Django models generic modelling

Say, there is a Page that has many blocks associated with it. And each block needs custom rendering, saving and data. Simplest it is, from the code point of view, to define different classes (hence, ...

Modeling by example: by Thomas Funkhouser

currently Im working on a portion on this research paper "modeling by example" Have tonnes of problems now.So if anyone has knowledge on this paper, help is badly needed here. I am using java opengl ...

3d modeling for data structures

I m looking for a 3D modeling/animation software. Honestly, I don t know if this is something achievable - but what I want to have is some kind of visual representation of various ideas. Speaking in ...

VHDL - When does a process() run for the first time?

Consider : process(a) According to the text i have : A process is first entered at the time of simulation, at which time it is executed until it suspends itself due to a wait statement or a ...

UML Diagram to Model API

I need to create a diagram to document a RESTFul API that build, which UML diagram should I use? Thanks in advance,

热门标签