討論:何謂擴充套件用例?

Liuwei-Sunny發表於2006-09-18

      關於UML中的擴充套件用例的定義我發現各家之言各不相同,在《UML使用者指南》中有這麼一段:用例之間的擴充套件關係表示基礎用例在由延伸用例間接地說明的一個位置上,隱式地合併了另一個用例的行為。基礎用例可以單獨存在,但是在一定的條件下,它的行為可以被另一個用例的行為擴充套件,這個基礎用例在一個被稱做它的擴充套件點(Extension point)的地方被擴充套件,可以將擴充套件關係理解為擴充套件用例把行為放入基礎用例中。(在原文中用例用用況表示,擴充套件用延伸表示。)

 

      這段話的翻譯我覺得不是很清晰,特別是最後一句。我有兩個問題,一個是擴充套件用例能不能獨立存在,還有一個是擴充套件用例的作用是什麼?

 

      對於第一個問題我和同事有過幾次討論,有一個同事認為基礎用例和擴充套件用例之間可以毫無關係,可以在兩個相對獨立的用例之間建立擴充套件關係,但是我覺得擴充套件用例只是基礎用例的部分流程的擴充套件,例如顧客付款,基礎用例是顧客付款,其基本流程中包含現金支付這一系列的流程,可以把信用卡支付作為現金支付的一個擴充套件,而單獨的信用卡支付沒有實際意義,它只是一個比較複雜的擴充套件流程,因此把它單獨拿出來做成一個用例。

 

      對於擴充套件用例的作用,我覺得它最大的作用應該是簡化流程,把一些有相互關係的擴充套件流程單獨拿出去作為單獨的用例,但是它還是依賴於基礎用例。

 

      關於擴充套件用例我覺得還不夠清晰,不同的作者在他們的著作中描述的都不一致。這也是UML現在面臨的一個問題,同樣的概念不同人的理解和翻譯都不一致,導致學習者和使用者產生困惑。

相關文章