UML:介紹
你有想過為何要學習統一建模語言(Unified Modeling Language, UML)嗎?
這幾年來,越來越多公司要求面試者擁有此技術,漸漸在履歷上具有加分作用.然而,有部分工程師對此技術感到存疑,他不但因複雜性花費過多時間,而且不容易與軟體專案同步.然而,工程師若以自己觀點進行軟體開發,甚至未定義目標市場,造成軟體不被市場接受,因此某些專家定義如圖一軟體開發流程.事實上,UML幫助團隊建立軟體開發過程(Software development process),並且加入商業考量因子,使公司產品符合市場需求.
統一建模語言(Unified Modeling Language, UML)主要用來可視化(Visulaize)系統架構設計,而且使用圖形符號描述系統元件之間互動與關係.另一方面,劃出軟體系統架構並不是第一優先,而是先進行需求分析(requirement analysis)和商業定義(Businese definition),這定義使用者案例(Use Case),圖形使用者界面的藍圖和流程,以問題導向物件類別圖(class diagram).換句話說,它在專案經理,市場經理和工程師之間建立溝通橋樑,不但讓團隊清楚了解初步系統藍圖與行為,而且降低溝通不良問題.
UML取代傳統系統文件,不僅代表軟體系統架構圖與流程,而且準確定義各元件的行為和邏輯,甚至有效率地維護軟體系統.最重要的是,未來加入團隊夥伴能閱讀此份文件很快進入狀況,而且也節省你說明的時間.另一方面,當你遇到bug時,你不必複習你的系統架構,甚至一步一步偵錯你的程式碼,也就說減少處理bug時間.
順帶一提,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
優點
- 更有效率與他人溝通你所做的
- 降低系統維護花費的錢
- 節省追bug時間,無須重複複習你程式架構
- 清楚定義你軟體行為
- 幫助未來加入團隊夥伴進入狀況,減少說明時間
缺點
- 它需要即時與你程式碼同步更新
- 初學者很難去定義或畫出正確的流程
- 初學者經常劃出過於複雜和多餘的圖
留言
張貼留言