统一建模语言

维基百科,自由的百科全书

跳转到: 导航, 搜索
物件導向分析的歷史
物件導向分析的歷史

统一建模语言UML,Unified Modeling Language)是非专利的第三代建模规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。

UML集成了BoochOMT面向对象软件工程的概念,将这些方法融合为单一的,通用的,并且可以广泛使用的建模语言。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
UML 2.0
狀態圖實例
狀態圖實例

UML 2.0 中一共定義了13 種圖示(diagrams)。為方便了解,可分類成右側的結構。

結構性圖形(Structure diagrams) 強調的是系統式的建模:

行為式圖形(Behavior diagrams) 強調系統模型中觸發的事件:

溝通性圖形(Interaction diagrams), 屬於行為圖形的子集合,強調系統模型中的資料流程:

協定狀態機是狀態機的子變種。它用來塑造網路通訊協定模型。

UML 並不限定 UML 要素型別非得是某圖形上的型別。一般來說,每個 UML 要素大約會出現在圖的所有型別。這種彈性在 UML 2.0 部分被限定。

為了要保持工程圖的傳統,在您的 UML 圖上加註用途、約束、或意圖永遠無傷大雅。

[编辑] 概念

UML 從來源中使用相當多的概念. 我們將之定義於統一建模語言術語彙表。下面僅列代表性的概念.

對於結構而言

執行者屬性元件接口對象

對於行為而言

活動事件訊息方法操作狀態用例

對於關係而言

聚合關聯組合相依廣義化 (or 繼承)。

其他概念

[编辑] 参见

[编辑] 开源软件自由软件中 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)查看  討論  編輯  歷史 )
背景

機構Object Management Group (OMG) • UML Partners
個人Grady Booch • Ivar Jacobson • James Rumbaugh 

概念

物件導向: 物件導向的程式設計 

結構: 執行者 • 屬性 •  • 元件 • 接口 • 對象 •  

行為: 活動 • 事件 • 訊息 • 方法 • 操作 • 狀態 • 用例 

關係: 聚合 • 關聯 • 組合 • 相依 • 廣義化 (or 繼承

其他概念: 構造型 • 多重性 • 角色 

結構圖
類別圖 • 元件圖 • 複合結構圖 • 部署圖 • 物件圖 • 包圖 

行為圖
活動圖 • 狀態機圖 • 使用個案圖 • 通信圖 • 交互概述圖 • 循序圖 • 時間圖 

主題

關聯式資料庫模型(ERD)比較 • 統一塑模語言術語彙表 • 系統塑模語言(SysML) • UML色碼:

角色 時機,間隔
描述 哪一方,地點,事件
工具

UML工具 • Rational 統一過程

个人工具