UML共同作業圖表就是用來表示一組通過互動來實現某些行為的對象,可以用來可視化、詳細描述、構造和文檔化一個特定的對象群體的動態方面,也可以用來按互動中的角色及其關係對一個用例的特定的情境或控制流程的實現進行建模。
共同作業圖表描述了特定行為的參與對象的靜態結構,以及參與對象之間的動態互動,可以用於不同的規
約抽象層級,規約級共同作業圖表表示了類元角色、關聯角色和訊息,表示對象之間的可能的關係,而執行個體級共同作業圖表表示對象、鏈和激勵,表示特定對象之間的關係。兩者
都描述了協作參與者之間的結構關係。如果要表示可能事件,一般用規約級共同作業圖表,其中沒有條件和迴圈,執行個體沒有取值範圍或有許多可能的路徑。
執行個體級共同作業圖表用於描述屬性或參量有具體的值的對象和鏈,可變大小多重性的對象和鏈的具體數目,或者是執行中的分支或迴圈的特定選擇。共同作業圖表可
以用來表示用例的實現或操作的實現,描述操作和用例的執行實現所處的語境、互動中行為序列。當共同作業圖表用於表示用例的實現時,只描述外部可見的動作及其順
序,用對象之間的訊息交換來描述一個用例實現的情境。當共同作業圖表用來表示一個對象的操作的實現時,提供了更詳細的資訊,如操作的參數及其用途、參與變數的特
征、關聯上的約束、操作實現過程中對象的建立和破壞等。本文主要研究用於表示用例實現的執行個體級共同作業圖表,下面介紹執行個體級共同作業圖表符號及其語義。
協作描
述了在一定的語境中一組對象以及用以實現某些行為的這些對象之間的相互作用。協作由靜態部分和動態部分組成,靜態部分描述在協作執行個體中對象和鏈可能擔任的
角色,是角色集合和其間關係,這些關係定義了結構方面的內容,動態部分是一個訊息集合,包括一個和多個動態互動,表示在執行計算過程中不同時間裡協作中的
訊息流程, 這些訊息定義了行為方面的內容。角色表示協作中對象和鏈的目的,類元角色定義了參與協作執行的對象在一個協作中扮演的角色,關聯角色定義了一個
類元角色和其他角色之間的關係,是參與協作執行的關聯的描述,關聯角色是鏈的子集,鏈是兩個或多個對象之間的單向串連,是關聯的執行個體。對象必須是位於關聯
相應位置的類的直接或間接執行個體。關聯是兩個或多個特定描述其執行個體間串連的類元之間的關係,參與關聯的類元在關聯內有有序的位置。在運行時,對象和鏈與協作
中的角色綁定,在不同的協作中一個對象可以綁定到一個或多個角色。
互動是由在一個實現特定目標的協作內一組對象之間通訊序列組成的行為規約。每個互動包含訊息的偏序集,這些訊息由類元角色通過關聯角色交換。訊息是激勵的
規約,是寄件者和接受者之間的通訊。訊息指定了寄件者對象和接受者對象扮演的角色,說明寄件者對象對接受者對象應用何種操作。激勵是傳遞訊息期望發生的兩
個對象之間的通訊,激勵導致一個操作被啟用、發出一個訊號、導致一個對象被建立或終止。舉例:學生註冊課程系統
某
大學準備開發一個學生課程註冊系統,學生可以使用該系統查詢新學期將開設的課程和講課教師情況,選擇自己要學習的課程進行登記註冊,並可以查詢成績單;教
師可以使用該系統查詢新學期將開設的課程和選課學生情況,並可以登記成績單;註冊管理員使用該系統進行註冊管理,包括維護教師資訊、學生資訊和課程資訊
等。
在每個學期的開始,學生可以獲得該學期的課程目錄表,課程目錄表列出每門課程的所有資訊,諸如基本資料、教師、開課系和選課條件等。 新
學期開始前兩周為選課註冊時間,在此期間學生可以選課註冊,並且允許改變或取消註冊申請,開學兩周后註冊管理員負責關閉課程註冊。每個學生可以選擇不超過
4門課程,同時指定2門侯選課程以備主選課程未選上。每門課程最多不能超過10人,最少不能低於3人,低於3人選課的課程將被取消。一旦學生的註冊過程完
畢,註冊系統將有關資訊提交收費系統以便學生付費。如果在實際註冊過程中名額已滿,系統將通知學生在提交課程表之前予以更改。 在學期結束時,學生可以存取系統查看電子成績單。由於學產生績屬于敏感資訊,系統必須提供必要的安全措施以防非法存取。
表一:
學生課程註冊系統的試題類:
| 實體類 |
說明 |
| Professor |
學校中講課的老師 |
| Student |
學校中註冊課程的學生 |
| Schedule |
學生在新學期選擇登記的課程列表 |
| CourseCatalog |
學校所有課程的目錄 |
| Course |
課程的基本資料 |
| CourseOffering |
新學期課程的開設資訊,如講課老師,時間,地點等資訊 |
|
|
表二:學生課程註冊系統的邊界類:
| 邊界類 |
說明 |
| LoginForm |
登入表單 |
| RegisterCoursesForm |
為學生提供學生選課註冊 |
| ViewReportForm |
為學生提供成績查詢的操作 |
| SelectTeachCourseForm |
為教師提供查看學生選課情況 |
| SubmitGradesForm |
為教師提供登記成績 |
| MaintainProfessorsForm |
為註冊管理員提供維護教師資訊 |
| MaintainStudentsForm |
為註冊管理員提供維護學生資訊 |
| MaintainCoursesForm |
為註冊管理員提供維護課程資訊 |
| CloseRegistrationForm |
為註冊管理員提供關閉註冊的操作 |
| BillingSystemNotice |
提供與收費系統的資訊交換介面 |
|
|
| |
|
表三:學生註冊系統的控制類
| 控制類 |
說明 |
| RegisterCourseControl |
負責新學期學生的選課登記 |
| ViewReportControl |
負責學產生績的查詢 |
| SelectTeachCourseControl |
負責新學期的學生的選擇情況 |
| SubmitGradesControl |
負責學產生績的登記 |
| CloseRegistrationControl |
負責關閉課程註冊 |
|