本页使用了标题或全文手工转换

统一建模语言

维基百科,自由的百科全书
跳转至: 导航搜索
面向对象分析的历史

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

UML集成了BoochOMT面向对象软件工程的概念,将这些方法融合为单一的,通用的,并且可以广泛使用的建模语言。UML打算成为可以对并发和分布式系统的标准建模语言。

UML并不是一个工业标准,但在Object Management Group的主持和资助下,UML正在逐渐成为工业标准。OMG之前曾经呼吁业界向其提供有关面向对象的理论及实现的方法,以便制作一个严谨的软件建模语言(Software Modeling Language)。有很多业界的领袖亦真诚地回应OMG,帮助她建立一个业界标准。

模型[编辑]

KP-UML-Generalization-20060325.svg

KP-UML-Aggregation-20060325.svg

类别图显示一般化关系一对多(多维)的实现

在UML系统开发中有三个主要的模型:

  • 功能模型:从用户的角度展示系统的功能,包括用例图。
  • 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类別图、对象图。
  • 动态模型:展现系统的内部行为。包括序列图,活动图,状态图。

区分UML模型和UML图是非常重要的,UML图,包括用例图、协作图、活动图、序列图、部署图、构件图、类图、状态图,是模型中信息的图形表达方式,但是UML模型独立于UML图存在。UML的当前版本只提供了模型信息的交换,而没有提供图信息的交换。

UML使用一套与Java语言或其他面向对象语言等价物,同时也是本体论等价物的图形标记

UML并不是一个方法学,也不要求使用一个方法学,但是UML对于Rational 统一过程来说是必不可少的。

图形[编辑]

UML 2.0
状态图实例

UML 2.2中一共定义了14种图示(diagrams)。为方便了解,可分类成右侧的结构。

结构性图形(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从来源中使用相当多的概念。我们将之定义于统一建模语言术语汇表。下面仅列代表性的概念。

对于结构而言

执行者属性元件接口对象

对于行为而言

活动(UML)事件(UML)消息(UML)方法(UML)操作(UML)状态(UML)用例(UML)

对于关系而言

聚合关联组合相依广义化(or 继承)。

其他概念

各式UML

UML应用程序[编辑]

开源软件自由软件[编辑]

  • ArgoUML,UML设计工具(主页
  • Dia,可绘制流程图以及包含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授权(主页

参见[编辑]

外部链接[编辑]


統一建模語言 (UML) ( · · )
背景

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

概念

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

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

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

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

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

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

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

主題

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

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

UML工具 • Rational 統一過程