For faster navigation, this Iframe is preloading the Wikiwand page for 统一建模语言.

统一建模语言

UML的标志

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

這個語言由葛來迪·布區伊瓦爾·雅各布森詹姆士·蘭寶於1994年至1995年間,在Rational Software英语Rational Software公司中開發,於1996年又進一步發展。UML集成了Booch英语Booch method对象建模技术英语Object-modeling technique面向对象程序设计的概念,将这些方法融合为单一的,通用的,并且可以广泛使用的建模语言。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.0
使用个案图实例
状态图实例

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从来源中使用相当多的概念。下面仅列代表性的概念。

对于结构而言

执行者,属性,类,元件接口对象,包。

对于行为而言

活动英语Activity (UML)事件英语Event (UML)消息方法状态英语State (computer science)用例

对于关系而言

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

其他概念

  • 构造型—这规范符号应用到的模型
  • 多重性—多重性标记法与资料库塑模基数对应,例如:1, 0..1, 1..*
  • 角色
各式UML

UML应用程序

开源/自由软件

参见

参考文献

  1. ^ 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). 
  2. ^ 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). 
  3. ^ 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. 

外部链接

{{bottomLinkPreText}} {{bottomLinkText}}
统一建模语言
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?