首页 > 课堂 > 技术开发 > 正文

UML系列内容之一:UML简介

2023-06-17 18:00:48
字体:
来源:转载
供稿:网友

什么是UML

UML(Unified Modeling Language,UML)是一个通用的可视化建模语言标准,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。

提到语言,很多小伙伴开始产生恐惧了,你脑子中可能会飘过English、Java、C#、PHP等这些神兽,它们可能把不少人折腾的够呛。

但UML不是一门程序设计语言,而是一种可视化的建模语言。之所以称它为语言,因为UML提供了用于交流的词汇及规则,用户在这些词汇与规则框架下可以对同一软件进行无障碍的交流,使各种用户对于同一事物产生相同的认识。

为什么叫统一建模语言

这要从上个世纪60年代末开始,随着计算机技术的不断普及,人们对软件的需求量与日俱增,软件的规模也在不断扩大,软件的复杂度也在日益增加。由于缺乏科学的理论指导,造成软件的开发进度难以保障,软件开发成本在不断爬升,不断变化的用户需求对无法保证质量的软件也是雪上加霜,又没有相关的文档资料作为参考,使软件维护变得异常困难。人们形象的称之为软件危机。

怎么办?那必须把软件开发工作当做工程来干。因此,软件工程的概念也应运而生。软件工程旨在研究软件生产的客观规律,建立软件生产的有关概念、原则、方法、技术和工具,以指导软件生产活动。当然取得了令人满意的效果。

随着人们对软件工程研究的不断深入,面向对象的程序设计进入人们的视野。20世纪80年代到90年代初,诞生了很多面向对象的分析与设计方法,也出现了一大堆介绍面向对象方法的书籍。这有点像百家争鸣的感觉。

每一位书籍作者都领导者一批实践者,这些方法有很多相似之处,但又有细微的差别。

这给同一领域的实践者也带来困惑,在谈论同一事物时,他们可能拿出不同的面向对象表示方法,这严重阻碍了他们对同一事物的理解和交流。

这个时候,有人提议,我们统一一下,使用相同的标准吧。众人似乎没听到他的呼声,无人理睬。有一个组织叫OMG(Object Management Group)也尝试着对面向对象进行标准化,但只收到所有方法学家的一封公开抗议信。这让Martin Fowler(UML精粹:标准对象建模语言简明指南的作者)想起一则笑话:

A:方法学家和恐怖分子之间有什么区别呢?

B:恐怖分子可以谈判。

在1995 OOPSLA(Object-Oriented Programming Systems,Languages and Applications)年度会议上,Grady Booch和Jim Rumbaugh首次公开描述了他们合并后的方法,即统一方法文档0.8。

经过一系列的各方较量,1997年1月,各方组织一起提交了方法标准的建议书,Rational和其他组织一起协作,发布了UML文档1.0版本。这也是第一次被叫做统一建模语言。

又经过各方掰手腕的过程,OMG采纳1.1版作为官方的OMG标准。又经过一系列修改,UML1.4和UML1.5已经比较成熟。

很多人们在谈论UML时,会把创造者的功劳主要归于Grady Booch、Ivar Jacobson和Jim Rumbaugh,把他们称为“三友”(Three Amigos)。

Grady Booch  Ivar Jacobson  Jim Rumbaugh
Grady Booch Ivar Jacobson Jim Rumbaugh

当然也有人表示了反对,认为他们在前期做出了一定的贡献,但在后期OMG委员会的人员做了很多贡献,而三人中Jim Rumbaugh在后期是唯一做出贡献的人。

UML统一了什么

(1)方法和表示法方面

在以往出现的方法和表示法方面,UML合并了许多面向对象方法中被普遍接受的概念,对每种概念,UML都给出了清晰的定义、表示法和有关术语。使用UML可以对已有的各种方法建立的模型进行描述,并比原来的方法描述得更好。

(2)软件周期方面

在软件开发的生命期方面,UML对开发的要求具有无缝性。开发过程中的不同阶段可以采用相同的一整套概念和表示法,在同一个模型中,它们可以混合使用,而不必转换概念和表示法。这种无缝性对迭代的增量式软件开发至关重要。

(3)在应用领域方面

在应用领域方面,UML适用于各种领域的建模,包括大型的、复杂的、实时的、分布的、集中式数据或计算的、嵌入式的系统等。

(4)编程语言和开发平台方面

在实现的编程语言和开发平台方面,UML可应用于运行各种不同的编程实现语言和开发平台的系统。

(5)开发过程方面

在开发过程方面,UML是一种建模语言,不是对开发过程的细节进行描述的工具。就像通用程序设计语言可以进行许多风格的程序设计一样。

(6)内部概念方面

在内部概念方面,在构建UML元模型的过程中,应特别注意揭示和表达各种概念之间的内在联系。试图用多种适用于已知和未知情况的办法把握建模中的概念,这个过程会增强对概念及其适用性的理解。这不是统一各种标准的初衷,但却是统一各种标准最重要的结果之一。

UML的组成

UML的组成可以使用下图来说明。

UML的组成

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表