免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 724 | 回复: 0
打印 上一主题 下一主题

2.2 图 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-20 15:34 |只看该作者 |倒序浏览

2.2 图


图(diagram)由图片(graph)组成,图片是模型元素的符号化。把这些符号有机地组织起来形成的图表 示了系统的一个特殊部分或某个方面。一个典型的系统模型应有多个各种类型的图。图是一个具体视图的组成部分,在画一个图时,就相当于把这个图分配给某个视 图了依。据图本身的内容,有些图可能是多个视图的一部分。
UML 中包含用例图、类图、对象图、状态图、序列图、协作图、活动图、组件图、展开图共九种。本小节讨论九种图的基本概念。关于图的语法含义它们之间怎样交互等 所有细节将在后继章节中叙述。使用这九种图就可以描述世界上任何复杂的事物,这就充分地显示了UML 的多样性和灵活性。
2.2.1 用例图
用 例图(use-case diagram)用于显示若干角色(actor)以及这些角色与系统提供的用例之间的连接关系,如图2-1 所示。用例是系统提供的功能(即系统的具体用法)的描述。通常一个实际的用例采用普通的文字描述,作为用例符号的文档性质。当然,实际的用例图也可以用活 动图描述。用例图仅仅从角色触发系统功能的用户等使用系统的角度描述系统中的信息,也就是站在系统外部察看系统功能,它并不描述系统内部对该功能的具体操 作方式。用例图定义的是系统的功能需求。关于用例图的图示方法、含义等更进一步的介绍放在第三章中。

查看更多精彩图片

 

2.2.2 类图
类图(class diagram)用来表示系统中的类和类与类之间的关系,它是对系统静态结构的描述如图2-2 所示。
类 用来表示系统中需要处理的事物,类与类之间有多种连接方式(关系),比如关联(彼此间的连接)、依赖(一个类使用另一个类)、通用化(一个类是另一个类的 特殊化)、或打包(packaged)(多个类聚合成一个基本元素)。类与类之间的这些关系都体现在类图的内部结构之中,通过类的属性 (attribute)和操作(operation)这些术语反映出来。在系统的生命周期中,类图所描述的静态结构在任何情况下都是有效的。
一个典型的系统中通常有若干个类图,一个类图不一定包含系统中所有的类,一个类还可以加到几个类图中。在第四章中,我们再详细讨论。

 

查看更多精彩图片

 

2.2.3 对象图
对象图是类图的变体。两者之间的差别在于对象图表示的是类的对象实例,而不是真实的类。对象图是类图的一个范例(example),它及时具体地反映了系统执行到某处时系统的工作状况。
对象图中使用的图示符号与类图几乎完全相同,只不过对象图中的对象名加了下划线,而且类与类之间关系的所有实例也都画了出来,如图2-3 所示,图2-3(a)的类图抽象地显示各个类及它们之间的关系,图2-3(b)的对象图则是图2-3(a)类图的一个实例表示。
对象图没有类图重要,对象图通常用来示例一个复杂的类图,通过对象图反映真正的实例是什么,它们之间可能具有什么样的关系,帮助对类图的理解。对象图也可以用在协作图中作为其一个组成部分,用来反映一组对象之间的动态协作关系。

 

查看更多精彩图片

 

 


2.2.4 状态图
一 般说来,状态图是对类所描述事物的补充说明,它显示了类的所有对象可能具有的状态,以及引起状态变化的事件,如图2-4 所示。事件可以是给它发送消息的另一个对象或者某个任务执行完毕(比如,指定时间到)。状态的变化称作转移(transition)。 一个转移可以有一个与之相连的动作(action),这个动作指明了状态转移时应该做些什么。
并不是所有的类都有相应的状态图。状态图仅用于具有下列特点的类,具有若干个确定的状态,类的行为在这些状态下会受到影响且被不同的状态改变。
另外,也可以为系统描绘整体状态图。关于状态图更进一步的讨论详见第五章和第八章。

查看更多精彩图片


 

2.2.5 序列图
序列图用来反映若干个对象之间的动态协作关系,也就是随着时间的流逝,对象之间是如何交互的。如图2-5 所示。序列图主要反映对象之间已发送消息的先后次序,说明对象之间的交互过程,以及系统执行过程中,在某一具体位置将会有什么事件发生。
序 列图由若干个对象组成,每个对象用一个垂直的虚线表示(线上方是对象名)每个对象的正下方有一个矩形条,它与垂直的虚线相叠,矩形条表示该对象随时间流逝 的过程(从上至下),对象之间传递的消息用消息箭头表示,它们位于表示对象的垂直线条之间。时间说明和其他的注释作为脚本放在图的边缘。对序列图的讨论详 见第五章和第八章。

查看更多精彩图片

 

2.2.6 协作图
协作图和序列图的作用一样,反映的也是动态协作。除了显示消息变化(称为交互)外,协作图还显示了对象和它们之间的关系 (称为上下文有关)。由于协作图或序列图都反映对象之间的交互,所以建模者可以任意选择一种反映对象间的协作。如果需要强调时间和序列,最好选择序列图; 如果需要强调上下文相关,最好选择协作图。
协作图与对象图的画法一样,图中含有若干个对象及它们之间的关系(使用对象图或类图中的符号)对象之间 流动的消息用消息箭头表示,箭头中间用标签标识消息被发送的序号、条件、迭代(iteration)方式、返回值等等。通过识别消息标签的语法,开发者可 以看出对象间的协作,也可以跟踪执行流程和消息的变化情况。
协作图中也能包含活动对象,多个活动对象可以并发执行如图。2-6 所示,第五章和第八章详细讨论协作图。

查看更多精彩图片

 

 


2.2.7 活动图
活动图(activity diagram)反映一个连续的活动流,如图2-7 所示。相对于描述活动流(比如用例或交互)来说,活动图更常用于描述某个操作执行时的活动状况。
活动图由各种动作状态(action state)构成,每个动作状态包含可执行动作的规范说明。当某个动作执行完毕该,动作的状态就会随着改变这样动作状态的控制就从一个状态流向另一个与之相连的状态。
活动图中还可以显示决策、条件、动作状态的并行执行、消息(被动作发送或接收)的规范说明等内容。活动图在第五章中详述。

查看更多精彩图片

2.2.8 组件图
组件图(component diagram)用来反映代码的物理结构。
代码的物理结构用代码组件表示。组件可以是源代码、二进制文件或可执行文件组件。
组件包含了逻辑类或逻辑类的实现信息,因此逻辑视图与组件视图之间存在着映射关系。组件之间也存在依赖关系,利用这种依赖关系可以方便地很容易地分析一个组件的变化会给其他的组件带来怎样的影响。
组件可以与公开的任何接口(比如,OLE COM 接口)一起显示,也可以把它们组
合起来形成一个包(package),在组件图中显示这种组合包。实际编程工作中经常使用组件图(如图2-8 所示)。第六章中将进一步详述组件图。

查看更多精彩图片

 

2.2.9 展开图
展开图(deployment diagram)用来显示系统中软件和硬件的物理架构。通常展开图中显示实际的计算机和设备(用结点表示)以及各个结点之间的关系(还可以显示关系的类 型)。每个结点内部显示的可执行的组件和对象清晰地反映出哪个软件运行在哪个结点上。组件之间的依赖关系也可以显示在展开图中。
正如前面所陈述, 展开图用来表示展开视图,描述系统的实际物理结构。用例视图是对系统应具有的功能的描述,它们二者看上去差别很大,似乎没有什么联系。然而,如果对系统的 模型定义明确,那么从物理架构的结点出发,找到它含有的组件,再通过组件到达它实现的类,再到达类的对象参与的交互,直至最终到达一个用例也是可能的。从 整体来说,系统的不同视图给系统的描述应当是一致的,(如图2-9 所示)关于展开图的讨论放在第六章中详述。

查看更多精彩图片
 
 


 

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP