【UML图】——静态图

在总结完用例图之后,继续对UML图中的静态图进行学习和分析。

为什么把类图、包图和对象图归为静态图?因为类图描述的是系统的静态部分;包图可以是任何一种UML图静态

组成(通常为用例图和类图);对象图描述了一个系统在某一具体时刻的静态结构。

接下来,针对这三种静态图来进行一一描述。

一、类图

类是由类名、接口、协作和关系构成,而关系分别是依赖、泛化、关联和实现。我觉得关系是类图中比较重要的

部分,它能描述类与类之间拥有何种关系。

就类图间的关系作一下解释:

1、依赖是关系中比较简单的,它描述了一个类与另一个类之间的语义连接关系,一个类的改变会影响到另一个

类,这就是一种依赖。

2、泛化与继承是大家比较容易混淆的,在网上查了相关资料,比较合理的说法是:泛化是由下往上的过程,而

继承是由上往下的过程。举个例子说明一下:苹果继承水果;水果泛化苹果。

3、关联这里分为聚合和组合。聚合和组合都是描述整体与部分的关系,那么如何区分聚合和组合?

我是这样理解的:

聚合中的整体与部分的关系:

【UML图】——静态图_第1张图片【UML图】——静态图_第2张图片

组合中的整理与部分的关系:

【UML图】——静态图_第3张图片【UML图】——静态图_第4张图片

4、实现这部分关系到接口,对接口的了解不是很多,所以这里暂时把实现这部分内容停在这,等下次发掘吧。

然后探索类图的结构秘密。

类图由类、包和他们之间的关系组成的。类图通常描述系统的结构化设计,它最基本的元素是类或接口。类图的

基本组成为:

【UML图】——静态图_第5张图片

至于类图属性和方法中左边的那些符号:

【UML图】——静态图_第6张图片

这些符号所表示的内容如下:

                                                                               【UML图】——静态图_第7张图片

    我们已经对类图了解的差不多了,那么看看实例吧!下面是我的关于机房收费系统的类图(经过师傅指导后

的):

【UML图】——静态图_第8张图片

简单介绍一下:我将收费系统按功能进行分类,每个窗体成为一类,然后按照功能把所依赖的象进行分组,

成这张图。

    补:在画图时没没有注意到用户和系统之间的关系,单纯以为用户和各个负责功能之间是简单的依赖关系,但是

经过伟涛补课,知道关系分为强弱,而能用强关系的尽量不用弱关系。而关于依赖和关联的关系如下:

只要存在对象间的交互,无论是控制的还是数据的,两者之间就存在依赖。我们现在说的依赖,它是比关联更弱

的关系。

依赖是对象间短暂的一种关系,在这个短暂的关系中,被调用类表现为调用类的局部变量、方法的参数、以及调

用类调用被调用类的静态方法,在这些情况下,我们说调用类和被调用类之间就属于依赖关系。

关联是对象间长期的一种关系,在这个长期的关系中,被调用类表现为调用类的引用、或者调用类的属性,在这

些情况下,我们说调用类和被调用类之间就属于关联关系。常见的关联关系有:一对一关系、一对多关系、多对多关

系,例如典型的客户与订单、公司与员工的关系就是一种关联关系。

所以经过修改之后的类图如下:

【UML图】——静态图_第9张图片

二、对象图

对象图就是类图的一个特殊实例,即描述系统的某一个时刻的静态结构。所以对象图就是类图去掉类,给类属性

具体赋值的结果。

下面是我在机房收费系统中总结的一个操作员给学生注册的一个例子:

【UML图】——静态图_第10张图片

是我对对象图的理解,如果大家还有不同意见,欢迎留言哈!

三、包图    

我对包的理解是:包就是一个命名空间,相当于文件夹一样的存在。它可以包含类、接口、构件、节点、协作、

用例,或者是其他的包或图都行。它就是一个大容器,为了规范整理我们的 UML图。

包图是类似于文件夹的模型元素的组合。它拥有的关系只有依赖和泛化(在类图的介绍中有提到,这里就略过了

),是比较简单的图形结构。需要注意的是包图中的元素最好语义接近,这样包的重要才能凸显。包的可见性分为三

类:public(“+”);private(“-”);protected(“#”)。

由于对包图的接触和理解较少,从网上找了一篇博客UML包图推荐推荐,对以后进一步学习包图做铺垫吧。

四、小结

UML静态图的理解真的花了很长时间,但是确实学到了很多知识。师傅说现在的慢慢积累是为以后轻松学习打基

础。因为进度有点慢,有时候确实是过于着急,知识理解程度特别浅。师傅给推荐一个办法说:在找师傅验收前(今

目标结束项目前),先写总结博客,把博客写好了之后在进行下一步计划。也就是说,从现在开始,必须把总结加入

项目计划中!





你可能感兴趣的:(对象,UML)