UML用户指南(一)-----入门
为什么要建模
?
?
如果想搭建一个狗窝,备好木材、钉子和一些基本工具之后就可以开始工作了。如果没有达到希望的,反工总是可以的,无非是让狗受点委屈。如果想建造一座房子,备好东西之后也可以开始工作,但是家庭对于房子的需求肯定比狗对于狗窝的需求要多。在这种情况下,至少应该先绘制一些表明房子是什么样子的简图。如果你要建造高楼大厦,那么准备好工具就开始工作是非常愚蠢的。负责建筑物设计和施工的是一个庞大的组织机构,这个组织需要各种各样的设计图和模型,以供各方沟通。
?
奇怪的是,很多软件开发组织者想建造一座大厦式的软件,而在动手的时候却好像它们正在仓促的造一个狗窝。
?
不成功的软件项目失败的原因各有不同,而所有成功的项目由很多方面都是相似的。成功的软件组织由很多成功的因素,其中共同的一点就是对建模的采用。
?
简单的说,建模是对显示的简化,是为了能够更好的理解正在开发的系统。通过建模要达到4个目的:
?
1.模型有助于按照实际情况或按照所需要的样式对系统进行可视化。
2.模型能够规约系统的结构或行为
3.模型给了指导构造系统的模板
4.模型对做出的决策进行文档化。
?
因为不能完整的理解一个复杂的系统,所以要对它进行建模。
?
?
UML介绍
?
?
UML是一种用于可视化的语言。它不仅仅是一组图形符号。确切地讲,UML表示法中的每个符号都有明确的语义。这样,一个开发者可以用UML绘制一个模型,而另一个开发者可以无歧义地理解这个模型。
?
UML是一种可用于详细描述的语言
UML是一种用于构造的语言
UML是一种用于文档化的语言
?
UML的构造块
?
(1)?事物
(2)?关系
(3)?图
?
事物是对模型中首要成分的抽象;关系把事物结合在一起;图聚集了相关的事物。
?
A.UML中的事物
?
UML中由4种事物:
?
(1)?结构事物
(2)?行为事物
(3)?分组事物
(4)?注释事物
?
1.结构事物:描述概念元素或物理元素。结构事物总称为类目(classifier)。
?
一、类。
?
?
二、接口。
?????
?
????
?
三、协作:定义了一个交互,他是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的总和。
?
?
四、用例
?
五、主动类:其对象至少拥有一个进程或者线程,因此他能控制活动。
?
?
?
六、构件:设计系统设计的模块化部件,将实现隐藏一组外部接口之后。
七、制品:是系统中物理的而且可代替的部件,它包括物理信息,如源代码文???????????件、可执行程序和脚本。
?
八、结点:运行时的物理元素,它表示一个计算机资源,通常至少由一些记忆??能力和处理能力。
?
?
上面这些元素是UML模型中可以包含的基本结构事物。它们也接受变体,如参与者、信号、是用程序、进程、线程、应用、文档、文件、库、页、表。
?
?
2.行为事物
?
?
???3.分组事物:
?
包:不像构件,纯粹是概念上的。
?
?
4.注释事物
?
B.UML中的关系
?
UML中由4种关系:依赖、关联、泛化、实现。
?
?1.依赖(dependency)
?
是UML中的语义关系,其中一个元素(独立元素)发生变化会影响到另一个元素(依赖元素)的语义。
?
?
?2.关联(association):是类之间的结构关系。
?
?
?
?????????????3.泛化(generalization):是一种特殊/一般关系。
?
?
?4.实现(realization):是类目之间的语义关系,其中一个类目指定了由另一个铃木保证执行的合约。
?
?
?C.UML中的图
?
?
图是一组元素的图形表示,大多数情况下把图画成定点(代表事物)和弧(代表关系)的连通图。UML包括这13种图:
?
1)?类图(class?diagram)
2)?对象图(objectdiagram)
3)?构件图(componentdiagram)
4)?组合结构图
5)?用例图(use?case?diagram)
6)?顺序图(sequence?diagram)
7)?通信图(communication?diagram)
8)?状态图(state?diagram)
9)?活动图(activity?diagram)
10)?部署图(deployment?diagram)
11)?制品图(artifacts?diagram)
12)?包图(package?diagram)
13)?定时图(timing?diagram)
14)?交互概览图
?
?
D.UML中的公共机制
?
在UML中有种贯穿整个语言且一致应用的公共机制,这4种机制是:
?
1.详述
?
UML不仅仅是一种图形语言。在它的图形表示法的每部分背后都有一个详述,这个详述提供了对构造块的语法和语义的文字描述。
?
2.修饰
?
3.通用划分
?
① 类和对象划分
?
类是一种抽象,对象是这种抽象的具体表现,在图形上,UML用与类同样的符号表示对象,并且在对象名的下面画一道线。
?
前者表示一个匿名的ExamFlag对象,后者则是Elyse,明确表示是ExamFlag对象。
?
?
② 接口和实现的分离
?
?
?
?
?
③ 类型和角色的分离
?
?
4.扩展机制
?
?
① 衍型(stereotype)
?
衍型扩展了UML词汇,可以用来创造新的构造块。可以把衍型看做元类型(一种定义其他类型的类型),因为每一个衍型将创建一个相当于UML元模型中新类的等价物。
?
?
?
标记值(tagged?value)
?
标记值扩展了UML衍型的特性,可以用来创建衍型的详述的新信息。
?
约束
?
扩展了UML构造块的语义,可以用来增加新的规则或修改现有的规则