1.時(shí)序圖說明
序列圖是一種 UML(統(tǒng)一建模語言)圖,它說明了系統(tǒng)中對象之間隨時(shí)間的交互,通常用于可視化消息流和軟件系統(tǒng)中對象之間方法調(diào)用的順序。
時(shí)序圖展示對象之間交互的順序,將交互行為建模為消息傳遞,通過描述消息是如何在對象間發(fā)送和接收的來動態(tài)展示對象之間的交互;相對于其他UML圖,時(shí)序圖更強(qiáng)調(diào)交互的時(shí)間順序;可以直觀的描述并發(fā)進(jìn)程。
2.繪制原則
繪制原則在比較簡單,但是如果想要細(xì)致的描述出真實(shí)的交互情況,還需要在細(xì)節(jié)處多加斟酌,以及對整體流程有清晰的把握。在最近繪制時(shí)序圖的工作過程,我感覺到自己對系統(tǒng)的認(rèn)識深入和清晰了許多,不求甚解的地方突然豁然開朗了。
1. 角色(Actor)
系統(tǒng)角色,可以是人、機(jī)器、其他系統(tǒng)、子系統(tǒng);在時(shí)序圖中用下圖表示。
2. 對象(Object)和生命線(Lifeline)
對象:對象的左右順序并不重要,但是為了作圖清晰整潔,通常應(yīng)遵循以下兩個(gè)原則:把交互頻繁的對象盡可能的靠攏;2.把初始化整個(gè)交互活動的對象放置在最左端。
生命線:在時(shí)序圖中表示為從對象圖標(biāo)向下延伸的一條虛線,表示對象存在的時(shí)間。
3. 控制焦點(diǎn)(Focus of Control)
又稱為激活期,表示時(shí)間段的符號,在這個(gè)時(shí)間段內(nèi)對象將執(zhí)行相應(yīng)的操作。它可以被理解成C語言語義中一對花括號{ }中的內(nèi)容;用小矩形表示。
4. 消息(Message)
同步消息(Synchronous Message):消息的發(fā)送者把控制傳遞給消息的接收者,然后停止活動,等待消息的接收者放棄或者返回控制。用來表示同步的意義.
異步消息(Asynchronous Message):消息發(fā)送者通過消息把信號傳遞給消息的接收者,然后繼續(xù)自己的活動,不等待接受者返回消息或者控制。異步消息的接收者和發(fā)送者是并發(fā)工作的。
返回消息(Return Message):返回消息表示從過程調(diào)用返回。
5. 自關(guān)聯(lián)消息
表示方法的自身調(diào)用或者一個(gè)對象內(nèi)的一個(gè)方法調(diào)用另外一個(gè)方法。
6. 組合片段
組合片段用來解決交互執(zhí)行的條件和方式,它允許在序列圖中直接表示邏輯組件,用于通過指定條件或子進(jìn)程的應(yīng)用區(qū)域,為任何生命線的任何部分定義特殊條件和子進(jìn)程。主要使用的組合片段名稱及含義如下:
3.繪制建議
時(shí)序圖最重要的是應(yīng)該清晰、準(zhǔn)確地表達(dá)系統(tǒng)的交互和行為。根據(jù)需要,最好與團(tuán)隊(duì)成員進(jìn)行溝通和反饋,以確保時(shí)序圖能夠準(zhǔn)確地傳達(dá)設(shè)計(jì)意圖,能夠讓開發(fā)人員沒有誤解。
以下是個(gè)人在繪制時(shí)序圖時(shí)總結(jié)的一些心得體會:
- 確定目標(biāo) :明確繪制時(shí)序圖的目的是什么。是為了理解系統(tǒng)的交互流程,還是為了進(jìn)行設(shè)計(jì)和調(diào)試等工作?這有助于確定所需的詳細(xì)程度和關(guān)注的重點(diǎn)。
- 選擇適當(dāng)?shù)念w粒度 :根據(jù)上一條確定的目標(biāo)和需求,選擇適當(dāng)?shù)牧6葋肀硎緦ο蠛拖ⅰnw粒度太細(xì)可能導(dǎo)致時(shí)序圖復(fù)雜難懂,而粒度太粗可能會丟失一些重要的細(xì)節(jié)。肯定的是,我們沒辦法傳遞所有的信息,需要根據(jù)時(shí)序圖目的去選擇描述的傾向性。
- 使用清晰的命名 :為每個(gè)角色、對象和消息選擇清晰、準(zhǔn)確的命名,以確保時(shí)序圖的可讀性和理解性。避免使用模糊或不明確的術(shù)語,盡量使用業(yè)務(wù)領(lǐng)域相關(guān)的術(shù)語。
- 合理組織布局 :在繪制時(shí)序圖時(shí),合理組織和布局對象、生命線和消息,使其易于理解??梢园凑諘r(shí)間順序排列對象和消息,并使用對齊和間距來提高可讀性。
- 使用注釋和說明 :在時(shí)序圖中使用注釋和說明來提供額外的解釋和上下文信息。這可以幫助讀者更好地理解時(shí)序圖,尤其是對于復(fù)雜的交互和控制流程。
- 簡化和抽象 :對于復(fù)雜的系統(tǒng)和交互,可以考慮使用簡化和抽象的方式來繪制時(shí)序圖,以突出重點(diǎn)和減少混亂??梢允褂梅謱雍颓短椎臅r(shí)序圖,或者使用關(guān)鍵路徑和關(guān)鍵消息進(jìn)行突出。
- 使用工具支持 :考慮使用專業(yè)的時(shí)序圖繪制工具,如UML建模工具或在線繪圖工具。這些工具提供了更多的功能和自動化支持,可以使繪制和編輯時(shí)序圖更加高效和方便。
4.繪制工具推薦
磨刀不誤砍柴工,在信息化時(shí)代,好的工具能夠成倍的提高我們的工作效率,下面介紹常用的時(shí)序圖繪制工具。
- Enterprise Architect :EA(Enterprise Architect)是一種功能強(qiáng)大的建模和設(shè)計(jì)工具,廣泛用于軟件開發(fā)、系統(tǒng)工程和業(yè)務(wù)流程建模等領(lǐng)域。
- Draw.io:Draw.io是一個(gè)在線繪圖工具,提供了各種圖表類型的繪制功能,包括時(shí)序圖。它具有直觀的用戶界面和豐富的圖形庫,可以輕松繪制和編輯時(shí)序圖。Draw.io還支持與Google Drive、Dropbox等云存儲服務(wù)的集成,方便團(tuán)隊(duì)協(xié)作和文件共享。
- Microsoft Visio :Microsoft Visio是一種流行的商業(yè)繪圖工具,具有豐富的圖形庫和模板,可用于創(chuàng)建各種圖表和圖形,包括時(shí)序圖。Visio提供了直觀的界面和強(qiáng)大的繪圖功能,適用于較復(fù)雜的時(shí)序圖繪制需求。
- Lucidchart :Lucidchart是另一種在線繪圖工具,具有易用的界面和廣泛的圖形庫。它支持時(shí)序圖的繪制,提供了一系列交互元素和布局選項(xiàng),方便繪制和調(diào)整時(shí)序圖的結(jié)構(gòu)和樣式。Lucidchart還提供了與Google Drive、Slack等工具的集成,便于團(tuán)隊(duì)協(xié)作和分享。
- PlantUML :PlantUML是一種基于文本的繪圖工具,可以通過簡單的文本描述來生成各種UML圖,包括時(shí)序圖。它具有簡單易用的語法,并支持多種輸出格式,可以使用PlantUML在任何文本編輯器中編寫時(shí)序圖,并使用命令行或插件將其轉(zhuǎn)換為圖像。
詳細(xì)說說我用過的兩個(gè)工具,EA和Draw.io :
EA就不用說了,在汽車行業(yè)內(nèi)鼎鼎大名,我們見到大量的設(shè)計(jì)圖都是出自EA,軟件內(nèi)置有專門的狀態(tài)機(jī)繪制模塊、軟件部署、autosar、時(shí)序圖等等,并且能夠自動生成代碼,用起來十分方便,還美觀整潔。
但是由于專業(yè)版的收費(fèi)原因,我供職的幾家都沒有買正版(流汗),只能自己在家用著玩玩,或者使用試用版,有30天免費(fèi)試用(導(dǎo)出圖片會有水?。?/p>
EA提供的時(shí)序圖模板
Draw.io最大的優(yōu)點(diǎn)是其便捷性,可以在線繪制,并且擁有多種模板,聯(lián)網(wǎng)自動更新,方便團(tuán)隊(duì)協(xié)作??梢陨螱ithub上下載應(yīng)用程序,體驗(yàn)和在線版一模一樣,完美實(shí)現(xiàn)無環(huán)境依賴的辦公。
Draw.io提供的時(shí)序圖模板
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28423瀏覽量
207139 -
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136861 -
UML
+關(guān)注
關(guān)注
0文章
122瀏覽量
30861
發(fā)布評論請先 登錄
相關(guān)推薦
評論