對於每個有意義的系統,都存在著一些與系統打交道的事物,這些事物為了某些目的而與系統進行互動。這些事物還能預料到系統的執行方式,為達到某種目的事物間也可能要通過系統進行協作。
乙個參與者(actor)定義了一組在功能上密切相關的角色,當乙個事物與系統互動時,該事物要扮演這樣的角色。
例如,超市裡的每個具體的收款員的首要職責為收款,他還要負責檢驗購物籃中商品的數量以及驗證顧客的信譽卡以給予優惠。這樣,每個收款員就要扮演三種在功能上緊密相關的角色。把這組角色定義為乙個參與者,對其命名為「收款員」。該參與者的乙個例項就是扮演上述角色的乙個具體人。這個具體的人,可能還扮演其他參與者(例如「商品供貨員」)的角色,這說明乙個系統的使用者可以扮演不同的參與者中的角色。此外,乙個參與者也可以由一組使用者來扮演,如參與者「收款員」往往代表著一組具體的人。
乙個參與者可以發出請求,要求系統提供服務;系統以某種方式對其做出響應,把響應的結果返回給該參與者或者給其他的參與者。系統也可以向參與者發出請求,參與者對此做出響應。為了完成某項功能,一組參與者和系統之間請求與響應的對話可能是複雜的。
儘管在模型中使用了參與者,但參與者實際上並不是系統的一部分,它們位於系統之外,是在系統之外的與系統進行互動的任何事物。
參與者的標準圖符是乙個「人型符號」,參與者的名字放在圖符的下方,如圖32所示。
如果一些參與者與系統的互動有一部分是相同的,這時不是顯式地將相同的互動與每乙個參與者相關聯,而是引入包含這些共同的互動的一般參與者,並對這些參與者進行特殊化處理,特殊參與者從一般參與者中繼承執行這些互動的能力,見圖33。
從特殊參與者到一般參與者之間的繼承關係,意味著特殊參與者的例項能夠同與一般參與者的例項進行互動的用況例項進行通訊。
上節講到,參與者是在系統之外與系統進行互動的任何事物。具體地講,參與者分為三類:人員、外部系統或裝置。下面講述如何從這三個方面識別參與者。
(1)人員
從直接使用系統的人員中發現參與者。這裡強調的是直接使用,而不是間接使用。這樣的人可能要啟動、維護和關閉系統,更多的可能是這樣的人要從系統中獲得什麼資訊或向系統提供什麼資訊。
特定的人在系統中可扮演不同參與者中的角色。例如,新增資料、使用資料及產生分析報告的那個人就扮演了三種不同的角色,這些角色可能要分別屬於三種不同的參與者。再如,對於使用銀行系統的乙個具體的人來講,他扮演的角色可為前台職員、經理或顧客等。
(2)外部系統
所有與本系統互動的外部系統都是參與者。相對於當前正在開發的系統而言,外部系統可以是其他子系統、下級系統或上級系統,即任何與它進行協作的系統,但對這樣的系統的開發並不是開發本系統的人員的責任,無論它們是已存在的,還是正在開發的。
要指出的是,如果乙個大系統在任務分解時被劃分成幾個子系統,則每個子系統的開發者都把與之相關的其他子系統看作是外部系統,子系統的邊界以內只包括它的開發者所負責的那部分功能。
(3)裝置
識別如下的所有與系統互動的裝置:這樣的裝置與系統相連,向系統提供外界資訊;也可能系統要向裝置提供資訊,裝置在系統的控制下執行。這樣的裝置是系統的參與者。通常,像監視器、鍵盤、滑鼠這樣的標準使用者介面裝置(作業系統管理它們)不包括在內,而像外部感測器和受控馬達這樣的與系統互動的裝置很可能是參與者,因為所開發的系統往往要直接對它們進行處理。
下面是一些識別與組織參與者的指導策略:
1)首先將精力集中於啟動系統的參與者。這些是最容易識別的參與者,從中可以找出其他參與者。
2)從使用者的角度考慮怎樣使用這個系統,從裝置和外部系統的角度考慮它們如何與系統互動。
3)對識別出來的參與者,記錄它們的責任。
4)通過識別繼承關係,組織參與者。
5) 若有必要,在參與者間建立繼承關係。
物件導向學習筆記三 參與者
參與者actor在建模過程中占有核心地位,actor是在系統之外與系統互動的某人或者某事物。參與者位於系統邊界之外,首先要明確邊界。可以通過下面兩個問題來確定,這兩個問題非常有用,可以用來找出參與者和確定邊界。1 誰對系統有著明確的目標和要求並且主動發出動作?2 系統是為誰服務的?其實更準的官方叫法...
物件導向分析與設計
物件導向的程式設計,剛剛接觸的時候,給人一種抽象 透明的感覺,不知道該怎麼樣去理解,實踐就更不用說了。一 物件導向的分析 ooa 二 物件導向的設計 ood 三 物件導向程式設計 oop 現在物件導向的程式設計已成為一種趨勢,面向過程的程式設計使得系統不易於擴充套件和維護,如果客戶的需求發生改,需要...
物件導向分析與設計
1 了解基於uml的物件導向分析與設計方法 2 掌握用例圖的繪製 用例規約 文件 的編制 3 掌握類圖 活 狀態圖 時序圖的繪製方法 大學教師選擇本學期要教授的課程,每位教師最多只能上報 4 門課程。教師選課結束後,教務管理人員進行協調和確認教師的課程,並建立本學期的課程目錄表,向學生公布。學生填寫...