【云駐共創】作為程序員,你一般用什么軟件畫流程圖時序圖和狀態圖等?
1. 時序圖,又稱為序列圖、循序圖,是一種UML交互圖。時序圖通過描述對象之間發送消息的時間順序,顯示多個對象之間的動態協作過程。

時序圖涉及到的角色主要包括
角色(Actor) 系統角色,可以是人或者其他系統和子系統。以一個小人圖標表示。
對象(Object) 對象位于時序圖的頂部,以一個矩形表示。
生命線(LifeLine) 時序圖中每個對象和底部中心都有一條垂直的虛線,這就是對象的生命線(對象的時間線)。以一條垂直的虛線表。
控制焦點(Activation) 控制焦點代表時序圖中在對象時間線上某段時期執行的操作。以一個很窄的矩形表示。
消息(Message) 表示對象之間發送的信息。主要分同步消息、異步消息、返回消息
自關聯消息 表示方法的自身調用或者一個對象內的一個方法調用另外一個方法。以一個半閉合的長方形+下方實心剪頭表示。
組合片段 組合片段用來解決交互執行的條件和方式,它允許在序列圖中直接表示邏輯組件,用于通過指定條件或子進程的應用區域,為任何生命線的任何部分定義特殊條件和子進程。
2. 狀態圖,是描述一個實體基于事件反應的動態行為,常常用于顯示狀態機、使對象達到這些狀態的事件和條件、以及達到這些狀態時所發生的操作。UML狀態圖可以研究類、角色、子系統、或組件的復雜行為。
用狀態機對一個對象的生命周期建模,狀態圖用于顯示狀態機(State Machine Diagram),重點在與描述狀態圖的控制流。
狀態圖涉及到的角色主要包括
狀態(States)指在對象的生命周期中的某個條件或者狀況,在此期間對象將滿足某些條件、執行某些活動活活等待某些事件,狀態用圓角矩形表示
轉移(Transitions)轉移(Transitions)是兩個狀態之間的一種關系,表示對象將在源狀態(Source State)中執行一定的動作,并在某個特定事件發生而且某個特定的警界條件滿足時進入目標狀態(Target State)
動作(State Actions)動作(Actions)是一個可執行的原子操作,也就是說動作是不可中斷的,其執行時間是可忽略不計的。
自身轉移(Self-Transitions)狀態可以有返回自身狀態的轉移,稱之為自身轉移(Self-Transitions)
組合狀態(Compound States)嵌套在另外一個狀態中的狀態稱之為子狀態(sub-state),一個含有子狀態的狀態被稱作組合狀態(Compound States)
進入節點(Entry Point)由于一些原因并不會執行初始化(initialization),而是直接通過一個節點進入狀態【Ready】,則此節點稱之為進入節點(Entry Point)
歷史狀態(History States)歷史狀態是一個偽狀態(Pseudostate),其目的是記住從組合狀態中退出時所處的子狀態,當再次進入組合狀態,可直接進入這個子狀態,而不是再次從組合狀態的初態開始。
并發區域(Concurrent Regions)狀態圖可以分為區域,而區域又包括退出或者當前執行的子狀態。說明組合狀態在某一時刻可以同時達到多個子狀態。
在介紹工具使用時主要以時序圖為主,狀態圖只要明白了概念,設計的時候類似,主要是介紹工具的選擇,供參考
在工作中常用的工具有visio、Typora(最新版收費)、Drawio(免費)
visio是office辦公套件之一,也是普遍使用的流程圖工具,程序員及非程序員都可以使用,產品做的也非常人性化,容易上手,如下時序圖所示效果
繪圖區域上半部分為示例圖,下面為時序圖各個組成部分的說明,幾點可以查看每個時序圖組成部分的用意及使用說明
visio左邊為工具欄、右側為繪畫圖,像生命線、參與者、消息 都提供了完整的支持,工具欄提供的工具如圖所示:
Typora應該是程序員的最愛,Typora容許隨時隨地開展無縫拼接瀏覽,因而您能夠在檢查顯示信息實際效果的另外形象化地開展撰寫。在Win,Mac和Linux上能用。它具備審校作用,能夠檢查拼讀和英語的語法。全自動匹配Markdown標記,比如括弧。支持大概100種語言并支持英語的語法突顯。豐富多彩的作用和鍵盤快捷鍵使您輕輕松松瀏覽瘙癢的地區。與內聯公式和顯示信息公式適配。公式還可以即時瀏覽。能夠輕輕松松插進圖象(載入時顯示信息圖象)。以各種各樣格式導出來,比如PDF,LaTeX,HTML 。您能夠依據自身的喜好變更外型(主題)。支持全自動儲存和修復。有對焦模式,打印機方式和源碼方式,能夠依據本人喜好開展轉換。標識符,行和英語單詞的總數能夠馬上檢查。能夠建立簡易的序列圖??梢哉f一個寫作的利器,目前應該是程序員的標配了,在做流程圖這塊也是佼佼者,但對非程序員不是太友好,效果顯示如下
顯示的源文件
Title: Typora 時序圖示例 對象A->對象B: 對象B你好嗎?(請求) 對象B-->對象A: 我很好(響應) 對象B->小三: 你好嗎 小三-->>對象A: 對象B找我了 對象A->對象B: 你真的好嗎? Note over 小三,對象B: 我們是朋友
typora設計流程圖非常簡潔,但沒有提供直接的設計工具,對非開發人員中很少使用。
Drawio是一款繪制流程圖的利器。而且界面簡潔清晰,最重要的是免費的,visio 不是免費的。還有其他很多好處,它跨平臺,還提供了 Chrome 插件和 VScode 插件,而且支持多語言,很友好。這么多好處,那必須搞起來啊。我已經完成從 visio 轉移到 draw.io,不過國內用的好像并不多,人性化設計的不錯,可以跟visio又得一拼,效果如下
流程圖非常的簡潔漂亮,同事還提供大量的模板供參考,非常的方便
工作區也分工具區及繪畫區,工具區如下所示,個人感覺比office的visio更全面
如果已經安裝office,建議使用visio,可以滿足大部分需求,同時滿足業務流程圖設計,visio面向各個行業的人員使用
如果是沒有安裝office,又有流程圖設計要求,推薦使用drawio,設計的圖也非常漂亮,覺得不讓你失望
如果是開發人員,強烈推薦Typora,有一種寫代碼的感覺,逼格絕對上升一個檔次,同時跟寫文檔結合,非常流暢
本文整理自華為云社區【內容共創】活動第12期。
查看活動詳情:https://bbs.huaweicloud.com/blogs/325315
相關任務詳情:任務40.作為程序員,你一般用什么軟件畫流程圖時序圖和狀態圖等?
開發者
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。