UML:介紹

你有想過為何要學習統一建模語言(Unified Modeling Language, UML)嗎?


圖一.軟體開發流程(The Journal of Object Technology)


這幾年來,越來越多公司要求面試者擁有此技術,漸漸在履歷上具有加分作用.然而,有部分工程師對此技術感到存疑,他不但因複雜性花費過多時間,而且不容易與軟體專案同步.然而,工程師若以自己觀點進行軟體開發,甚至未定義目標市場,造成軟體不被市場接受,因此某些專家定義如圖一軟體開發流程.事實上,UML幫助團隊建立軟體開發過程(Software development process),並且加入商業考量因子,使公司產品符合市場需求.


統一建模語言(Unified Modeling Language, UML)主要用來可視化(Visulaize)系統架構設計,而且使用圖形符號描述系統元件之間互動與關係.另一方面,劃出軟體系統架構並不是第一優先,而是先進行需求分析(requirement analysis)和商業定義(Businese definition),這定義使用者案例(Use Case),圖形使用者界面的藍圖和流程,以問題導向物件類別圖(class diagram).換句話說,它在專案經理,市場經理和工程師之間建立溝通橋樑,不但讓團隊清楚了解初步系統藍圖與行為,而且降低溝通不良問題.

最重要的是,在進行需求分析與商業定義時,不要寫任何程式碼!我想大部分工程師不是遇到一句話就打掉重練,就是根本不需要此功能,導致工程師浪費許多時間,甚至工時越來越長.因此,公司若想給工程師良好的工作環境,你應該好好清楚定義產品走向,而不是有一個想法直接叫工程師加功能,這樣並不會使產品賣得好.換句話說,發展產品時不應該把功能把第一,而是要同時考慮功能性與市場接受度.這樣不但能增加公司營收,而且使台灣工程師辛苦有價值,拿到優渥的分紅.


UML取代傳統系統文件,不僅代表軟體系統架構圖與流程,而且準確定義各元件的行為和邏輯,甚至有效率地維護軟體系統.最重要的是,未來加入團隊夥伴能閱讀此份文件很快進入狀況,而且也節省你說明的時間.另一方面,當你遇到bug時,你不必複習你的系統架構,甚至一步一步偵錯你的程式碼,也就說減少處理bug時間.


順帶一提,UML使用到物件導向設計相關觀念,建議複習物件導向.

總結

分類

  • Structural Diagrams
    • Class diagram
    • Object diagram
    • Component diagram
    • Deployment diagram
  • Behaviour Diagrams
    • Use Case diagram
    • Sequence diagram
    • Collaboration diagram
    • Statechart diagram
    • Activity diagram

優點

  1. 更有效率與他人溝通你所做的
  2. 降低系統維護花費的錢
  3. 節省追bug時間,無須重複複習你程式架構
  4. 清楚定義你軟體行為
  5. 幫助未來加入團隊夥伴進入狀況,減少說明時間

缺點

  1. 它需要即時與你程式碼同步更新
  2. 初學者很難去定義或畫出正確的流程
  3. 初學者經常劃出過於複雜和多餘的圖

留言

這個網誌中的熱門文章

VirtualBox教學:重設硬碟(.vdi)大小(上)

VirtualBox教學:重設硬碟(.vdi)大小(下)

VirtualBox教學: 新增Windows7虛擬電腦(下)