六、利用循序圖表達系統內部物件的互動
對每一個要實現的使用案例,開發人員可以利用一到多張的循序圖 (包括正常劇本、例外處理與擴展性的劇本),表達未來程式碼在系統執行期間 (Run‐time)的物件互動情形。
- 在循序圖內,大致列出主要參與的物件角色 (較偏 開發人員 所設計的物件,而非系統面的物件)。
請注意,循序圖內主要表達的是物件之間的互動,所以在如 EA 工具中,將位於 「Project Browser」視窗內所拖曳至畫面內的 UML 圖形元素時,需要設定為「物件 ( instance)」,而非用連結 (link)。參考如下圖 5所示。 - 循序圖內的物件配置,主要分成兩大類:
- 利用棒形人偶圖示所表達的參與者。包括 UI 表單畫面、資料庫系統、外部系統,均以該圖示表達。
- 位於中層間開發人員所設計的物件,包括 控制、邊界 (boundary)、領域 (domain)、資料、工具 (utility)或系統服務等類型。一般均使用長方形的 UML 物件圖表示。
為了方便觀察物件之間的訊息互動傳遞,可以在循序圖的最左側中,新增一個“註釋 (Note)”,然後把該使用案例的主要文字敘述“貼 (Paste)”在 Note 內容內。
- 觀察上圖 6,有些訊息名稱前面加上 “//” 即代表註解 (comment)的意思,代表的是與該物件的互動,並沒有一個特定的方法 (或 API)可供呼叫。
例如與 RDB 的連結,它僅能透過 SQL 敘述的呼叫,所以用如 “//SELECT SQL” 與 “//INSERT SQL” 等來代表控制物件與資料庫的互動意涵。
(點擊圖片鏈接看原圖)圖 6、在循序圖內規劃主要參與的物件與其之間互動的訊息
- 請注意! 循序圖不是要表達的精細。重點是在為了完成某個功能 (從使用案例敘述的分析而來)時,值得所關注的參與物件,以及這些物件之間的訊息傳遞。
- 已經有一些 UML 工具,可以透過程式碼的靜態掃瞄,而能模擬在系統在動態期間,所產生的物件與之間的訊息傳遞互動,並反轉 (reverse)為 UML 循序圖以供開發人員檢視物件的動態相依與訊息追蹤,相當實用。
可以參考 HSDc. Sequence-generator plugin for EA:
http://www.kenming.idv.tw/source-code_with_uml_class_seq_diagram_relationship-04