統一塑模語言
統一塑模語言(英語:Unified Modeling Language,縮寫UML)是非專利的第三代塑模和規約語言。UML是一種開放的方法,用於說明、視覺化、構建和編寫一個正在開發的、物件導向的、軟件密集系統的製品的開放方法。UML展現了一系列最佳工程實踐,這些最佳實踐在對大規模,複雜系統進行塑模方面,特別是在軟件架構層次已經被驗證有效。
這個語言由葛來迪·布區,伊瓦爾·雅各布森與詹姆士·蘭寶於1994年至1995年間,在Rational Software公司中開發,於1996年又進一步發展。UML整合了Booch,物件塑模技術和物件導向程式設計的概念,將這些方法融合為單一的,通用的,並且可以廣泛使用的塑模語言。UML打算成為可以對並行和分散式系統的標準塑模語言。
1997年,UML被物件管理組織接納為標準,並在此之後受該組織管理。2005年,UML被國際標準化組織接納為一種標準[1],自此,該標準被定期修訂以涵蓋UML的最新版本[2]。然而,在軟件工程中,大多數從業者不使用UML,而是產生非正式的手繪圖;不過,這些圖例中仍往往包括UML的元素[3]:536。
模型
在UML系統開發中有三個主要的模型:
- 功能模型:從用戶的角度展示系統的功能,包括使用個案圖。
- 物件模型:採用物件,屬性,操作,關聯等概念展示系統的結構和基礎,包括類別圖、物件圖。
- 動態模型:展現系統的內部行為。包括序列圖,活動圖,狀態圖。
區分UML模型和UML圖是非常重要的,UML圖,包括使用個案圖、協同運作圖、活動圖、序列圖、部署圖、構件圖、類圖、狀態圖,是模型中資訊的圖形表達方式,但是UML模型獨立於UML圖存在。UML的目前版本只提供了模型資訊的交換,而沒有提供圖資訊的交換。
UML使用一套與Java語言或其他物件導向語言等價物,同時也是本體論等價物的圖形標記。
UML並不是一個方法學,也不要求使用一個方法學,但是UML對於Rational 統一過程來說是必不可少的。
圖形
UML 2.2中一共定義了14種圖示。為方便了解,可分類成右側的結構。
結構性圖形(Structure diagrams)強調的是系統式的塑模:
行為式圖形(Behavior diagrams)強調系統模型中觸發的事件:
互動性圖形(Interaction diagrams),屬於行為圖形的子集合,強調系統模型中的資料流程:
UML並不限定UML要素型別非得是某圖形上的型別。一般來說,每個UML要素大約會出現在圖的所有型別。這種彈性在UML 2.0部分被限定。
為了要保持工程圖的傳統,在您的UML圖上加注用途、約束、或意圖永遠無傷大雅。
UML 2為了符合模型驅動架構(Model Driven Architecture)的需求做了大幅度的修改除在圖形基礎上擴充及變化了部份的展現方式外,也增加了一些圖形標準元件,比前一版多出了由循序圖與互動圖所混合而成的互動概圖(Interaction Overview Diagram)、強調時間點的時序圖(Timing Diagram)與合成結構圖(Composite Structure Diagram),此外,在UML2中,UML1合作圖轉變為通訊圖(Communication Diagram),且在循序圖中也添加了互動框(Interaction Frame)的概念,還有增加一些運算子(如sd、loop、alt等)。同時,UML2支援模型驅動架構(MDA)倡議,提供穩定的基礎架構,容許軟件開發程式增添自動化作業。此外,MDA把大型的系統分解成幾個元件模型,並與其他模型保持連結,使得UML更加精確。
概念
UML從來源中使用相當多的概念。下面僅列代表性的概念。
對於結構而言
對於行為而言
對於關係而言
其他概念
-
類圖(Class Diagram)
-
構件圖(Component diagram)
-
複合結構圖(Composite structure diagram)
-
部署圖(Deployment diagram)
-
物件圖(Object diagram)
-
套件圖(Package diagram)
UML應用程式
開源/自由軟件
- ArgoUML,UML設計工具(首頁)
- Dia,可繪製流程圖以及包含UML在內的多種圖形(首頁 (頁面存檔備份,存於互聯網檔案館))
- Draw.io,線上流程圖繪製工具,提供各種圖形模板 (首頁 (頁面存檔備份,存於互聯網檔案館))
- GitMind,可線上繪製心智圖及流程圖包括UML,泳道圖等各種圖 (首頁 (頁面存檔備份,存於互聯網檔案館))
- Umbrello,強大而又介面友好的UML工具。是KDE的一部分。(首頁 (頁面存檔備份,存於互聯網檔案館))
- UMLet,用Java實現的UML簡單繪圖工具(首頁 (頁面存檔備份,存於互聯網檔案館))
- Unimodeler,Linux下支援9種UML圖和向量列印的工具(homepage (頁面存檔備份,存於互聯網檔案館))
- astah*,Java和UML開發者環境(首頁 (頁面存檔備份,存於互聯網檔案館))
- Jumli,用Java實現,支援C++/C#/Java以及解析/生成原始碼(首頁 (頁面存檔備份,存於互聯網檔案館))
- omondo UML,Eclipse的UML外掛程式,提供有限功能的免費版(需註冊)和完整的商業版(首頁 (頁面存檔備份,存於互聯網檔案館))
- Poseidon for UML,專業UML工具,提供免費的社區版(Community Edition)。從開源專案ArgoUML而來。請參見(首頁)。
- Violet是為學生、教師以及只需要快速建立簡單UML的應用者而設計的工具。GPL授權(首頁 (頁面存檔備份,存於互聯網檔案館))
- SiSy, SimpleSystem
參見
參考文獻
- ^ ISO/IEC 19501:2005 - Information technology - Open Distributed Processing - Unified Modeling Language (UML) Version 1.4.3. Iso.org. 2005-04-01 [2015-05-07]. (原始內容存檔於2016-06-10).
- ^ ISO/IEC 19505-1:2012 - Information technology - Object Management Group Unified Modeling Language (OMG UML) - Part 1: Infrastructure. Iso.org. 2012-04-20 [2014-04-10]. (原始內容存檔於2016-06-10).
- ^ Baltes, Sebastian; Diehl, Stephan. Sketches and diagrams in practice. Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. FSE 2014 (Hong Kong, China: Association for Computing Machinery). 2014-11-11: 530–541. ISBN 978-1-4503-3056-5. S2CID 2436333. arXiv:1706.09172 . doi:10.1145/2635868.2635891.
外部連結
- 官方網站
- Unified Modeling Language at FOLDOC
- Message board for UML
- A free UML tutorial (頁面存檔備份,存於互聯網檔案館)
- UML Jokes
- Article Precise Use Cases (頁面存檔備份,存於互聯網檔案館) from Methods & Tools (頁面存檔備份,存於互聯網檔案館)
- Article Database modeling in UML (頁面存檔備份,存於互聯網檔案館) from Methods & Tools (頁面存檔備份,存於互聯網檔案館)