统一的建模语言

UML徽标

统一的建模语言)是通用的发展建模语言在...方面软件工程这旨在提供一种可视化系统设计的标准方法。[1]

UML的创建最初是出于标准化不同符号系统和软件设计方法的愿望而激发的。它是在理性软件在1994年至1995年,直到1996年,他们的进一步发展领导。[1]

1997年,UML被作为标准对像管理组(OMG),从那以后一直由该组织管理。2005年,UML也由国际标准化组织(ISO)作为批准的ISO标准。[2]从那时起,该标准进行了定期修订,以涵盖UML的最新修订。[3]在软件工程中,大多数从业人员不使用UML,而是制作非正式的手绘图。但是,这些图通常包括UML的元素。[4]:536

历史

面向对象的方法和符号的历史图

在UML 1.0之前

自1990年代下半年以来,UML一直在发展面向对象的编程方法于1980年代末和1990年代初开发。时间轴(参见图像)显示了面向对象的建模方法和符号的历史记录的亮点。

它最初是基于布希方法, 这对象建模技术(OMT)和面向对象的软件工程(OOSE),已将其集成到单一语言中。[5]

理性软件公司雇用詹姆斯·伦贝通用电气在1994年,此后,该公司成为了当天最受欢迎的两种最受欢迎的面向对象建模方法的来源:[6]伦贝的对象建模技术(OMT)和Grady Booch的方法。他们很快得到了他们的努力伊瓦尔·雅各布森,创造者面向对象的软件工程(OOSE)方法,他于1995年加入理性。[1]

UML 1.x

在这三个的技术领导下(Rumbaugh,Jacobson和Booch),该财团称为UML合作伙伴成立于1996年以完成统一建模语言(UML)规范,并将其提交给对像管理组(OMG)进行标准化。该合作伙伴关系还包含其他有关方面(例如生命值十二月IBM微软)。联盟于1997年1月向OMG提出了UML Partners的UML 1.0草案。在同月,UML合作伙伴组成了一个小组,旨在定义语言构造的确切含义,由克里斯·科布林(Cris Kobryn)并由Ed Eykholt管理,以最终确定规范并将其与其他标准化工作集成在一起。这项工作的结果是UML 1.1,于1997年8月提交了OMG,并于1997年11月被OMG通过。[1][7]

首次发行后,组建了一个工作队[1]为了改善语言,该语言发布了几次次要修订,即1.3、1.4和1.5。[8]

它产生的标准(以及原始标准)被认为是模棱两可和不一致的。[9]

基数符号

与数据库Chen,Bachman和ISO一样ER图,指定类模型使用“ Look-across”红衣主教,即使有几位作者(梅里斯[10]Elmasri&Navathe[11]在其他人中[12])更喜欢相同的角色以及最小和最大红衣主教。最近的研究人员(Feinerer,[13]Dulleea等。[14])表明,UML和ER图使用的“外观”技术在应用于n - 严格大于2的秩序关系。

费纳雷说:“如果我们在UML协会的Look-across语义下进行操作,就会出现问题。Hartmann[15]调查了这种情况,并显示了如何以及为什么不同的转换失败。n - ARY协会。”

UML 2

UML 2.0主要修订替换了2005年的1.5版,该版本是通过扩大财团开发的,以进一步改善该语言,以反映其功能使用的新体验。[16]

尽管UML 2.1从未作为正式规范发布,但版本2.1.1和2.1.2出现在2007年,其次是2009年2月2.2日。UML2.3于2010年5月正式发布。[17]UML 2.4.1于2011年8月正式发布。[17]UML 2.5于2012年10月作为“进度”版本发布,并于2015年6月正式发布。[17]正式版本2.5.1于2017年12月采用。[18]

UML 2.x规格有四个部分:

  • 定义图表符号和语义的上层结构及其模型元素
  • 定义上层结构的核心元模型的基础架构
  • 对象约束语言(OCL)定义模型元素规则
  • UML图互换定义了如何交换UML 2图布局

在UML 2.4.1之前,这些标准的最新版本是:[19]

  • UML上层建筑2.4.1版本
  • UML基础架构版本2.4.1
  • OCL版本2.3.1
  • UML图Interchange版本1.0。

自2.5版以来,UML规范已被简化(没有上层结构和基础架构),并且这些标准的最新版本现在为:[20]

  • UML规范2.5.1
  • OCL版本2.4

修订工作组将继续更新和改进,他们解决了该语言的任何问题。[21]

设计

UML提供了一种在图中可视化系统架构蓝图的方法,包括:[5]

  • 任何活动(工作);
  • 个人成分系统;
  • 系统将如何运行;
  • 实体如何与他人互动(组件和接口);
  • 外部的用户界面.

尽管最初用于面向对象的设计文档,但UML已扩展到较大的设计文档集(如上所述),[22]并被发现在许多情况下有用。[23]

软件开发方法

UML本身不是开发方法。[24]但是,它旨在与以对象为导向的软件开发方法兼容,例如OMT布希方法对象特别是鲁普它最初是为了在理性软件开始工作时与之使用。

造型

区分系统模型和系统图集很重要。图是系统模型的部分图形表示。一组图不需要完全覆盖模型并删除图不会改变模型。该模型还可能包含驱动模型元素和图表的文档(例如书面用例)。

UML图代表系统模型的两个不同视图:[25]

  • 静态(或结构)视图:使用对象,属性,操作和关系强调系统的静态结构。这包括班级图复合结构图.
  • 动态(或行为的)视图:通过显示对象之间的协作以及对象内部状态的更改来强调系统的动态行为。此视图包括序列图活动图状态机图.

UML模型可以在UML工具通过使用XML元数据互换(XMI)格式。

在UML中,行为建模的关键工具之一是用用例模型Oose。用例是指定系统所需用法的一种方式。通常,它们用于捕获系统的要求,即系统应该做什么。[26]

UML 2具有多种类型的图表,分为两类。[5]某些类型代表结构信息,其余的代表一般类型行为,包括一些代表不同方面的互动。这些图可以在层次上分类,如以下类图所示:[5]

Hierarchy of UML 2.2 Diagrams, shown as a class diagram

这些图可能包含注释或注释,以说明用法,约束或意图。

结构图

结构图代表系统的静态方面。它强调了要建模的系统中必须存在的事物。由于结构图代表结构,因此它们广泛用于记录软件体系结构软件系统。例如,组件图描述如何将软件系统分为组件,并显示这些组件之间的依赖性。

行为图

行为图代表系统的动态方面。它强调正在建模的系统中必须发生什么。由于行为图说明了系统的行为,因此它们被广泛用于描述软件系统的功能。例如,活动图描述系统中组件的业务和运营分步活动。

交互图

互动图,行为图的子集,强调控制流以及正在建模的系统中的事物中的数据。例如,序列图显示对像如何相互通信有关一系列消息的序列。

元模型

元对象设施的插图

对像管理小组(OMG)开发了元模型定义UML的架构,称为元对象设施.[27]MOF被设计为四层架构,如右图所示。它在顶部提供了一个称为M3层的元模型。该M3模型是Meta-Object设施使用的语言来构建称为M2模型的元模型。

第2层元对象设施模型的最突出的例子是UML元模型,它描述了UML本身。这些M2模型描述了M1层的元素,因此描述了M1模型。例如,这些是用UML编写的模型。最后一层是M0层或数据层。它用于描述系统的运行时实例。[28]

可以使用称为称为的机制扩展元模型刻板印象。这被批评为不足/站不住脚布莱恩·亨德森(Brian Henderson Sellers)和塞萨尔·冈萨雷斯·佩雷斯(Cesar Gonzalez-Perez)在“ UML 1.x和2.0中的刻板印像机构的使用和滥用”中。[29]

采用

UML在许多情况下被销售。[23][30]

它有时被视为设计银色子弹,这导致问题。UML滥用包括过度使用(使用该系统的每个部分设计,这是不必要的),并假设新手可以使用它来设计。[31]

它被认为是一种大语言,有很多结构体。有些人(包括雅各布森)感觉UML的尺寸阻碍了学习(因此,使用它)。[32]

也可以看看

参考

  1. ^一个bcde统一建模语言用户指南,(2 ed。)。 Addison-Wesley。 2005年。 496。ISBN 0321267974.,查看示例内容,寻找历史记录
  2. ^“ ISO/IEC 19501:2005-信息技术 - 开放分布式处理 - 统一建模语言(UML)版本1.4.3”。 iso.org。 2005年4月1日。检索5月7日2015.
  3. ^“ ISO/IEC 19505-1:2012-信息技术 - 对像管理组统一建模语言(OMG UML) - 第1部分:基础架构”。 iso.org。 2012年4月20日。检索4月10日2014.
  4. ^贝尔特斯,塞巴斯蒂安;Diehl,Stephan(2014年11月11日)。“实践中的草图和图表”.第22届ACM Sigsoft国际软件工程基础研讨会论文集。FSE2014。香港,中国:计算机协会:530–541。arxiv1706.09172.doi10.1145/2635868.2635891.ISBN 978-1-4503-3056-5.S2CID 2436333.
  5. ^一个bcd“ OMG统一建模语言(OMG UML),上层建筑。版本2.4.1”。对像管理组。检索4月9日2014.
  6. ^Andreas Zendler(1997)高级概念,生命周期模型和针对OBJECKT的软件开发的工具。 p。 122
  7. ^“ UML规范版本1.1(OMG文档AD/97-08-11)”。 omg.org。检索9月22日2011.
  8. ^“ uml”。 omg.org。检索4月10日2014.
  9. ^Génova等人2004年“工业用例建模中的开放问题”
  10. ^Hubert Tardieu,Arnold Rochfeld和RenéCollettiLa Merise Merise:Principes et Outils(平装书 - 1983年)
  11. ^Elmasri,Ramez,B。Shamkant,Navathe,数据库系统基础,第三版,艾迪生 - 韦斯利,美国加利福尼亚州门洛公园,美国,2000年。
  12. ^ER 2004:2004年11月8日至12日,中国上海第23届国际概念建模会议存档2013年5月27日在Wayback Machine
  13. ^“对UML类图的正式处理是一种配置管理2007的有效方法”(PDF)。检索9月22日2011.
  14. ^“詹姆斯·杜莱(James Dulleea),Il-yeol歌曲,ioanna lamprou-对实体关系建模2002的结构有效性的分析”(PDF)。检索9月22日2011.
  15. ^"“有关参与约束和陈的限制的推理” S Hartmann -2003”(PDF)。检索8月17日2013.
  16. ^“ UML 2.0”。 omg.org。检索9月22日2011.
  17. ^一个bc“ uml”。 omg.org。检索9月22日2011.
  18. ^“ UML 2.5.1规格”。 omg.org。检索10月24日2018.
  19. ^我的天啊。“ OMG形式规格(建模和元数据段)”。检索2月12日2016.
  20. ^我的天啊。“关于统一的建模语言规范”。检索2月22日2020.
  21. ^“ UML 2.6修订工作组邮寄列表的问题”。 omg.org。检索4月10日2014.
  22. ^Satish Mishra(1997)。“视觉建模和统一建模语言(UML):UML简介”。理性软件公司。访问2008年11月9日。
  23. ^一个b“嗯,成功的故事”。检索4月9日2014.
  24. ^约翰·亨特(John Hunt)(2000)。从业者的统一过程:面向对象的设计,UML和Java。施普林格,2000年。ISBN1-85233-275-1。 p。 5.室
  25. ^乔恩·霍尔特电气工程师学会(2004)。用于系统工程的UML:观看车轮IET,2004年,ISBN0-86341-354-4。 p。 58
  26. ^Manuel Almendros-Jiménez,Jesús和Iribarne,路易斯。(2007)。描述与序列图的用例关系。计算。J .. 50. 116-128。10.1093/comjnl/bxl053。
  27. ^Iman Poernomo(2006)”元对象设施键入“ 在:推进SAC '06 2006 ACM ACM研讨会上应用计算会议论文集。 pp。1845–1849
  28. ^“ UML 2.4.1基础架构”。 omg.org。 2011年8月5日。检索4月10日2014.
  29. ^B. Henderson Sellers;C. Gonzalez-Perez(2006)。“ UML 1.x和2.0中的刻板印像机制的使用和滥用”。在:模型驱动的工程语言和系统。施普林格柏林 /海德堡。
  30. ^“ UML 2.5:你甚至在乎吗?”.“ uml确实无处不在”
  31. ^“因UML发烧而死亡”.
  32. ^“伊瓦尔·雅各布森(Ivar Jacobson)在UML,MDA和方法论的未来”.

进一步阅读

外部链接