序列圖教程 - 帶示例的完整指南
已發表: 2017-01-27本序列圖教程旨在幫助您更好地理解序列圖; 解釋您需要知道的一切,從如何繪製序列圖到繪製序列圖時應避免的常見錯誤。
交互圖有 3 種類型; 序列圖、通信圖和時序圖。 這些圖用於說明系統內各部分之間的交互。 在這三者中,序列圖因其簡單而受到開發人員和讀者的青睞。
在本序列圖教程中,您將了解;
- 什麼是序列圖
- 序列圖符號
- 序列圖最佳實踐
- 如何繪製序列圖
- 序列圖常見錯誤
- 序列圖模板和示例
- 序列圖 SlideShare 演示文稿
- 對序列圖指南的反饋
什麼是序列圖?
開發人員常用的序列圖對單個用例中的對象之間的交互進行建模。 它們說明了系統的不同部分如何相互交互以執行功能,以及執行特定用例時交互發生的順序。
簡而言之,序列圖顯示了系統的不同部分按“順序”工作以完成某事。
顯示系統的不同部分按“順序”工作以完成某事。
序列圖符號
序列圖的結構方式是,它表示從頂部開始並逐漸下降以標記交互順序的時間線。 每個對像都有一個列,它們之間交換的消息用箭頭表示。
序列圖各個部分的快速概述
生命線符號
序列圖由這些生命線符號中的幾個組成,這些符號應水平排列在圖的頂部。 兩條生命線符號不應相互重疊。 它們代表在序列期間在系統中相互交互的不同對像或部分。
當特定序列圖由用例擁有時,使用帶有參與者元素符號的生命線符號。
帶有實體元素的生命線代表系統數據。 例如,在客戶服務應用程序中,客戶實體將管理與客戶相關的所有數據。
帶有邊界元素的生命線表示系統中的系統邊界/軟件元素; 例如,用戶界面屏幕、數據庫網關或用戶與之交互的菜單都是邊界。
帶有控制元素的生命線表示控制實體或管理者。 它組織和安排邊界和實體之間的交互,並充當它們之間的中介。
激活條
激活欄是放置在生命線上的盒子。 它用於指示一個對像在兩個對象之間的交互過程中是活動的(或實例化的)。 矩形的長度表示對象保持活動狀態的持續時間。
在序列圖中,當一個對象向另一個對象發送消息時,就會發生兩個對象之間的交互。 在消息調用者(發送消息的對象)和消息接收者(接收消息的對象)的生命線上使用激活欄表示兩者都是活動的/在消息交換期間被實例化。
消息箭頭
從消息調用者到消息接收者的箭頭指定序列圖中的消息。 消息可以向任何方向流動; 從左到右、從右到左或返回到消息調用者本身。 雖然您可以在箭頭上描述從一個對象發送到另一個對象的消息,但您可以使用不同的箭頭指示發送或接收的消息類型。
消息箭頭帶有描述,稱為消息簽名。 此消息簽名的格式如下。 除了 message_name 之外的所有部分都是可選的。
屬性 = message_name(參數):return_type
- 同步消息
如激活條示例所示,當發送方等待接收方處理消息並返回後再繼續處理另一條消息時,使用同步消息。 用於指示此類消息的箭頭是實心的,如下所示。
- 異步消息
當消息調用者在向系統內的其他對象發送其他消息之前不等待接收者處理消息並返回時,使用異步消息。 用於顯示此類消息的箭頭是線箭頭,如下例所示。
- 返回信息
返回消息用於指示消息接收者已完成對消息的處理並將控制權返回給消息調用者。 返回消息是可選的符號片段,因為由同步消息觸發的激活欄始終意味著返回消息。
提示:您可以通過最小化返回消息的使用來避免使圖表混亂,因為可以在初始消息箭頭本身中指定返回值。
- 參與者創建消息
對像不一定在事件序列的整個持續時間內都存在。 可以根據正在發送的消息創建對像或參與者。
當您需要顯示特定參與者在創建調用發送之前不存在時,可以使用丟棄的參與者框表示法。 如果創建的參與者在創建後立即執行某些操作,您應該在參與者框下方添加一個激活框。
- 參與者銷毀消息
同樣,不再需要的參與者也可以從序列圖中刪除。 這是通過在所述參與者的生命線末端添加一個“X”來完成的。
- 反身信息
當一個對象向自己發送消息時,它被稱為自反消息。 它由一個消息箭頭指示,該箭頭在同一生命線處開始和結束,如下例所示。
評論
UML 圖通常允許在所有 UML 圖類型中註釋註釋。 註釋對像是一個帶有折疊角的矩形,如下所示。 註釋可以用虛線鏈接到相關對象。
筆記: 查看序列圖最佳實踐以了解序列片段。
序列圖最佳實踐
- 管理與序列片段的複雜交互
序列片段表示為一個框,該框框住了序列圖中對象之間的一段交互(如下面的示例所示)。
它用於以更結構化的方式顯示複雜的交互,例如替代流和循環。 在片段的左上角坐著一個操作員。 這 - 片段運算符 - 指定它是什麼類型的片段。
備擇方案
當需要在兩個或多個消息序列之間進行選擇時,使用替代組合片段。 它對“if then else”邏輯進行建模。
替代片段由一個大矩形或一個框架表示; 它是通過在框架名稱框(又名片段運算符)中提及“alt”來指定的。
為了顯示兩個或多個備選方案,然後使用虛線將較大的矩形劃分為所謂的交互操作數,如上面的序列圖示例所示。 每個操作數都有一個要測試的保護,它位於操作數的左上角。
選項
選項組合片段用於表示一個序列只有在某種條件下才會出現,否則該序列不會出現。 它模擬“if then”語句。
與替代片段類似,選項片段也用矩形框表示,其中“選擇”放置在名稱框內。
與替代片段不同,選項片段不分為兩個或多個操作數。 選項的後衛放置在左上角。
(在序列圖模板和示例部分中查找帶有選項片段的示例序列圖)。
循環
循環片段用於表示重複序列。 將單詞“循環”放在名稱框和框架左上角附近的保護條件中。
除了布爾測試之外,循環片段中的守衛還可以針對其他兩個特殊條件進行測試。 這些是最小迭代次數(寫為minint = [數字]和最大迭代次數(寫為 maxint = [數字])。
如果它是最小迭代保護,循環必須執行不少於提到的數字,如果它是最大迭代保護,循環不能執行超過指定的數量。
(在下面的序列圖模板和示例部分中找到循環片段的示例)
參考片段
您可以使用 ref 片段來管理大型序列圖的大小。 它允許您在另一個圖中重用一個序列圖的一部分,或者換句話說,您可以使用 ref 片段在另一個圖中引用圖的一部分。
要指定參考片段,您必須在框架的名稱框中提及“ref”以及在框架內引用的序列圖的名稱。
有關更多序列片段,請參閱超越序列圖基礎:第 1部分、第 2部分和第 3 部分。
- 繪製更小的序列圖來捕捉用例的本質
與其用幾個對象和消息組使您的序列圖混亂,這會使讀者感到困惑,不如畫一些更小的序列圖來恰當地解釋您的系統所做的事情。 確保圖表適合單頁,並為解釋性註釋留出空間。
另外,不要繪製數十個序列圖,而是找出場景中的共同點並專注於它。 如果代碼具有表現力並且可以獨立存在,那麼首先就不需要繪製序列圖。
如何繪製序列圖
序列圖表示單個用例中的場景或事件流。 序列圖的消息流基於特定用例的敘述。
然後,在您開始繪製序列圖或決定其中應包含哪些交互之前,您需要繪製用例圖並準備好對特定用例的功能的全面描述。
從上面“創建新的在線圖書館帳戶”的用例圖示例中,我們將重點關註名為“創建新的用戶帳戶”的用例來繪製我們的序列圖示例。
在繪製序列圖之前,有必要確定創建新用戶帳戶所涉及的對像或參與者。 這些將是;
- 圖書管理員
- 網上圖書館管理系統
- 用戶憑據數據庫
- 電子郵件系統
一旦確定了對象,就必須詳細描述用例的作用。 從這個描述中,您可以很容易地找出一旦執行用例,上述對象之間將發生的交互(應該在序列圖中進行)。
以下是在名為“創建新圖書館用戶帳戶”的用例中發生的步驟。
- 圖書館員請求系統創建一個新的在線圖書館帳戶
- 圖書館員然後選擇圖書館用戶帳戶類型
- 圖書管理員輸入用戶的詳細信息
- 使用用戶憑據數據庫檢查用戶的詳細信息
- 新圖書館用戶帳戶已創建
- 然後將新帳戶詳細信息的摘要通過電子郵件發送給用戶
從每個步驟中,您可以輕鬆地指定序列圖中的對象之間應交換哪些消息。 一旦清楚了,您就可以開始繪製序列圖了。
下面的序列圖顯示了在線圖書館管理系統中的對像如何相互交互以執行“創建新圖書館用戶帳戶”功能。
序列圖常見錯誤
在繪製序列圖時,設計人員往往會犯這些常見錯誤。 通過避免這些錯誤,您可以確保圖表的質量。
- 添加太多細節。 這會使圖表變得混亂,難以閱讀。
- 與系統的接口、實際架構等相比,過時和過時的序列圖是不相關的。 不要忘記更換或修改它們。
- 在用例文本和消息箭頭之間不留空白; 這使得任何人都難以閱讀圖表。
- 沒有仔細考慮消息箭頭的來源。
請參閱序列圖指南中詳細解釋的這些常見錯誤:繪製序列圖時要避免的常見錯誤。
序列圖示例和模板
以下是一些使用 Creately 繪製的序列圖示例和模板。 使用 Creately 的在線工具在線創建序列圖。 單擊模板以在編輯器中打開它。
在線考試系統的序列圖
在線考試系統——類圖(UML)
學校管理系統的序列圖示例
期權組合片段示例
循環序列示例
這裡有更多序列圖模板和示例,您可以立即對其進行編輯。
序列圖教程 - SlideShare 演示
對序列圖教程的反饋
這個序列圖教程涵蓋了你需要知道的關於序列圖和繪製它們的所有內容。 如果您對序列圖教程有任何建議或疑問,請隨時發表評論。
更多圖表教程
- 業務流程建模教程(BPM 指南解釋功能)
- 終極流程圖指南(帶有示例的完整流程圖教程)
- 用例圖教程(示例指南)