簡體   English   中英

如何將分析模式中的動作解釋為序列圖?

[英]How can I interpret to a sequence diagram an action from an Analysis Pattern?

基於責任分析模式:

在此處輸入圖像描述

這個概念是我們有一個遵循責任分析模式邏輯的 class 圖。 如何使用給定的 function assignStaffContact()分配聯系人?

我知道StaffContact class 是一個控件 class 和ClientStaffMember是實體類(我們不關心TimePeriod類)。

我無法弄清楚哪些類將在分配人員聯系人的過程中發揮作用,以便創建此操作的正確序列圖 (UML)。 任意必須有一個邊界 class 提供想要的接口。 演員將選擇分配員工聯系人的情況,這將觸發控件 class StaffContactassignStaffContact()方法,但這將與哪些實體類進行通信並最終分配員工?

我對 class ContactForCampaign及其背后連接到類ClientStaffMember的邏輯感到困惑。 我希望我能很好地解釋我的問題和我的思考過程。

這張圖說:

  • 一個StaffContact實例可以關聯到多個ContactForCampaign實例
  • ContactForCampaign的每個實例都與Campaign的一個實例關聯,並且將一個StaffMember object 定義為負責人,並且。 一位Client object 作為專員(可能是為了競選)。

因此,我們只能猜測StaffContact::assignContact()需要知道要添加哪個 StaffMember(應該是操作的參數)。 由於可以考慮多個ContactForCampaign實例,因此操作可能還需要知道哪個ContactForCampaign與分配相關。 可能這可以借助Campaign參數來確定。 然后必須考慮兩種情況:替換現有ContactForCampaign的工作人員,或者如果活動不存在分配,則創建新的工作人員。 您現在已經具備了序列圖的所有要素。 另請注意,如果創建了新的ContactForCampaign操作系統,該操作將需要知道要將哪個客戶端指定為委托人。

請注意,鑒於 StaffMember 的多重性 1, StaffMember StaffContact::removeStaffContact()似乎不相關,除非您考慮同時刪除 ContactForCampaign,這將導致丟失有關專員的信息。

最后但並非最不重要的一點是,鑒於 StaffContact 一側的 1 多重性,它不會是控件 class,因為該控件原則上僅在用例執行時存在,並且不應具有永久語義鏈接到它所控制的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM