《第5章面向对象系统设计与行为建模ppt课件.ppt》由会员分享,可在线阅读,更多相关《第5章面向对象系统设计与行为建模ppt课件.ppt(84页珍藏版)》请在三一办公上搜索。
1、UML系统建模及系统分析与设计,王欣 张毅 编著中国水利水电出版社,第5章 面向对象系统设计与行为建模,教学目的,1. 掌握交互图和状态机图的表示方法。2. 掌握顺序图和通信图的区别。3. 掌握顺序图、通信图、状态机图的建模步骤。4. 清楚在实际的建模中什么时候该使用顺序图、通信图和状态机图等。,5.1 面向对象系统设计概述,系统设计是问题求解及建立解答的高级策略,必须制定解决问题的基本方法。系统设计要决定系统功能的软件和硬件的分配问题。系统的高层结构形式包括子系统的分解、它的固有并发性、子系统分配给硬软件、数据存储管理、资源协调、软件控制实现、人机交互接口等。用面向对象方法设计软件,原则上也
2、是先进行总体设计(即系统设计),然后再进行详细设计(即对象设计),当然,它们之间的界限非常模糊,事实上是一个多次反复迭代的过程。,5.1.1 面向对象系统体系结构设计,设计阶段先从高层入手,然后细化。 系统分解。每次分解的各子系统数目不能太多,最底层子系统称为模块。 确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。 处理器及任务分配。各并发子系统必须分配给单个硬件单元。 数据存储管理。 全局资源的处理。 选择软件控制机制。 人机交互接口设计。,5.1.2系统对象设计,系统对象设计主要是对分析模型进行整理,生成设计模型提供给OOP作为开发依据。OOD包括:架构设计、用例设计、子系统设计
3、、类设计等。架构设计的侧重点在于系统的体系框架的合理性,保证系统架构在系统的各个非功能性需求中保持一种平衡;子系统设计一般是采用纵向切割,关注的是系统的功能划分;类设计是通过一组对象、顺序图展示系统的逻辑实现。,1. 面向对象设计的准则, 模块化。 抽象。 信息隐藏。 低耦合。一般地对象之间的耦合可分为交互耦合和继承耦合。 交互耦合。尽量降低消息连接的复杂程度,应该尽量减少消息中包含的参数个数,降低参数的复杂程度,减少对象发送(或接收)的消息数。 继承耦合。与交互耦合相反,应该提高继承耦合程度。,1. 面向对象设计的准则, 高内聚。在面向对象设计中存在3种内聚,即服务内聚、类内聚和一般特殊内聚
4、。 服务内聚。一个服务应该完成一个且仅完成一个功能。 类内聚。设计类的原则是,一个类应该只有一个用途,它的属性和服务应该是高内聚的。 一般特殊内聚。一般说来,紧密的继承耦合与高度的一般特殊内聚是一致的。 可重用。类构件有3种重用方式,分别是实例重用、继承重用和多态重用。,2. 面向对象设计的启发规则, 设计结果应该清晰易懂。使设计结果清晰、易懂、易读是提高软件可维护性和可重用性的重要措施。 用词一致。 使用已有的协议。 减少消息模式的数目。 避免模糊的定义。 一般特殊结构的深度应适当。类等级层次数应保持为72。 设计简单类。,2. 面向对象设计的启发规则, 使用简单的协议。一般来说,消息中参数
5、不要超过3个。 使用简单的操作。面向对象设计出来的类中的操作通常都很小,一般只有3至5行源程序语句,可以用仅含一个动词和一个宾语的简单句子描述它的功能。 把设计变动减至最小。在设计的早期阶段,变动较大,随着时间推移,设计方案日趋成熟,改动也越来越小了。中的峰值与出现设计错误或发生非预期变动的情况相对应。峰值越高,表明设计质量越差,可重用性也越差。,5.1.3 面向对象系统设计优化,面向对象系统设计优化的方式有:提高优先级;提高效率技术和增加继承等。1.确定优化级系统的各项质量指标并不是同等重要的,设计人员须确定各项质量指标的相对重要性(即确定优先级),以便在优化设计时制定折衷方案。最糟糕的情况
6、是,没有站在全局高度正确确定各项质量指标的优先级,以致系统中各个子系统按照相互对立的目标做了优化,这将导致系统资源的严重浪费。,2.优化设计时提高效率技术, 增加冗余关联以提高访问效率。 调整查询次序。 保留派生属性。通过某种运算而从其他数据派生出来的数据,是一种冗余数据,通常把这类数据“存储”(或称为“隐藏”)。在计算它的表达式中,如果希望避免重复计算复杂表达式所带来的开销,可以把这类冗余数据作为派生属性保存起来。派生属性既可以在原有类中定义,也可以定义新类,并用新类的对象保存它们。每当修改了基本对象之后,所有依赖于它的、保存派生属性的对象也必须相应地修改。,3.建立良好的继承结构, 抽象与
7、具体。在设计类继承时,很少使用纯粹自顶向下的方法。通常的作法是,首先创建一些满足具体用途的类,然后对它们进行归纳,一旦归纳出一些通用的类以后,往往可以根据需要再派生出具体类。在进行了一些具体化(即门化)的工作之后,也许就应该再次归纳了。 为提高继承程度而修改类定义。 利用委托实现行为共享。仅当存在真实的一般特殊关系(即子类确实是父类的一种特殊形式)时,利用继承机制实现行为共享才是合理的。,5.2 系统交互建模,交互图(interaction diagram)是用来描述对象之间以及对象与参与者之间的动态协作关系和协作过程中行为次序的图形文档。它通常用来描述一个用例的行为,显示该用例中所涉及的对象
8、及这些对象之间的消息传递情况。交互图可以帮助分析人员对照检查每个用例中所描述的用户需求UML2.0交互图包括交互概览图、顺序图、通信图和时间图。,5.2 系统交互建模,交互概览图是顺序图和活动图的结合,将顺序图和活动结合起来描述交互流程和交互细节的一种交互图。时间图应用不多。主要介绍顺序图和通信图,顺序图和通信图在语义上是等价的。建模人员可以先用一种交互图进行建模,然后再将其变换为另一种图而不丢失任何信息。,5.2.1 顺序图,1. 顺序图符号,顺序图, 类角色类角色(Class Role)代表顺序图中的对象在交互中所扮演的角色,位于顺序图顶部的对象代表类角色,类角色一般代表实际的对象。顺序图
9、中对象符号和对象图中对象所用的符号一样将对象置于顺序的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的。,顺序图,顺序图, 生命线生命线(Lifeline)是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线,生命线是一个时间线,从顺序图的顶部一直延伸到底部,所用的时间取决于交互持续的时间。同一条生命线上的时序是重要的,生命线上的时距并不重要,生命线只表示相对的时序,所以,生命线不是一个时间标尺。对象与生命线结合在一起称为对象的生命线,对象的生命线包含矩形的对象图标以及图标下面的生命线,顺序图, 激
10、活期。激活(Activation)表示该对象被占用以完成某个任务,去激活指的则是对象处于空闲状态、在等待消息。激活是顺序图中表示时间段的符号,在这个时间段内,对象将执行相应的操作。在UML中,为了表示对象是激活的,可以将该对象的生命线拓宽成为矩形,其中的矩形称为激活条或控制期,对象就是在激活条的顶部被激活的,对象在完成自己的工作后被去激活。,顺序图,顺序图, 消息。消息(Message)定义的是对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。消息是两个对象之间的单路通信,从发送方到接收方的控制信息流。消息可以用于在对象间传递参数,消息可以是信号,也可以是调用。在
11、UML中,消息使用箭头来表示,箭头的类型表示了消息的类型。,顺序图, 分支与从属流。在UML中存在两种方式可以来修改顺序图中消息的控制流,分别是:分支和从属流。分支是指从同一点发出的多个消息并指向不同的对象,根据条件是否互斥,可以有条件和并行两种结构。从属流指的是从同一点发出多个消息指向同一个对象的不同生命线。,2. 消息和消息发送,消息是对传送信息的对象之间所进行的通信的规约,其中对将要发生的活动的期望。对一个消息实例的接收可以看做一个事件的发生。在传送消息时,对消息的接收通常会产生一个动作。这个动作可能引发目标对象以及该对象可以访问的其他对象的状态改变。在UML中有以下几种动作:调用:调用
12、某个对象的一个操作。对象也可以给自己发送消息,引起本地的操作调用。返回:给调用者返回一个值。发送:向对象发送一个信号。创建:创建一个对象。撤销:撤销一个对象,对象也可以撤销自己。,顺序图,顺序图,消息类型,3顺序图中的结构化控制, 可选执行。可选执行的标签是opt。 条件执行。条件执行的标签是alt。 并行执行。并行执行标签是par。 循环(迭代)执行。标签是loop。,3顺序图中的结构化控制,4. 时间约束的表示,在顺序图上,如果消息的箭头和生命线垂直,那么表明立即发送该消息。如果箭头是倾斜的,那么表明该消息的传送有一定的时间延迟,其间可以传送其他消息。建模人员可在顺序图的时间轴附近用标签来
13、定义消息上的时间约束,4. 时间约束的表示,5. 顺序图构建, 确定交互过程的上下文(context),即工作流。 识别参与交互过程的对象,即从左到右布置对象。 为每个对象设置生命线,即确定哪些对象存在于整个交互过程中,哪些对象在交互过程中被创建和撤消。 从引发这个交互过程的初始消息开始,在生命线之间自顶向下依次画出随后的各个消息,即添加消息和条件以便创造每一个工作流。 如果需要表示消息的嵌套,和/或表示消息发生时时间点,则采用控制焦点。 如果需要说明时间约束,在消息旁边加上约束说明。 如果需要,可为每个消息附上前置条件和后置条件。 根据消息之间的关系,确定循环结构及循环参数和出口条件。,核对
14、付款单的顺序图,5.2.2 通信图,1. 通信图符号,通信图包含内容, 类角色类角色(Class Role)代表通信图中对象在交互中所扮演的角色。在通信图中矩形中的对象代表类角色,类角色代表参与交互的对象,它的命名方式和对象的命名方式一样 关联角色。关联角色(Association Role)代表通信图中的连接在交互中所扮演的角色通信图中连线代表着关联角色。,通信图包含内容, 消息流。消息流(Message Flow)代表通信图中对象间通过链接发送的消息。通信图中类角色之间的箭头表明在对象间交换的消息流,消息由一个对象发出,由消息所指向的对象接收。链接用于传输或实现消息的传递。消息流上标有消息
15、的序列号和类角色间发送的消息,一条消息会触发接受对象中的一项操作。,通信图包含内容, 消息流消息定义的格式如下:消息类型标号 控制信息:返回值:= 消息名 参数表消息的类型与顺序图相同。消息的标号有种:顺序执行:按整数大小顺序执行。标号为,n。嵌套执行:标号中带小数点。标号为1.1,1.2,1.3,。并行执行:标号中带小写字母。标号为1.1.1a,1.1.1b,。多数情况下,只对单调的、顺序的控制流建模。,2. 通信图构建, 确定交互过程的上下文(context),即工作流。 识别参与交互过程的对象类角色,把它们作为图形的节点安置在通信图中。 如果需要,为每个对象设置初始特性。 确定对象之间的
16、链(Link),以及沿着链的消息 从引发这个交互过程的初始消息开始,将随后的每个消息附到相应的链上。 如果需要说明时间约束,则在消息旁边加上约束说明。 如果需要,可以为每个消息附上前置条件和后置条件。 处理一些特殊情况,如循环、自调用、回调、多对象等。,大学生注册系统的通信图,5.2.3 交互建模的选择,1. 顺序图与通信图的区别顺序图和通信图都属于交互图,都用于描述系统中对象之间的动态关系。顺序图着重描述对象按照时间顺序的消息交换,并且把用例行为分配给类。通信图着重描述系统成分如何协同工作,强调对象间的结构关系。顺序图和通信图从不同的角度表达了系统中的交互和系统的行为。,5.2.3 交互建模
17、的选择,顺序图与通信图的区别顺序图有两个不同于通信图的特征:第一,顺序图有对象生命线。第二,顺序图有控制焦点。通信图有两个不同于顺序图的特征:第一,通信图有路径。第二,通信图中有序号。,5.2.3 交互建模的选择,交互图和类图的关系:交互图和类图可以相互补充。类图对类的描述比较充分,但对对象之间的消息交互情况的表达不够详细交互图不考虑系统中的所有类和对象,但可以表示系统中某几个对象之间的交互交互图描述对象之间的消息发送关系,而不是类之间的关系。在交互图中一般不会包低持械乃有类的对象,但同一个类可以有多个对象出现在交互图中。,2. 交互图的选择,一个结构好的交互图,应满足如下的要求: 关注与系统
18、动态特性的一个方面的交流。 只包含那些对于理解这个方面必不可少的元素。 提供与它的抽象层次相一致的细节,只能加入那些对于理解问题必不可少的修饰。 不应该过分简化信息,避免读者误解重要的语义。,当绘制一个交互图时,要遵循以下的策略:, 给出一个能表达其用途的名称。 如果想强调消息的时间顺序就使用顺序图;如果想强调参加交互的对象的组织,就使用通信图。 其元素的摆放尽量减少线的交叉。 用注解和颜色作为可视化提示,以突出图中重要的特征。 少使用分支,用活动图来表示复杂的分支要好得多。,5.3系统行为建模,5.3.1状态机图符号1. UML状态机图符号状态机图的组成元素包括:初始状态、终止状态、状态、转
19、换。转换将各种状态连接在一起,构成一个状态机图。,5.3系统行为建模,2. 状态机图组成元素,状态机图实质上是一种由状态、转移、事件、动作和连接点组成的状态机,下面简要介绍这些要素。, 状态,状态是给定类的对象的一组属性值,这组属性值对所发生的事件具有相同性质的反应。状态定义对象在其生命周期中的条件或状况,在此期间,对象满足某些条件,执行某些操作或等待某些事件。状态用于对实体在其生命中状况建模。状态图中的状态用圆角矩形表示,它由状态名、状态变量和活动三部分组成。一般情况下,一个状态的状态变量部分可以省略。状态的活动部分通常包括进入/退出活动、内部转换、子状态、延迟事件和内部活动等部分。, 状态
20、, 状态名。状态的名称可以包含任意数量的字母、数字和某些标点符号(有些标点符号除外,如冒号),并且可以连续几行。 进入/退出活动。入口动作用“entry/要执行的动作”表达,而出口动作用“exit/要执行的动作”表达。 内部转换。是对象接收到指定事件时执行On Event动作,但执行的结果并不改变对象状态。 子状态。状态的嵌套结构,包括非正交(顺序活动)或正交(并发活动)子状态。 延迟事件。延迟的事件是其处理过程被推迟的事件,它们的处理过程要到事件不被延迟的状态被激活时才会执行。,状态的种类:, 初始状态。初始状态代表状态机图的起始位置,只能作为转换的源,而不能作为转换的目标。初始状态在一个状
21、态机图中只允许有一个,它用一个实心的圆表示。 终止状态。终止状态是对象的最后状态,是一个状态机图的终止点。终止状态只能作为转换的目标,而不能作为转换的源。终止状态在一个状态机图中可以有多个,它用一个套有一个实心圆的空心圆表示。 中间状态。中间状态即上面介绍的状态,包括名称、进入/退出活动、内部转换、子状态和延迟事件等。, 转移,转移是两个状态之间的一种关系,表示对象将在第一个状态中执行一定的行为,并在某个特定事件发生时且满足特定条件时进入第二个状态。转移用带箭头的直线表示,箭尾连接源状态(转出的状态),箭头连接目标状态(转入的状态)。一个转移分为5部分:源状态、事件触发器、监护条件、动作和目标
22、状态。,转移的种类:,转移、事件和状态的之间的关系, 连接点,UML2.0提供了一个新的建模符号,叫做连接点,用来表示进入一个状态或退出一个状态的位置。如在图书馆中的一本书具有不同的状态。首先,它要上架,如果借阅者打电话预约这本书,管理员调出这本书,并把它的状态置为“being checked out”。如果借阅者从书架挑中这本书,并决定借阅,这本书就以另外不同的方式进入“being checked out”状态。也就是可以认为进入“being checked out”状态可以通过两种不同的入口。另外,在借阅时还可能会出现借阅图书册数已满,或者是有超期的图书,这时候也不能借阅,图书会直接通过一
23、个出口从“being checked out”状态退出, 连接点,3. 高级状态和转移,在UML中可以只使用状态和转移的基本特征来对广泛的、各种各样的行为建模。使用这些特征,最终可以产生简单状态机。UML的状态机具有许多可以帮助管理复杂行为的高级特征。这些特征常常可以减少需要的状态和转移的数量,并且将使用简单状态机时遇到的许多通用的而且有点复杂的惯用法编集在一起。这些高级的特征包括进入效应、退出效应、内部转移、do活动和延迟事件。这些特征作为一个文本串显示在状态符号的文本分栏内。,3. 高级状态和转移,4. 子状态机,状态有简单状态和组合状态。简单状态是指不包含子状态,没有子结构的状态,但它可
24、以具有状态名、入口/出口动作、Do动作、On Event动作、内部转移。一个具有子状态(嵌套状态)的状态被称为组合状态或复合状态,它包括顺序(非正交的)子状态或并发(正交的)子状态等。子状态是UML状态机的另一个特征,它能帮助简化对复杂行为的建模。子状态是嵌套在另一个状态中的状态,子状态可能被嵌套到任意级别。嵌套的状态机最多可能有一个初始状态和一个终止状态。,4. 子状态机,通过显示某些状态只能在特定环境(包含状态)中存在,子状态可以简化复杂的平面状态机。在一个状态机中可以引用另一个状态机,被引用的状态机称为子状态机。在建立结构化的大型状态模型时使用子状态机是非常有用的。,4. 子状态机,(1
25、)顺序子状态,4. 子状态机,(2)并发子状态, 历史状态,4. 子状态机,5.3.2状态机图的构建,1. 状态机图的绘制步骤 确定状态机图描述的主体,可以是一个完整的系统、一个用例、一个类或一个对象。 确定状态机图描述的范围,明确起始状态和结束状态。 确定描述主体在其生存期的各种稳定状态,包括高层状态和可能的子状态。 确定状态的序号,对这些稳定状态按其出现顺序编写序号。 取得触发状态迁移的事件,该事件可以触发状态进行迁移。,5.3.2状态机图的构建,1. 状态机图的绘制步骤 附上必要的动作,把动作附加到相应的迁移线上。 简化状态机图。 确定状态机图的可实现性。 确定有无死锁。 审核状态机图。
26、,画状态机图需要注意的几个问题:, 状态的变迁原因要在图上说明清楚。 最好标明清楚状态的开始和结束。 不要遗漏任何状态之间的切换。 状态机是一种深度关注细节的图,是观察对象状态变化的紧缩型视图。状态视图是一个类对象所可能经历的所有历程的模型图。状态机图由对象的各个状态和连接这些状态的转换组成。状态机图是对单个对象的“放大”,它说明对象所经历的状态变化。强调单个对象内状态的变化。通过状态机图很难看到全局,系统的整体行为一定是通过多个状态机的结果来决定的,交互视图则正好起到了这个作用。,2. 状态机图的应用,状态机图的主要应用有两种:一是在对象生命周期内,对一个对象的整个活动状态建模;二是对反应型
27、对象的行为建模。使用状态机图最通常的目的是对对象的生命周期建模,即描述对象在生命周期内,各种状态以及在外部事件的作用下,状态之间的转换。,2. 状态机图的应用,交互图建模是用来描述多个协作对象的行为;状态机图是对单个对象在整个生命周期内的行为建模。在对对象的生命周期建模时,主要描述对象能够响应的事件、对这些事件响应产生的行为以及行为的后果。一个状态机图只适合描述一类对象,不必对每一类对象都进行状态建模,把状态建模和对象建模进行结合,通过状态机图帮助发现和定义对象的操作,通过定义对象的操作完善状态机图。在打电话时,需要进行判断。,2. 状态机图的应用,电话机通话过程的状态机图,3. UML活动图
28、与状态机图的区别,虽然UML活动图与状态机图都是状态机的表现形式,但是两者还是有本质区别的:活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程;状态机图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与。活动图用来表示用例的执行流程,一般活动图和状态机图结合使用,很多状态的变迁都是一个活动单元。状态是行为的结果,活动是行为的动作,在UML中图符不一样。,3. UML活动图与状态机图的区别,在实际的项目中,活动图不是必须的。主要用活动图描述并行的过程或者行为;描述一个算法;描述一个跨越多个用例的活动。状态机图描述了一个具体对象的可能状态以及它们之间的转换。活动图很抽象,但
29、是当把活动图与流程图进行简单的比较之后就不难理解了。活动图可以使用泳道把活动进行分组,目的是用来描述对象间的合作关系。状态机图中某些标记符与活动图的标记符非常相似,有时候会让人混淆。活动图是用来建模不同区域的工作如何彼此交互的状态机图用来表示单个对象以及对象的行为如何改变其状态。,5.5系统设计实例,5.5.1 顺序图建模创建顺序图模型包含4项任务:确定需要建模的用例;确定用例的工作流;确定各工作流所涉及的对象,并按从左到右顺序进行布置;添加消息和条件以便创建每一个工作流。建模顺序图的第一步是确定要建模的用例。系统的完整顺序图模型是为每一个用例创建顺序图。,借阅图书用例至少包括4个工作流:,
30、借阅图书操作一切正常。 借阅者的借阅证失效。 所借图书数目已经超过规定。 在借阅图书操作的过程中,该学生被提醒有超期借阅信息。在确定用例的工作流后,下一步是从左到右布置工作流所涉及到的所有参与者和对象。接下来就要为每个工作流创建独立的顺序图。,正常借阅图书的顺序图,借阅证失效时的工作流顺序图,借阅图书超过规定数目时的工作流顺序图,5.5.2通信图建模,与顺序图类似,可以绘制出图书管理系统借阅图书的通信图。正常借阅图书的通信图,借阅证失效时的工作流通信图,借阅图书超过规定数目时的工作流通信图,5.5.3状态机图建模,借书业务在系统的业务建模中是一个用例,而这种用例是一个应对型对象。从前面章节对该
31、业务描述可知,借书业务是由借书空闲(idle)、书目查询(finding)、借书(Lending)、预约(reservation)、取消预约(remove reservation)、借书成功(Success)和失败(Failure)7种状态组成。,5.5.3状态机图建模,主要事件有: 从空闲状态到书目查询状态是由书目编号录入引发的; 同样查询失败也会引发查询状态转换到借书业务的空闲状态; 查询成功的事件会激发从查询状态到借书状态; 当所查到的书在库时则借阅成功转发成功显示状态; 当所查到的书已预约时则激发取消预约事件; 当所查到的书已借出则激发预约事件转入预约状态; 在取消预约时如预约取消成功
32、则转入借书状态; 如预约成功则转入信息显示状态。,借阅状态的状态机图,小 结,面向对象设计就是用面向对象观点建立求解空间模型的过程。通过面向对象分析得出的问题域模型为建立求解空间模型奠定了坚实基础。分析与设计本质上是一个多次反复迭代的过程,而面向对象分析与面向对象设计的界限尤其模糊。优秀设计是使得目标系统在其整个生命周期中总开销最小的设计,为获得优秀的设计结果,应该遵循一些基本准则。用面向对象方法设计软件,原则上是先进行总体设计(即系统设计),然后进行详细设计(对象),它们之间的界限非常模糊,是一个多次反复迭代的过程。,小 结,UML的动态视图包括用例图、交互图,状态机图和活动图。以描述系统状
33、态转移为主是状态机图和活动图;以描述系统对象通信和交互为主是通信图和顺序图。它们的区别是:状态机图是为一个对象的生命期间的情况建立模型,通过状态机图可以了解一个对象所能达到的所有状态,以及对象收到的事件对对象状态的影响。状态机主要用于建立对象在其生命期内的行为模型。当对象具有依赖于状态的行为时,尤其需要使用状态机。,小 结,状态机是一个类的对象所有可能的生命历程的模型。对象被孤立地从系统中抽出和考察,任何来自外部的影响被概述为事件。当对象探测到一个事件后,它依照当前的状态做出反应,反应包括执行一个动作和转换到新状态。状态机可以构造成继承转换,也能够对并发行为建立模型。活动图描述活动的序列,建立活动间控制流的模型,着重描述操作(方法)实现中所完成的工作以及用例实例或对象中的活动,它是状态机图的一个变种。,小 结,活动图主要描述动作及对象状态改变的结果。交互图(顺序图和通信图)表示若干个对象在一起工作完成某项服务。顺序图描述对象是如何交互的,重点放在消息序列上,描述消息在对象间是如何收发的。顺序图中包括的建模元素有对象、生命线、控制焦点、消息等;通信图中包括的建模元素有对象、消息链等。通信图和顺序图的区别是:通信图和顺序图都是描述对象交互的,但顺序图是强调消息的时间顺序的交互图,通信图强调的是空间,强调发送和接收消息的对象的结构组织的交互图。,