统一建模语言
维基百科,自由的百科全书
统一建模语言(UML,Unified Modeling Language)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
UML集成了Booch,OMT和面向对象软件工程的概念,将这些方法融合为单一的,通用的,并且可以广泛使用的建模语言。UML打算成为可以对并发和分布式系统的标准建模语言。
UML并不是一个工业标准,但在Object Management Group的主持和资助下,UML正在逐渐成為工业标准。OMG 之前曾經呼籲業界向其提供有關物件導向的理論及實現的方法,以便製作一個嚴謹的軟體塑模語言(software modeling language)。有很多業界的領袖亦真誠地回應OMG,幫助她建立一個業界標準。
目录 |
[编辑] 模型
在UML系统开发中有三个主要的模型:
- 功能模型:从用户的角度展示系统的功能,包括用例图。
- 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图。
- 动态模型:展现系统的内部行为。包括序列图,活动图,状态图。
区分UML模型和UML图是非常重要的,UML图,包括用例图、协作图、活动图、序列图、部署图、构件图、类图、状态图,是模型中信息的图形表达方式,但是UML模型独立于UML图存在。XML的当前版本只提供了模型信息的交换,而没有提供图信息的交换。
UML使用一套与Java语言或其他面向对象语言等价物,同时也是本体论等价物的图形标记。
UML并不是一个方法学,也不要求使用一个方法学,但是UML对于Rational 統一過程来说是必不可少的。
[编辑] 圖形
UML 2.0 中一共定義了13 種圖示(diagrams)。為方便了解,可分類成右側的結構。
結構性圖形(Structure diagrams) 強調的是系統式的建模:
-
- 類別圖 (Class Diagram)
- 元件圖(Component diagram)
- 複合結構圖(Composite structure diagram)
- 部署圖(Deployment diagram)
- 物件圖(Object diagram)
- 包圖(Package diagram)
行為式圖形(Behavior diagrams) 強調系統模型中觸發的事件:
-
- 活動圖(Activity diagram)
- 狀態機圖 (State Machine diagram)
- 使用個案圖 (Use Case Diagram)
溝通性圖形(Interaction diagrams), 屬於行為圖形的子集合,強調系統模型中的資料流程:
-
- 通信圖(Communication diagram]]
- 交互概述圖(Interaction overview diagram) (UML 2.0)
- 循序圖(Sequence diagram)
- 時間圖(UML Timing Diagram) (UML 2.0)
協定狀態機是狀態機的子變種。它用來塑造網路通訊協定模型。
UML 並不限定 UML 要素型別非得是某圖形上的型別。一般來說,每個 UML 要素大約會出現在圖的所有型別。這種彈性在 UML 2.0 部分被限定。
為了要保持工程圖的傳統,在您的 UML 圖上加註用途、約束、或意圖永遠無傷大雅。
[编辑] 概念
UML 從來源中使用相當多的概念. 我們將之定義於統一建模語言術語彙表。下面僅列代表性的概念.
對於結構而言
對於行為而言
對於關係而言
- 聚合,關聯,組合,相依,廣義化 (or 繼承)。
其他概念
-
- 構造型 — 這規範符號應用到的模型
- 多重性 — 多重性標記法與資料庫塑模基數對應,例如: 1, 0..1, 1..*
- 角色
[编辑] 参见
[编辑] 开源软件和自由软件中 UML 应用程序
- ArgoUml, UML 设计工具(主页)
- Dia, 可绘制包含 UML 在内的多种图形 (主页)
- UMLet, 用 Java 实现的 UML 简单绘图工具 (主页)
- Umbrello UML modeler, 强大而又界面友好的 UML 工具。是KDE的一部分。 (主页)
- Unimodeler, Linux 下支持 9 种 UML 图和向量打印的工具 (homepage)
- Jude (UML Tool), Java 和 UML 开发者环境 (主页)
- Jumli, 用 Java实现,支持 C++/C#/Java 以及解析/生成源代码 (主页)
- omondo UML, Eclipse的UML插件, 提供有限功能的免费版 (需注册)和完整的商业版 (主页)
- Poseidon for UML, 专业 UML 工具,提供免费的社区版(Community Edition)。从开源项目ArgoUml而来。 请参见 (主页)。
- Violet 是为学生、教师以及只需要快速创建简单 UML 的应用者而设计的工具。 GPL 授权 (主页)
[编辑] 外部链接
- UML Resource Page of the Object Management Group. Contains among other information the UML specification.
- 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
統一建模語言 (UML) ( |
)|
背景 |
|
機構: Object Management Group (OMG) • UML Partners |
|
概念 |
|
物件導向: 物件導向的程式設計 結構: 執行者 • 屬性 • 類 • 元件 • 接口 • 對象 • 包 行為: 活動 • 事件 • 訊息 • 方法 • 操作 • 狀態 • 用例 關係: 聚合 • 關聯 • 組合 • 相依 • 廣義化 (or 繼承) 其他概念: 構造型 • 多重性 • 角色 |
|
圖 | |
結構圖 |
行為圖 |
主題 | |
關聯式資料庫模型(ERD)比較 • 統一塑模語言術語彙表 • 系統塑模語言(SysML) • UML色碼: |
|
角色 | 時機,間隔 |
描述 | 哪一方,地點,事件 |
工具 | |