前言
大學時期的程式課上學過如何畫程式的流程圖(點我看更多關於流程圖的介紹)來確認程式邏輯和架構、釐清思路,透過特定圖形取代固定文字來簡化說明,例如:橢圓形表示開始或結束、方形表示事件、菱形表示是否判斷的那種程式流程圖,像這樣:
什麼是UML
在去年參加的曼陀號其中一次月會上,Mosky給了我們其中一項作業是去了解UML(Unified Modeling Language,統一塑模語言)並完成一個實作。一開始我完全沒聽過UML,花了點時間研究才發現原來以前學過的程式流程圖也算是UML的其中一種(更詳細介紹可以參考這個:維基百科-統一塑模語言)。因為UML是透過被定義的圖形和符號來表達邏輯概念和需求分析,不需要撰寫或瞭解程式碼,很常被用在軟體架構、甚至是工業流程的可視化和說明,讓新來的人更容易了解內容、進入狀況。
在UML系統裡定義了14種不同類型的圖示,每種圖示都是針對不同強調的主題設計出來的架構,不過UML圖畫出來是為了要讓人更容易了解其內容,因此有很多種不同的變形方式,不同圖示的結構結合在一起也有特別的表達方式。
學會UML之後
我在那次月會討論中分享了學習UML後,畫出在請假系統網站上登入功能的流程狀態說明,以及系統中的角色用例圖。
後來在去年Q3左右也使用了UML,把公司內部已定型的開發流程說明畫了出來。其實公司之前就有一份文字檔的開發流程文件,不過因為最近做法有調整,我就想趁機練習,把整個流程畫成(或許)更容易理解的UML圖,讓新進的人更能快速理解我們每次開發軟體版本的流程。一開始我是畫在紙上,畫好之後和主管稍微討論了下,大致確認過內容後我就改使用draw.io(點我進網站)把整個流程製作成電子檔。詳細的操作就不在這邊詳述,大家可以點這裡參考電腦玩物的這篇draw.io使用介紹。最後也輸出成紙本貼在辦公室牆上給其他同事參考。
這次做出來的開發流程圖和一般程式流程圖我認為最大的差別是,我在畫開發流程圖的時候把UML循序圖的概念用了進去,將整個圖的橫軸切割成四個欄,用來代表四個不同角色(工程師、主管、客戶A、客戶B);另外也將垂直軸切割成五個列,代表開發到上線整個過程中的五個階段(需求分析、開發及單元測試、整合測試、交付、上線)。我認為這樣套用可以讓開發流程更清楚地看出,在哪個階段要由哪個角色做哪些事情。
結語
在畫過幾次UML圖後,發現其實這個方法在閱讀理解別人的思維上很好用,但如果自己還在思考邏輯架構、仍在分析階段的時候,就先畫UML圖型,在大幅度修改上就滿費時間的。因為UML有很多規定的畫法,即便已經使用了圖形來簡化部分文字,但整個架構中間突然要插入點新想法時在修改上不是很方便。我自己覺得如果想法架構已經確定的階段再做這種圖是比較好的選擇,如果還在整理思緒階段的話可以使用自己的簡筆符號或數學符號做紀錄先,等確定了整個架構在做成UML的形式給其他人參考,這樣也比較省時間和力氣。
其他參考資料
UML入門:統一建模語言入門:
http://www.dotspace.idv.tw/Jyemii/umlcolumn/articles/umlwriting/UMLBasics/UMLBasics.ht
mUML学习入门就这一篇文章:
https://blog.csdn.net/soft_zzti/article/details/79811923?utm_source=copy