有没有建模/模拟软件并发性的工具?
是否有一个好的工具可以以图形方式对应用程序并发/锁定方案进行建模并可以模拟某些方面?
我知道 Petri 网或多或少可以用于此目的,但我不知道可以设计和模拟的良好 GUI 工具。
UML 是否可以以任何方式用于此类目的?
非常感谢任何好的链接。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
UML 活动图可以表示为 Petri 网(例如 参见本文)。不幸的是,我不知道有什么好的面向工业的工具来模拟 Petri 网或活动图(但是您可以轻松找到许多学术项目)。
您确定要模拟您的模型吗(通过模拟,我的意思是您实际上想坐下来看看您的 Perti 网络是如何执行的)?通常这种类型的分析适用于小型且简单的算法。在现实世界中,您可能希望对算法进行模型检查而不是模拟。我建议您检查SPIN(许多公司都使用它,例如西门子)。此外,我对 Alloy 和 棱镜。但如果您的重点是验证并行算法,我建议您首先考虑 SPIN。
编辑:我检查了一些模拟工具,我可以建议查看
1) http://sourceforge.net /projects/visual-petri/
2) http://www.renew.de/
3) http://www.winpesim.de/index.html
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
我怀疑这就是您正在寻找的东西,但我会投入我的两分钱:
在我的大学,在我们的并发软件系统课程中,我们使用一个名为 标记转换系统分析器 (LTSA)。它实际上是一种可以用来对系统行为进行建模的语言。
“代码”变成状态图和转换表。
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.
SPIN 是一种用于验证分布式系统的流行工具,但我认为它只是命令行。但在 Spin 网页上,有一个指向密切相关的 GUI 工具的链接,名为 GOAL< /a>
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
这是一个交互式 Java 小程序,可以设计并运行 Petri 网。
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.
你可以检查Petri Net Sim,来模拟普通/定时/彩色Petrinets,它带有一个漂亮的GUI实时显示 Petri Net 执行情况。
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.
尝试使用并发工具 LTSA。 Java 程序。 (标记为过渡系统分析器),用于模拟程序。您可以从以下位置下载:
http://www.doc.ic.ac.uk/ltsa/
但是使用时你必须要有耐心,可能需要几个小时才能学会如何使用它。在对 Java 程序进行建模时可能效果最好。
当然,使用 UML 模型总是好的:)
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 :)