作者hanshen (呵呵呵呵呵呵)
看板CSSE
标题[请益] UML 2.0的activity diagram 画回圈
时间Fri Jan 9 01:12:07 2009
小弟昨天下午有问过, 後来以为会了, 就删了文.
刚才看了一个朋友说的, 决定还是来问一下....
pseudo code 是:
action1;
while (i > 0)
{
action2;
}
------------------------
-----------> end state
|
╭────╮ | ╭────╮
| Action1| ----->◇---> | Action2|
╰────╯ ^ ╰────╯
| |
|---------- |
-------------------------------------------------
------------------------->◇---->end state
| ^
╭────╮ | ╭────╮ |
| Action1| -----> ◇--> | Action2| --->◇--
╰────╯ ╰────╯ |
^ |
|------------
--------------------------------------------------
上图是我觉得应该可以的, UML 1.x 也是如此画;
现在看到教 UML 2.0 的书上说 branch 之後要 merge,
为了避免画出数支branch同时指到下一个 action 的情形
(代表 该 action 要等到所有branch都执行到才会执行)
第二个画法是有人建议的, 人家说, 最左边的 decision 配最右边的 merge,
接在action2 之後的方块就作回圈的判断.
这个说法是否正确呢?
如果 decision 一定要配合 merge, 为何那回圈用的 decision 後面不用 merge?
另外, Action 2 被两个箭头指到, 是否要等到两边都有info传入才会继续执行?
不知有没有前辈先进能帮小弟解惑? 先谢谢了.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.49.24
1F:→ hanshen:以及是否有规定, 方块图示一定只能一进多出(decision), 01/09 09:19
2F:→ hanshen:或是 多进一出 (merge), 像第一图 二进二出 已不被允许? 01/09 09:19
3F:推 tinlans:两个画法都不行,action 的 input 都要到才会做。 01/22 22:49
4F:推 tinlans:上面打错,是第二个不行;另外二进二出的 decision 是可以 01/22 22:52
5F:→ tinlans:的,UML 2.1.2 Superstructure Sepc 就有那种范例。 01/22 22:52
6F:→ hanshen:谢谢. 01/28 00:31