討論:何謂擴充套件用例?
關於UML中的擴充套件用例的定義我發現各家之言各不相同,在《UML使用者指南》中有這麼一段:用例之間的擴充套件關係表示基礎用例在由延伸用例間接地說明的一個位置上,隱式地合併了另一個用例的行為。基礎用例可以單獨存在,但是在一定的條件下,它的行為可以被另一個用例的行為擴充套件,這個基礎用例在一個被稱做它的擴充套件點(Extension point)的地方被擴充套件,可以將擴充套件關係理解為擴充套件用例把行為放入基礎用例中。(在原文中用例用用況表示,擴充套件用延伸表示。)
這段話的翻譯我覺得不是很清晰,特別是最後一句。我有兩個問題,一個是擴充套件用例能不能獨立存在,還有一個是擴充套件用例的作用是什麼?
對於第一個問題我和同事有過幾次討論,有一個同事認為基礎用例和擴充套件用例之間可以毫無關係,可以在兩個相對獨立的用例之間建立擴充套件關係,但是我覺得擴充套件用例只是基礎用例的部分流程的擴充套件,例如顧客付款,基礎用例是顧客付款,其基本流程中包含現金支付這一系列的流程,可以把信用卡支付作為現金支付的一個擴充套件,而單獨的信用卡支付沒有實際意義,它只是一個比較複雜的擴充套件流程,因此把它單獨拿出來做成一個用例。
對於擴充套件用例的作用,我覺得它最大的作用應該是簡化流程,把一些有相互關係的擴充套件流程單獨拿出去作為單獨的用例,但是它還是依賴於基礎用例。
關於擴充套件用例我覺得還不夠清晰,不同的作者在他們的著作中描述的都不一致。這也是UML現在面臨的一個問題,同樣的概念不同人的理解和翻譯都不一致,導致學習者和使用者產生困惑。
相關文章
- 採用橫向擴充套件NAS有何利弊?套件
- testng擴充套件 失敗的用例重跑套件
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- 專案需求討論-Vlayout來快速構建及擴充套件複雜介面套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- [譯] 論資料流的擴充套件性套件
- WCF擴充套件:行為擴充套件Behavior Extension套件
- VSCode擴充套件應用VSCode套件
- easyui應用(四)--- easyui擴充套件UI套件
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- Sanic 擴充套件套件
- ORACLE 擴充套件Oracle套件
- 擴充套件工具套件
- 擴充套件歐幾里得套件
- DOM擴充套件套件
- 擴充套件ACL套件
- Lua擴充套件套件
- 照片擴充套件套件
- 擴充套件篇套件
- disable or 擴充套件套件
- 擴充套件表套件
- JMeter 擴充套件開發:擴充套件 TCP 取樣器JMeter套件TCP
- Airflow 中文文件:用Dask擴充套件AI套件
- [譯]擴充套件 Node.js 應用套件Node.js
- hdu Yet another end of the world(擴充套件歐幾里得定理推論)套件
- ASP.NET Core擴充套件庫之Http通用擴充套件ASP.NET套件HTTP
- php7安裝redis擴充套件和memcache擴充套件PHPRedis套件
- 分類擴充套件套件
- 擴充套件表示式套件
- 新增php擴充套件PHP套件
- swift擴充套件ExtensionsSwift套件
- iOS 通知擴充套件iOS套件
- 可擴充套件性套件
- 19-擴充套件套件
- Nmap 擴充套件(四)套件
- Flask 自建擴充套件Flask套件
- 擴充套件包上傳套件
- DOM部分擴充套件套件