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