作為一名合格的程序員,在需求整理及功能實現的時候,各種流程圖是避免不了的,像用例圖、時序圖、狀态圖基本上是必備,輔助分析需求及梳理實現思路。
- 時序圖,又稱為序列圖、循序圖,是一種UML交互圖。時序圖通過描述對象之間發送消息的時間順序,顯示多個對象之間的動态協作過程。
- 時序圖的使用場景非常廣泛,幾乎各行各業都可以使用。當然,作為一個軟件工作者,我這邊主要列舉和軟件開發有關的場景。
- 時序圖涉及到的角色主要包括
- 角色(Actor)系統角色,可以是人或者其他系統和子系統。以一個小人圖标表示。
- 對象(Object)對象位于時序圖的頂部,以一個矩形表示。
- 生命線(LifeLine)時序圖中每個對象和底部中心都有一條垂直的虛線,這就是對象的生命線(對象的時間線)。以一條垂直的虛線表。
- 控制焦點(Activation)控制焦點代表時序圖中在對象時間線上某段時期執行的操作。以一個很窄的矩形表示。
- 消息(Message)表示對象之間發送的信息。主要分同步消息、異步消息、返回消息
- 自關聯消息表示方法的自身調用或者一個對象内的一個方法調用另外一個方法。以一個半閉合的長方形 下方實心剪頭表示。
- 組合片段組合片段用來解決交互執行的條件和方式,它允許在序列圖中直接表示邏輯組件,用于通過指定條件或子進程的應用區域,為任何生命線的任何部分定義特殊條件和子進程。
- 狀态圖,是描述一個實體基于事件反應的動态行為,常常用于顯示狀态機、使對象達到這些狀态的事件和條件、以及達到這些狀态時所發生的操作。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 。您能夠依據自身的喜好變更外型(主題)。支持全自動儲存和修複。有對焦模式,打印機方式和源碼方式,能夠依據本人喜好開展轉換。标識符,行和英語單詞的總數能夠馬上檢查。能夠建立簡易的序列圖。可以說一個寫作的利器,目前應該是程序員的标配了,在做流程圖這塊也是佼佼者,但對非程序員不是太友好,效果顯示如下
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,有一種寫代碼的感覺,逼格絕對上升一個檔次,同時跟寫文檔結合,非常流暢
, 更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!
查看全部