邊界類是一種用於對系統外部環境與其內部運作之間的互動進行建模的類。用於描述外部參與者與系統之間的互動,對系統中依賴於環境的那些部分進行建模。
邊界類用於描述外部參與者與系統之間的互動。識別邊界類可以幫助開發人員識別出用戶對界面的需求。
邊界類
邊界類是一種用於對系統外部環境與其內部運作之間的互動進行建模的類。這種互動包括轉換事件,並記錄系統表示方式(例如接口)中的變更。
由於明確了系統的邊界,邊界類能幫助人們更容易地理解系統。在設計時,它們為確定相關服務提供了一個好的起點。例如,如果在設計初期就確定了一個印表機接口,很快您即會發現您必須對列印輸出的格式也進行建模。
常見的邊界類有視窗、通信協定、印表機接口、感測器和終端。如果您在使用 GUI 生成器,您就不必將按鈕之類的常規接口部件作為單獨的邊界類來建模。通常,整個視窗就是最精製的邊界類對象。邊界類還有助於獲取那些可能不面向任何對象的 API(例如遺留代碼)的接口。
您應該根據邊界類所表示的邊界類型來對邊界類建模。與其他系統進行通信和與人員主角進行通信(通過用戶界面)在目的上大有不同。在用戶界面建模中,最需要關注的是如何向用戶顯示界面。而在系統通信建模中,最應關注的是通信協定。
邊界對象(即邊界類的一個實例)的生存期可以比用例實例的生存期更長。舉例來說,邊界對象必須在兩個用例執行之間的一段時間顯示在螢幕上時就符合這種情況。但是,通常情況下二者的生存期一樣長。
查找邊界類邊界類幫助系統接口與系統外部進行互動。邊界對象將系統與其外部環境的變更(與其他系統的接口的變更、用戶需求的變更等)分隔開,使這些變更不會對系統的其他部分造成影響。
一個系統可能會有多種邊界類:
· 用戶界面類 - 幫助與系統用戶進行通信的類
· 系統接口類 - 幫助與其他系統進行通信的類
· 設備接口類 - 為用來監測外部事件的設備(如感測器)提供接口的類
查找用戶界面類 表示用戶界面的邊界類可能在用戶界面建模活動期間存在;只要合適,就可在此活動期間重複使用這些類。如果尚未進行用戶界面建模,那么下面進行的討論將有助於查找這些類。
每個用例主角對都至少有一個邊界類。可以認為此對象擔負著協調與主角之間的互動的職責。此邊界對象有一些輔助對象,邊界對象將它的某些職責委派給這些輔助對象。這對於基於視窗的 GUI 應用程式來說更是如此。在這些應用程式中,通常每個視窗或窗體都對應一個邊界類。
製作用戶界面原型的草圖或者對之進行螢幕轉儲,藉此來展示邊界對象的行為和外觀。
僅對系統的核心部分建模,不要對 GUI 中的每個按鈕、列表和小部件都建模。分析的目的是要大致了解系統是如何構成的,而不是要設計每一個細枝末節。換句話說,您只需為系統中的一些現象或者在用例實現的事件流中提及的一些事物確定邊界類。另請參見指南:邊界類(用戶界面建模)。
查找系統接口類 與外部系統通信的邊界類負責管理與外部系統的對話,它為正在構建的系統提供與該外部系統的接口。
示例:
在自動櫃員機中,提款必須通過 ATM 網路(一個主角)得到驗證,然後該網路再通過銀行會計系統對提款進行驗證。我們可以確定讓一個稱為 ATM 網路接口的對象來提供與 ATM 網路之間的通信。
與現有系統的接口可能已有明確定義。如果是這樣,即可從接口定義中直接推導出職責。如果已經有一個正式的接口定義,則可對它實施逆向工程,這樣就不必在此正式界定它。只需記下這一點,說明現有接口將在設計階段中復用。
查找設備接口類 系統中有些元素的行為使它們看起來象是外部元素(沒有受到系統中任何對象的影響就自發地改變值),例如感測器裝置。儘管可以用主角來表示這類外部設備,但系統用戶發現這樣做會造成一些“混亂”,因為這很可能造成對設備和真人主角“等同”對待。但是,一旦我們不再收集需求,我們就需要考慮所有外部事件的來源,並確保我們有辦法讓系統檢測這些事件。
如果在用例模型中用主角來表示設備,那么對使用邊界類來幫助設備與系統通信這種做法驗證其合理性就很容易了。如果用例模型中沒有這些“設備主角”,那么現在正是添加它們的時機,同時還需在適當的地方對用例補充說明進行更新。
為每個“設備主角”創建一個邊界類,用來獲取該設備或感測器的職責。如果設備已經有一個明確定義的接口,記下這一點,以便以後設計時引用它。