【原】UML笔记(1):UML简介
目录:
- UML的产生背景
-
UML的发展史
-
UML的作用
-
UML的构成
-
UML的适用领域
正文:
UML的产生背景:
计算机有软件和硬件两部分组成,从计算机诞生到现在,硬件技术始终比软件技术的发展速度快。上世纪60年代,“软件危机”发生,硬件技术的迅速发展使得计算机价格下降,成了普通人可以用得起的“家用电器”;人们需要更加复杂的软件系统来满足他们工作、生活中的各种需要,但是,当时的软件开发模式很难开发出复杂的软件,即使开发出来,其可靠性、可维护性都是很大的问题。
为了解决“软件危机”,人们提出了“软件工程”的概念,试图将工程化的思想引入到软件业。在这一阶段,诞生了很多的开发方法,其中包括面向对象的开发方法,由于面向对象的各种优点,这种开发方法得到了大家的普遍关注,出现了Simula、C++ 、Java、 C#等面向对象的语言,也出现了各种面向对象的建模方法:OMT、OOSE、Booch等。这些建模方法之间各有区别,对于开发人员来讲,如同三门不同的语言,使用不同语言的开发人员不能很好的交流。
这时,人们期待一种统一的建模语言的诞生,如同建筑设计图一样,符号简单、没有二义性而且更重要的是人人都能够看懂,交流起来很方便,就这样,UML诞生了,UML提出了一套IT专业人员期待多年的统一的标准建模符号。通过使用UML,人员能够阅读和交流系统架构和设计规划,就像建筑工人多年来所使用的建筑设计图一样。
UML的发展史
在1995年10月,Grady Booch和James Rumbaugh一同工作,为了合并两大著名的对象方法——Booch'93和OMT-2,合并后的新方法定为“统一方法”(Unified Method),其为UML的前身。后来,在1995年秋天,Ivar Jacobson也加入研究行列,动手合并另一个著名的对象方法—— OOSE。在这之后的一年,他们才公布UML,正式将其定位为建模语言,并且舍弃了先前的统一方法。这令人精神一振,因为UML不再是另一个老掉牙的对象方法了,它是一个新发明,至此UML真正诞生了。1997年十一月,UML的1.1版出炉了,OMG从此接过了制定以后各个版本的责任。各个版本及发布年限参见下图
UML的作用
在建筑领域,建筑设计师可以用画在图纸上的模型图、存在计算机中的模型或实际的三维模型是自己的设计结果可视化,并用这些模型来做设计方面的试验。建造、修改一个小的模型比较,这使得设计人员不需要花费什么代价就可以进行创造和革新,最终设计出经济、安全、美观且符合用户需求的建筑。
在软件领域,UML充当了最终软件产品的模型,UML通过各种模型图,从不同角度出发分析问题,每一种模型图都是最终软件产品的一种投影,设计人员可以用这些模型图与用户交流,确认用户的需求,设计人员可以用这些模型图与开发人员交流,确认开发的可行性方案,设计人员可以用这些模型图与测试人员交流,确认测试的完备性等等,总之,通过使用UML,可以使开发过程中不同角色的人员之间能够得到高效的沟通,这样,可以最大限度的保证每个人员心目中的最终产物的一致性,从而使开发更加高效、产物更加“精确”。
UML的构成
UML的三要素:基本构造块、规则、公共机制。
1.基本构造块由三部分组成:事物、关系、图组成。
1.1四种事物及在UML中各种元素所属的事物如下图所示:
1.2 四种关系:关联、泛化、实现、依赖:
1.3 9种图及其所属的视图如下所示:
2.规则
不能简单的把UML的构造块按随机的方式放在一起。像任何语言一样,UML有一套规则,这些规则描述了一个结构良好的模型看起来应该像什么
UML有用于描述如下事物的语义规则
·命名:为事物、关系和图起名
·范围:给一个名称以特定含义的语境
·可见性:怎样让其他人使用或看见名称
·完整性:事物如何正确、一致的相互联系
·执行运行或模拟动态模型的含义是什么
3. 公共机制
略
UML的适用领域
UML的目标是以面向对象的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。
此外,UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。分析阶段主要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互间的关系,并用UML类图来描述。为实现用例,类之间需要协作,这可以用UML动态模型来描述。在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通讯和并行性等问题的类)。这些技术细节将在设计阶段引入,因此设计阶段为构造阶段提供更详细的规格说明。
编程(构造)是一个独立的阶段,其任务是用面向对象编程语言将来自设计阶段的类转换成实际的代码。在用UML建立分析和设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅是理解和分析系统结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。
UML模型还可作为软件测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和合作图;系统测试使用用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。
总之,标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
参考:
http://www.hudong.com/wiki/UML#9
http://book.51cto.com/art/200801/65305.htm
http://wenku.baidu.com/view/e580063a580216fc700afd07.html
http://www.docin.com/p-4662320.html
http://blog.csdn.net/cjqhuadielei/article/details/5900832