有人有使用快速序列图编辑器的经验吗?即时显示+文本源代码+Java实现的组合对我来说很有吸引力,但我不太清楚如何让语法做我想要的,文档也不是很清楚。这是一个人为的例子:
al:Actor
bill:Actor
atm:ATM[a]
bank:Bank[a]
al:atm.give me $10
atm:al has $3=bank.check al's account balance
al:atm.what time is it
atm:al.it's now
atm:al.stop bugging me
atm:al.you only have $3
atm:bill.and don't you open your mouth
bill:atm.who asked you?
bill:atm.give me $20
al:atm.hey, I'm not finished!
atm:bill has $765=bank.check bill's account balance
atm:yes I'm sure, bill has $765=bank.hmm are you sure?
atm:bill.here's $20, now go away
atm:great, he's a cool dude=bank.I just gave Bill $20
al:atm.what about my $10?
atm:al.read my lips: you only have $3
以下是 QSDE 在单线程模式下的结果:
在多线程模式下:
我想我不清楚这些垂直条的开始/结束是什么。我有一个单线程的情况,但是涉及到状态,并且所有的消息都是异步的。我想这意味着我应该使用一个外部对象来表示该状态及其生命周期。我想要的是一个时间线来表示消息序列
- al:atm.give me $10
- atm:bank.check al的账户余额
- 银行:atm.al 有 3 美元
- 自动取款机:al.你只有 3 美元
和另一个时间线来表示消息序列
- 账单:atm。给我 20 美元
- atm:bank.check bill 的账户余额
- 银行:atm.bill 有 765 美元
- atm:bank.hmm 你确定吗?
- 银行:atm。是的,我确定,账单有 765 美元
- atm:bill.这是 20 美元,现在走开
- 自动取款机:银行。我刚给比尔 20 美元
- 银行:atm.great,他是个很酷的家伙
其他“俏皮话”代表我现在不关心的其他杂项信息。
有没有办法用 QSDE 做到这一点?