天天看點

EA&UML日拱一卒 用例泛化關系

泛化關系

泛化定義類目之間的泛化/特化關系。泛化關系将特殊類目連接配接到更通用的類目。給定一個類目,其指向一般類目(泛化方向)的傳遞閉包通常統稱為泛化類目,其指向特殊類目(泛化的反方向)的傳遞閉包通常統稱為特化類目。直接的泛化類目也稱為類目的父級,直接的特殊類目稱為類目的子級。

這裡傳遞閉包可以了解為可以到達的所有節點。

用例是類目的一種,當然也可以有泛化的概念。

ATM中的用例泛化

首先複習一下使用者認證用例:

顯示使用者認證畫面等待使用者輸入密碼并按下确定按鈕      

除了密碼認證,還可以有指紋認證:

顯示指紋認證提示畫面等待使用者在指紋輸入裝置上按下指紋      

也可以有面部識别:

顯示面部識别認證畫面等待使用者根據畫面顯示将面部對準攝像頭的适當位置      

等等。

将上述3種形式的認證進行泛化可以得到一個抽象的使用者認證用例。

EA&UML日拱一卒 用例泛化關系

對于ATM的業務流來講,具體是那種形式并不重要,隻要一個抽象的使用者認證用例即可:

EA&UML日拱一卒 用例泛化關系

用例泛化的優點

至少有以下幾點:

  1. 在使用用例的場景中(取款,轉賬等)使用抽象用例即可保證語義的完整性。
  2. 共同特性(例如上圖中認證用例和銀行系統之間的互動)可以在抽象用例上表現,而不是在每個具象用例上重複表示。
  3. 增加具象用例的種類在一個完全不考慮具體場景(例如可以是一個和銀行完全無關的場景)的情況下進行,進而可以開發出更加通用的用例。

作者著作介紹

《實戰Python設計模式》是作者去年3月份出版的技術書籍,該書利用Python 的标準GUI 工具包tkinter,通過可執行的示例對23 個設計模式逐個進行說明。這樣一方面可以使讀者了解真實的軟體開發工作中每個設計模式的運用場景和想要解決的問題;另一方面通過對這些問題的解決過程進行說明,讓讀者明白在編寫代碼時如何判斷使用設計模式的利弊,并合理運用設計模式。

EA&UML日拱一卒 用例泛化關系