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

» JWorld@TW » Software Engineering  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
話題被移動
該話題已被移動 - morchory , 2003-07-12 16:48
如果您尚不清楚該話題被移動的原因,請參考論壇規則以及本版公告或者聯系本版版主。
本主題所含的標籤
無標籤
作者 UML Class Diagram 的問題 [精華]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2003-07-12 06:25 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
有 3 個 classes:
ClassA, ClassB, ClassC
其之間的關係如下:
ClassA [1]---[1..*] ClassB
ClassB [1]---[1] ClassC
ClassC [1]---[1] ClassA
換句話說:
一個 A 有一個 C 及很多個 B
B 和 C 是一對一的關係

現在我要加上一個 constraint
使得給定任一個 A, A 的任一個 B 的 C, 一定是 A 它自己的 C.
請問這樣的 constraint 要如何在 UML class diagram 中表達呢?
謝謝

註: 其實, 這 3 個 classes 只要 2 個 relationships (associations) 即可表達完畢其間的關聯; 如果用 3 個 relationships 來表達的話, 有一個 relationship 就變多餘 (redundant) 了, 所以需再加上一個 constraint 來抵銷它了.
這部分有關 redundancy 我們暫時不要去管它吧.


worookie edited on 2003-07-15 12:45
reply to postreply to post
作者 Re:UML Class Diagram 的問題 [Re:worookie]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-07-12 08:42 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 / Design Patterns 版
就先把這問題 po 在我這版嘍

有 3 個 classes:
ClassA, ClassB, ClassC
其之間的關係如下:
ClassA [1]---[1..*] ClassB
ClassB [1]---[1] ClassC
ClassC [1]---[1] ClassA
換句話說:
一個 A 有一個 C 及很多個 B
B 和 C 是一對一的關係

現在我要加上一個 constraint
使得給定任一個 A, A 的任一個 B 的 C, 一定是 A 它自己的 C.
請問這樣的 constraint 要如何在 UML class diagram 中表達呢?
謝謝

註: 其實, 這 3 個 classes 只要 2 個 relationships (associations) 即可表達完畢其間的關聯; 如果用 3 個 relationships 來表達的話, 有一個 relationship 就變多餘 (redundant) 了, 所以需再加上一個 constraint 來抵銷它了.
這部分有關 redundancy 我們暫時不要去管它吧.


UML mannul, Object Constraint Language Specification (Section 6)

寫法一:
context ClassA inv:
self.ClassB.ClassC->foAll(c: ClassC | self.ClassC=s)

請問你們公司名稱是?? 我也想去面試~~


Biologic edited on 2003-07-12 11:13
reply to postreply to post
作者 Re:UML Class Diagram 的問題 [Re:Biologic]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2003-07-12 12:47 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:
UML mannul, Object Constraint Language Specification (Section 6)

寫法一:
context ClassA inv:
self.ClassB.ClassC->foAll(c: ClassC | self.ClassC=s)

感恩


請問你們公司名稱是?? 我也想去面試~~

先等等 我們還沒裝好防彈玻璃耶


reply to postreply to post
作者 Re:UML Class Diagram 的問題 [Re:worookie]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2003-07-15 08:34 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
研究了兩天 終於搞董了 寫成如下即可:

context ClassA inv:
self.classB -> forAll( classC = self.classC )

另外
我下載了 poseidon 來用
發現他目前尚不支援在 diagram 上顯示 {constraints}
真可惜


reply to postreply to post
作者 Re:UML Class Diagram 的問題 [Re:worookie]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-07-15 09:02 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
問題:

context ClassA inv:
self.classB -> forAll( classC = self.classC )
----
classC, 誰的 classC?
self.classC, self 是誰?


reply to postreply to post
作者 Re:UML Class Diagram 的問題 [Re:Biologic]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2003-07-15 12:36 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:
問題:

context ClassA inv:
self.classB -> forAll( classC = self.classC )
----
classC, 誰的 classC?

哈哈 終於輪到我回答 Biologic 大大了
classC 沒有指定是誰的時, 就是指: self.classB 中的 classB 的 classC


self.classC, self 是誰?


self 一定是 "context ClassA" 中的 ClassA


reply to postreply to post
作者 Re:UML Class Diagram 的問題 [Re:worookie]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-07-15 12:55 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:
哈哈 終於輪到我回答 Biologic 大大了
classC 沒有指定是誰的時, 就是指: self.classB 中的 classB 的 classC

self 一定是 "context ClassA" 中的 ClassA


問題:
classC 沒有指定是誰的, 你是依照 forAll 所以認定 classC 是 ClassB 中的 classC?

可是 context ClassA inv:
classC<>null
這樣也是合法的, 那會不會導致閱讀者的困擾? 無法確認 classC 到底是 A. 還是 B.(在你的例子中)?

問題三: 為什麼要用 -> ?

問題四: 如果我們有變數(local)要定義, 那如何定義?

問題五: 為什麼大家愛用 大大? 我雖然幼稚園是讀 大大幼稚園, 但是我還是不喜歡人家叫我大大... 叫我 Biologic 就好了...


reply to postreply to post
作者 Re:UML Class Diagram 的問題 [Re:worookie]
ymshin





發文: 277
積分: 4
於 2003-09-07 10:02 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
請問還要等多久咧? Evil

reply to postreply to post
作者 Re:UML Class Diagram 的問題 [Re:ymshin]
Biologic

生物學下的產物



發文: 524
積分: 4
於 2003-09-08 10:45 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:
請問還要等多久咧? Evil


-> 代表 ocl expression.
. 代表原物體或類別的 expression.

OCL 原廠商是 IBM. 採用數學式是因為數學式比較沒有模擬兩可的問題.
事實也可以用文字或其他方法.


reply to postreply to post
» JWorld@TW »  Software Engineering

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