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