UML中文FAQ

2008-04-09 04:05:01来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


[color=blue:60faaa3758][size=18:60faaa3758]UML中文FAQ[/size:60faaa3758][/color:60faaa3758]


[color=darkblue:60faaa3758]V1.0
张恂
2003年10月29日

编者按:

一直很难找到中文的、适合国人看的UML FAQ,而英文的UML FAQ往往散落于各处不易收集和消化,导致很多看似简单却很基本、很关键的问题在网络论坛、BBS上被反复地提出,既浪费了提问者、解答者不少的时间和精力,也给大家学习总结、进一步提高带来了困难。于是,结合自己的所学所想试着编写了一个UML中文FAQ供各位参考。众人拾柴火焰高,有什么不足之处,欢迎大家多多提出宝贵意见,不断补充,一起来完善!
联系邮箱:zhangxun2001@hotmail.com[/color:60faaa3758]


[color=blue:60faaa3758]什么是UML?
UML有哪些特点?
UML有什么用?
UML不能做什么?
为什么要学习和掌握UML?
什么情况下不需要或不适合用UML?
什么情况下应该用UML?
促进UML普及和应用对于加强我国软件业的实力有什么重要意义?
UML的统一性表现在哪些方面?
UML是如何诞生的?
UML是一家之言,或少数派的观点吗?
UML之父是谁?
UML标准有哪些最新进展?
初学者如何开始学习UML?
世界上有哪些著名的公司、组织参与了UML标准的制订?[/color:60faaa3758]

carol1980 回复于:2004-07-09 22:04:58 [color=darkblue:bc90496e3f][size=18:bc90496e3f]什么是UML?[/size:bc90496e3f]

Unified Modeling Language(统一建模语言)是国际对象管理组织OMG制定的一个通用的、可视化建模语言标准,可以用来描述(specify)、可视化(visualize)、构造(construct)和记载(document)软件密集型系统的各种工件(artifacts,又译制品)。


[size=18:bc90496e3f]UML有哪些特点?[/size:bc90496e3f]
UML的“通用性”主要是指不仅仅可以用它来描述软件,而且还可以用它来描述一般企业或组织的业务流程以及由软、硬件共同组成、以软件为主的复杂系统(即所谓的软件密集型系统),甚至还包括非软件系统。

UML的“可视性”是指可以通过UML一系列的图形符号,组成多种视图(view)来直观、清晰地表达系统分析设计中方方面面的、许多复杂的概念。UML主要是为了人的阅读和使用而设计的,所以它采用了半形式化的,易于人们理解、交流的形式。

UML是一种分析设计专用的建模语言,它本身不是编程(programming)语言,不能直接用来生成可执行的软件。UML是一种抽象层次比C、C 、Java、VB、Delphi等文本高级语言更高的图形语言,通过它我们可以抽象地表示用高级编程语言编写的文本程序的逻辑结构和行为。相比传统的高级编程语言,UML能够更加高效、准确地反映软件设计的方案和思路,是真正用来“设计程序”(design programs)的语言。从这个意义上看,不妨称UML为“甚高级”程序设计语言。

UML基本上不能算作全新的发明,它并非学者教授、科研机构的研究成果,而是直接来自于产业界、工程界的实践总结,是在归纳基础上进行理论升华的产物,其核心内容反映了30多年来全球软件工业的领导者在软件设计构造领域的最佳实践和成功经验,因而具有很高的实用价值。

实践证明,OO分析设计(OOAD)方法比传统方法能更加准确、全面地描述现实世界。UML是用来表述OO概念的一种语言工具,而很奇妙,它本身作为一件产品同样也是用OO方法来设计的,这使得UML具有传统建模语言所不具备的很强的语义表达能力和非常灵活的可扩展性。[/color:bc90496e3f]

carol1980 回复于:2004-07-09 22:06:35 [color=blue:989c04eac6][size=18:989c04eac6]UML有什么用?[/size:989c04eac6][/color:989c04eac6]

UML的用途非常广泛,可以概括为“描述、可视化、构造、记载”4种基本功能,在业务建模、需求分析、系统设计、实现和测试、数据建模、项目管理等阶段任务中均可根据需要采用。

UML建模是建立软件开发文档的一个有效手段,通过UML可视化地描述系统需求,记载软件构成,能够显著地提高文档的质量和可读性,减少编写文档的工作量。

UML实质上是一种系统分析设计专用语言,通过可视化的图形符号结合文字说明或标记可以帮助业务/系统分析员、软件架构师/设计师、程序员等各种建模者有效地描述复杂软件(或业务)的静态结构和动态行为,包括工作流(数据流和控制流)、功能需求、结构元素及关系、架构组成、设计模式、对象协作、事件响应和状态变化等等。


[color=blue:989c04eac6][size=18:989c04eac6]UML不能做什么?[/size:989c04eac6][/color:989c04eac6]

UML不是高度形式化的语言,一般不能用于定理证明。

UML是基于OO方法的通用建模语言,不适合用户图形界面设计、超大规模集成电路(VLSI)设计、基于规则的人工智能等专业领域。

UML是一种离散型建模语言,适合对由软件、固件或数字逻辑构成的离散系统建模,不适合对工程和物理学领域中的连续系统建模。

本身作为语言,UML仅仅是一种表达形式,不是建模方法,在实际的软件项目开发中仅仅掌握一套标准的图形符号是远远不够的。用好UML首先需要掌握OOAD的基本原则和方法,并在一定的软件开发过程(如UP/RUP、XP等)的指导下进行有取舍的运用。

carol1980 回复于:2004-07-09 22:07:33 [size=18:e6daff1584][color=blue:e6daff1584]为什么要学习和掌握UML?[/color:e6daff1584][/size:e6daff1584]

首先,UML对于当前大多数希望进一步改进质量的软件开发团队来说是必不可少或必须的。为什么这样说呢?因为,C 、Java等源码并不能直观、方便地反映复杂程序的设计:如内部逻辑结构、各种隐含的依赖关系、运行时的状态改变和特殊行为等等。写好的代码仅仅是一种实现方式,很难反映出现象背后的真实本质——设计,因此对于大多数稍稍复杂点的项目来说,仅有代码是不够的。

可视化建模历来是一种成功的工程实践做法,并非软件行业所特有。软件的设计方案在用C 、Java实现之前通常隐藏在人们的头脑当中,而设计正确与否是决定软件质量好坏的要害,一个前提是必须用适当的方式把它表达出来。通过程序代码来表达、讨论、评估和选择复杂软件的设计往往是很笨拙的,这一表达

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:技术!不是艺术!(原创)

下一篇:配置管理每日构建(一)