[英]How can I interpret to a sequence diagram an action from an Analysis Pattern?
基於責任分析模式:
這個概念是我們有一個遵循責任分析模式邏輯的 class 圖。 如何使用給定的 function assignStaffContact()
分配聯系人?
我知道StaffContact
class 是一個控件 class 和Client
, StaffMember
是實體類(我們不關心TimePeriod
類)。
我無法弄清楚哪些類將在分配人員聯系人的過程中發揮作用,以便創建此操作的正確序列圖 (UML)。 任意必須有一個邊界 class 提供想要的接口。 演員將選擇分配員工聯系人的情況,這將觸發控件 class StaffContact
的assignStaffContact()
方法,但這將與哪些實體類進行通信並最終分配員工?
我對 class ContactForCampaign
及其背后連接到類Client
和StaffMember
的邏輯感到困惑。 我希望我能很好地解釋我的問題和我的思考過程。
這張圖說:
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.