JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Software Engineering » UML  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
話題被移動
該話題已被移動 - worookie , 2006-10-20 18:22
如果您尚不清楚該話題被移動的原因,請參考論壇規則以及本版公告或者聯系本版版主。
本主題所含的標籤
無標籤
作者 如何在 sequence diagram 裡畫 iteration [精華]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2003-09-11 07:22 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我想好好用 UML 來表達一個 sequence diagram 裡的 iteration, 但是我總覺得我畫出來的東西怎麼畫都不對. 希望有高人能指點一下關鍵的地方.

這裡舉個例子好了:
有三個 class/object: MyTest, MyMoney, and MyAccount
其中 myMoney 有 10 個 myAccount,
每一個 myAccount 都有一個數值,
當用 MyTest 呼叫 MyMoney 的 getTotalBalance() 時,
MyMoney 就會去對他的 10 個 MyAccount's 分別呼叫 calcBalance(),
然後累加得出總值是多少.

程式如下.

對此例子, 不知有沒有人會畫正確的 UML Sequence Diagram 的?
謝謝.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.util.*;
 
public class MyTest {
 
    public static void main(String args[]) {
        MyMoney myMoney = new MyMoney();
        int inTotalBalance = myMoney.getTotalBalance();
    }
 
}
 
class MyMoney {
    Vector veAccount;
    MyMoney() {
        veAccount = new Vector();
        for (int i=0; i<10; i++) {
            veAccount.add(new MyAccount());
        }
    }
    int getTotalBalance() {
        int totalBalance = 0;
        int totalSize = veAccount.size();
        for (int i=0; i<totalSize; i++) {
            MyAccount myAccountIterate = (MyAccount) veAccount.get(i);
            int inBalanceIterate = myAccountIterate.calcBalance();
            totalBalance += inBalanceIterate;
        }
        return totalBalance;
    }
}
 
class MyAccount {
    int calcBalance() {
        // 假設經過複雜的運算回傳一個值
        return 100;
    }
 
}


底下是我所能想到最接近的表達方式,
還請諸位先進不吝指正, 謝謝


worookie edited on 2003-09-12 12:09
reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:worookie]
ymshin





發文: 277
積分: 4
於 2003-09-11 19:04 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我是來增加問題的...

MyTest 不是應該先 generate 一個 MyMoney 的實體操作嗎? getTotalBalanse() 是 MyMoney 的 method, 應由 MyMoney 實體呼叫才對, 由 MyTest 直接使用覺得怪怪低...


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:worookie]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-09-11 23:06 user profilesend a private message to usersend email to Biologicreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
worookie wrote:
我想好好用 UML 來表達一個 sequence diagram 裡的 iteration, 但是我總覺得我畫出來的東西怎麼畫都不對. 希望有高人能指點一下關鍵的地方.

這裡舉個例子好了:
有三個 class/object: MyTest, MyMoney, and MyAccount
其中 myMoney 有 10 個 myAccount,
每一個 myAccount 都有一個數值,
當用 MyTest 呼叫 MyMoney 的 getTotalBalance() 時,
MyMoney 就會去對他的 10 個 MyAccount's 分別呼叫 calcBalance(),
然後累加得出總值是多少.

程式如下.

對此例子, 不知有沒有人會畫正確的 UML Sequence Diagram 的?
謝謝.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.util.*;
 
public class MyTest {
 
    public static void main(String args[]) {
        MyMoney myMoney = new MyMoney();
        int inTotalBalance = myMoney.getTotalBalance();
    }
 
}
 
class MyMoney {
    Vector veAccount;
    MyMoney() {
        veAccount = new Vector();
        for (int i=0; i<10; i++) {
            veAccount.add(new MyAccount());
        }
    }
    int getTotalBalance() {
        int totalBalance = 0;
        int totalSize = veAccount.size();
        for (int i=0; i<totalSize; i++) {
            MyAccount myAccountIterate = (MyAccount) veAccount.get(i);
            int inBalanceIterate = myAccountIterate.calcBalance();
            totalBalance += inBalanceIterate;
        }
        return totalBalance;
    }
}
 
class MyAccount {
    int calcBalance() {
        // 假設經過複雜的運算回傳一個值
        return 100;
    }
 
}


底下是我所能想到最接近的表達方式,
還請諸位先進不吝指正, 謝謝


Sequence Diagram 是 Coding diagram 嗎?
我想你何不先考慮一下這個問題...


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:Biologic]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2003-09-12 00:35 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Biologic wrote:
Sequence Diagram 是 Coding diagram 嗎?
我想你何不先考慮一下這個問題...


UML 要表達的對象沒有限制必須是什麼.
我舉了一個 coding 的實際生活上的例子,
想要用 UML 的 sequence diagram 來表達他的意思,
這樣還要考慮什麼呢?


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:worookie]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2003-09-12 00:48 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
程式中沒有 MyTest 的實體, 是我的疏忽,
不過這應該不關痛養


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:worookie]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-09-12 09:52 user profilesend a private message to usersend email to Biologicreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
worookie wrote:
UML 要表達的對象沒有限制必須是什麼.
我舉了一個 coding 的實際生活上的例子,
想要用 UML 的 sequence diagram 來表達他的意思,
這樣還要考慮什麼呢?


我覺得你要的太 detail 了. 你何不考慮 Activity Diagram.


Biologic edited on 2003-09-12 10:27
reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:Biologic]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-09-12 10:26 user profilesend a private message to usersend email to Biologicreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Biologic wrote:
我覺得你要的太 detail 了. 你何不考慮 Activity Diagram.


是可以 不過...並不是很懂如何時做....
1. 文字 notation.
2. 再畫一個 (if with concurrency)

OMG Unified Modeling Language Specification; v1.5

P3-113

Variation: Iteration
A connected set of arrows may be enclosed and marked as an iteration. For a
generic sequence diagram, the iteration indicates that the dispatch of a set of stimuli
can occur multiple times. For a procedure, the continuation condition for the
iteration may be specified at the bottom of the iteration. If there is concurrency, then
some arrows in the diagram may be part of the iteration and others may be single
execution. It is desirable to arrange a diagram so that the arrows in the iteration can
be enclosed together easily.


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:worookie]
ymshin





發文: 277
積分: 4
於 2003-09-12 10:44 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
worookie wrote:
程式中沒有 MyTest 的實體, 是我的疏忽,
不過這應該不關痛養


我覺得有差別耶, sequence diageam 是表示互動關係, MyTest 不先 create 一個 MyMoney object 不能直接呼叫 getTotalBalance(),(依照 MyTest 裡的寫法順序) 這裡邏輯怪怪的, MyTest 可以當 controller object or actor(也是當 object 用), 應該算是實體, 總要有一個 object invoke MyMoney 才能開始整個 work flow, 同理 MyMoney 和 MyAccount 間的關係也是如此. just my two cents. Shy


ymshin edited on 2003-09-12 10:47
reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:ymshin]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2003-09-12 11:17 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Post is deleted

worookie edited on 2003-09-12 14:14
reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:worookie]
ymshin





發文: 277
積分: 4
於 2003-09-12 11:35 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
worookie wrote:
你為什麼接連著一直要說我沒有 create 一個 MyMoney object, 真搞不懂你.
程式中第四行:
1
MyMoney myMoney = new MyMoney();



我指的是 sequence 圖中沒有先 create or init object 用. (不是要看圖的嗎? Stupid)
例如以下這個圖, (from 點空間的譯文)

http://www.dotspace.twmail.net/umlcolumn/articles/umlwriting/UMLBasics/UMLBasics.htm
對這個圖有詳細解釋; 其它不以 classes 為主題的 sequence diagram case study 也都得先 init or invoke object, 像是使用者先得到一個 gui 元件, 再由 gui 元件去啟動其它動作, 最後傳回結果給使用者. 如果不明白表示的話, 畫出來的 sequence diagram 可能容易產生誤解或是看不懂. 我覺得動態圖中引發動作的動作者是誰很重要, 也有可能是我對 sequence diagram 的理解有誤差.


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:ymshin]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2003-09-12 11:56 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ymshin wrote:
我指的是 sequence 圖中沒有先 create or init object 用. (不是要看圖的嗎? Stupid)
例如以下這個圖, (from 點空間的譯文)
http://www.dotspace.twmail.net/umlcolumn/articles/umlwriting/UMLBasics/UMLBasics.htm
對這個圖有詳細解釋; 其它不以 classes 為主題的 sequence diagram case study 也都得先 init or invoke object, 像是使用者先得到一個 gui 元件, 再由 gui 元件去啟動其它動作, 最後傳回結果給使用者. 如果不明白表示的話, 畫出來的 sequence diagram 可能容易產生誤解或是看不懂. 我覺得動態圖中引發動作的動作者是誰很重要, 也有可能是我對 sequence diagram 的理解有誤差.


我終於搞懂你的意思了
由於我主要要問的是 iteration 部分
所以我的圖只專注在 iteration 那兒
題目也講明了是 iteration
你可以發現其他不相關部分的 UML 圖我全都省略了
如果你要我把全部的圖全畫出來的話, 那實在是太辛苦了,
而且不相關的細節全畫出來反而模胡了要討論的東西的焦點.
等你把所有細節都畫好後,
再把你的所有的圖的右邊最後面那小小一部份圖擷取出來,
就正好是我一開頭畫的東西.


worookie edited on 2003-09-12 12:07
reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:ymshin]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-09-12 11:57 user profilesend a private message to usersend email to Biologicreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ymshin wrote:
我指的是 sequence 圖中沒有先 create or init object 用. (不是要看圖的嗎? Stupid)
例如以下這個圖, (from 點空間的譯文)
http://www.dotspace.twmail.net/umlcolumn/articles/umlwriting/UMLBasics/UMLBasics.htm
對這個圖有詳細解釋; 其它不以 classes 為主題的 sequence diagram case study 也都得先 init or invoke object, 像是使用者先得到一個 gui 元件, 再由 gui 元件去啟動其它動作, 最後傳回結果給使用者. 如果不明白表示的話, 畫出來的 sequence diagram 可能容易產生誤解或是看不懂. 我覺得動態圖中引發動作的動作者是誰很重要, 也有可能是我對 sequence diagram 的理解有誤差.


我覺得你要求的很 coding diagram. worookie 比較像 sequence diagram.

剛剛看了一下 worookie 的 diagram, 我覺得他畫的有達到他要的 iteraction.

我覺得重點是 在整個 sequence 中 一定會發生 create 的 activity 嗎? 說不一定早在進入之前已經被 initialized 了.... 只是 worookie(when as a programmer) 認為有需要才加入 new statement.... 另外這只是測試用.... 你要求太多了

個人想法: 請 designer 不要做 programmer 的工作, 不然 programmer 可以等著被開除了.


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:Biologic]
ymshin





發文: 277
積分: 4
於 2003-09-12 12:10 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Biologic wrote:
我覺得你要求的很 coding diagram. worookie 比較像 sequence diagram.

剛剛看了一下 worookie 的 diagram, 我覺得他畫的有達到他要的 iteraction.

我覺得重點是 在整個 sequence 中 一定會發生 create 的 activity 嗎? 說不一定早在進入之前已經被 initialized 了.... 只是 worookie(when as a programmer) 認為有需要才加入 new statement.... 另外這只是測試用.... 你要求太多了

個人想法: 請 designer 不要做 programmer 的工作, 不然 programmer 可以等著被開除了.


可能是我太龜了; 如果把 class 想成一個系統黑盒子的話這部分我就沒有疑問了(話說回來 sequence diagram 沒有規定使用範圍, 端看用途); 不過還是覺得後面的圖怪怪的...嗯...再想一下...
from: http://www.jirow.com/pcll/analysis/pdf/SAseq161.pdf
http://www.jirow.com/pcll/analysis/pdf/SAseq161.pdf


ymshin edited on 2003-09-12 12:19
reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:worookie]
ymshin





發文: 277
積分: 4
於 2003-09-12 12:30 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
worookie wrote:
我終於搞懂你的意思了
由於我主要要問的是 iteration 部分
所以我的圖只專注在 iteration 那兒
題目也講明了是 iteration
你可以發現其他不相關部分的 UML 圖我全都省略了
如果你要我把全部的圖全畫出來的話, 那實在是太辛苦了,
而且不相關的細節全畫出來反而模胡了要討論的東西的焦點.
等你把所有細節都畫好後,
再把你的所有的圖的右邊最後面那小小一部份圖擷取出來,
就正好是我一開頭畫的東西.


謝謝解釋, 是我自己弄擬了意思有誤解, 不好意思.

MyMoney 呼叫自己的部分覺得怪怪的, 因為不是呼叫另外一個 method 做事. 又, 不清楚呼叫自身 method 時加不加一個小方塊有無差別(就是長條 bar 上多一塊凸出來的小方塊, 就是嵌在 bar 上的方塊)...我找找看有沒有現成的 case study 圖好了.


ymshin edited on 2003-09-12 12:32
reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:ymshin]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-09-12 12:39 user profilesend a private message to usersend email to Biologicreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ymshin wrote:
可能是我太龜了; 如果把 class 想成一個系統黑盒子的話這部分我就沒有疑問了(話說回來 sequence diagram 沒有規定使用範圍, 端看用途); 不過還是覺得後面的圖怪怪的...嗯...再想一下...
from: http://www.jirow.com/pcll/analysis/pdf/SAseq161.pdf


什麼問題? real time 問題?


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:ymshin]
ymshin





發文: 277
積分: 4
於 2003-09-12 12:52 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
真是夭壽! 找半天只找到個德文網頁畫的比較清楚. 幸好圖是英文解釋流程. wo 大的 iteration 畫法是對的.

http://www-user.tu-chemnitz.de/~chu/evs/html/kap2/afs2-8.htm
降偷連希望不會被抓到... 結論, 呼叫自己的 method 小方塊是要的...


ymshin edited on 2003-09-12 13:19
reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:Biologic]
ymshin





發文: 277
積分: 4
於 2003-09-12 12:56 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Biologic wrote:
什麼問題? real time 問題?


macro vs micro.


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:ymshin]
Forth



版主

發文: 676
積分: 8
於 2003-09-12 13:08 user profilesend a private message to usersend email to Forthreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
直接從code產生出來的圖真是神秘啊


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:Forth]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-09-12 13:36 user profilesend a private message to usersend email to Biologicreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Forth wrote:
直接從code產生出來的圖真是神秘啊


我比較喜歡 ymshin 貼出來的方式...
你的已經利用某種語言... 不夠 generic...


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:ymshin]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-09-12 13:38 user profilesend a private message to usersend email to Biologicreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ymshin wrote:
macro vs micro.


不懂...
你是說 我的太 macro 你的太 micro...?
雖然很多女生也都這麼說....


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:worookie]
ymshin





發文: 277
積分: 4
於 2003-09-12 13:46 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
真好. 現在支援 iteration 的軟體好像不多, 是什麼樣的神秘工具呢?

我是大白痴把新版的 iteration 方塊 和 self message 方塊弄混了(這部分是自言自語, nonsense to others). 請問 * 的 iteration 用法是哪一版的 spec. 呢?


ymshin edited on 2003-09-12 14:06
reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:Biologic]
ymshin





發文: 277
積分: 4
於 2003-09-12 13:49 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Biologic wrote:
不懂...
你是說 我的太 macro 你的太 micro...?
雖然很多女生也都這麼說....


...你說的也沒錯啦, 不過我指的是看圖的角度.


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:Biologic]
ymshin





發文: 277
積分: 4
於 2003-09-12 13:55 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Biologic wrote:
我比較喜歡 ymshin 貼出來的方式...
你的已經利用某種語言... 不夠 generic...


咦? Forth 生的也是標準圖呀.


reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:ymshin]
Forth



版主

發文: 676
積分: 8
於 2003-09-12 13:58 user profilesend a private message to usersend email to Forthreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我不會生,是TCC生的,而且,設計階段寫成那樣很悲苦

reply to postreply to post
作者 Re:如何在 sequence diagram 裡畫 iteration [Re:worookie]
ymshin





發文: 277
積分: 4
於 2003-09-12 14:01 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
說的馬是, 比 class diagram 還要纖細...

reply to postreply to post
go to first page go to previous page  1   2   3  go to next page go to last page
» JWorld@TW »  Software Engineering » UML

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8