1、协作图协作图(Collaboration Diagram)用于描述相互合作的对象间的交互关系。虽然顺序图和协作图都用来描述对象间的交互关系,但侧重点不一样。顺序图着重体现交互的时间顺序,协作图则着重体现交互对象间的消息传递关系。,消息协作图中的消息也包括同步消息与异步消息,它们的表示方法与顺序图中的相同。不过,在协作图有一个对象可能会向同一个类的多个对象同时发送同一个消息,则要用一叠向后延伸的对象图标表示多个对象。在多对象前面可加上方括号括起来的条件,前面加一个星号,用来说明消息发送给多个对象。,关联表示的对象与对象之间的静态关系,用一条实线把交互的两个对象连接起来 序号对于协作图中的消息可以
2、给它们编上一个序号,代表该消息在消息序列中的顺序。消息名和序号之间用冒号隔开。,有时候,两个消息来自同一选择过程,并且它们的保护条件是互斥的,则用同一个编号,分别对应两个消息。针对汽车上锁这个事件,可以由顺序图画出协作图,如图6-41:,活动图活动图(Activity Diagram)是用于展现参与行为类的活动或动作。活动图依据对象状态的变化来捕获动作(将要执行的工作或活动)与动作的结果。活动图中一个活动结束后将立即进入下一个活动(在状态图中状态的变迁可能需要事件的触发)。,活动活动用于描述一个工作步骤。一项操作可以描述为一系列相关的活动。活动仅有一个起始点,但可以有多个结束点。一个活动可以顺
3、序地跟在另一个活动之后,这是简单的顺序关系。 判定如果在活动图中使用一个菱形的判断标志,则可以表达条件关系,判断标志可以有多个输入和输出转移,但在活动的运作中仅触发其中的一个输出转移。,并发路径活动图对表示并发行为也很有用。在活动图中,使用一个称为同步条的水平粗线可以将一条转移分为多个并发执行的分支,或将多个转移合为一条转移。此时,只有输入的转移全部有效,同步条才会触发转移,进而执行后面的活动。,泳道泳道是代表分区动作集合的图形构造。泳道用于对一个或多个对象为整个活动中的动作所承担的职责建模。也就是说,泳道将活动状态划分成组,并把这些组分配给必须执行这些活动的对象。泳道用矩形框来表示,属于某个
4、泳道的活动放在该矩形框内,将对象名放在矩形框的顶部,表示泳道中的活动由该对象负责。,图6-42是描述的听力训练,一边阅读材料,一边听音频资料。,图6-43中有“teachers”和“student”两个泳道,表示学生参加考试时,进入考场以后,老师检查学生证件后发放试卷,同时学生对号入座,最后开始答题。,四种图的运用上面对UML中用于描述系统动态行为的四个图(状态图、顺序图、协作图和活动图)做了简单地介绍。这四个图均可用于系统的动态建模,但它们各自的侧重点不同,分别用于不同的目的。下面对如何正确使用这几个图做一简单的总结,在实际的建模过程中要根据具体情况灵活运用这些建议。,首先,不要对系统中的每
5、个类都画状态图。尽管这样做很完美,但太浪费精力,其实使用者可能只关心某些类的行为。正确的做法是:为帮助理解类而画它的状态图。状态图描述跨越多个用例的单个对象的行为,而不适合描述多个对象间的行为合作。为此,常将状态图与其它技术(如顺序图、协作图和活动图)组合使用。,顺序图和协作图适合描述单个用例中几个对象的行为。其中顺序图突出对象间交互的顺序,而协作图的布局方法能更清楚地表示出对象之间静态的连接关系。当行为较为简单时,顺序图和协作图是最好的选择。但当行为比变复杂时,这两个图将失去其清晰度。因此,如果想显示跨越多用例或多线程的复杂行为,可考虑使用活动图。另外,顺序图和协作图仅适合描述对象之间的合作
6、关系,而不适合对行为进行精确定义,如果想描述跨越多个用例的单个对象的行为,应当使用状态图。,6.2.5 UML的特点 众所周知,UML的目标如下:为建模者提供现成的可用的,富有表达力的,可视化的建模语言,以开发和交换有意义的模型;提供可扩展性和特殊化机制以延伸核心概念;支持独立于编程语言和开发过程的规范;为理解建模语言提供正式的基础;支持更高级的开发概念,例如构件、协作、框架和模式。,通过对UML的研究,可以知道: UML是一种语言,遵循特定的规则,允许创建各种模型,并不告诉设计者需要创建哪些模型,并不提供开发过程,UML是可视化语言,UML是图形化语言。 UML是用于构造系统或理解系统的语言,UML既支持正向工程,又支持反向工程。 UML是文档化语言,将所建造的系统记录下来,便于新程序员跟进,开发产品新版本时很有用处。,其主要特点可以归纳几点如下: 1统一的标准。UML已被OMG 接受为标准的建模语言,赿来越多的开发人员开始使用UML进行开发,越来越多开发厂商开始支持UML。 2面向对象。UML是支持面向对象软件开发的建模语言。 3可视化、表达能力强大。 4独立于过程。UML不依赖于特定的软件开发过程,这也是UML能被众多软件开发人员接受的一个原因。 5概念明确,建模表示法简洁,图形结构清晰,容易掌握和使用。,