目录

  • 1 教学内容
    • 1.1 导言
    • 1.2 用例图
    • 1.3 对象图
    • 1.4 顺序图
    • 1.5 通讯图
    • 1.6 类图
    • 1.7 状态图
    • 1.8 活动图
    • 1.9 包图
    • 1.10 构件图
    • 1.11 部署图
    • 1.12 面向对象分析的uml模型
    • 1.13 面向对象设计的uml模型
  • 2 教学视频
    • 2.1 OOAD详解
    • 2.2 UML简介
    • 2.3 用例图
    • 2.4 类图1
    • 2.5 类图2
    • 2.6 类图3
    • 2.7 对象图
    • 2.8 组件图
    • 2.9 部署图
    • 2.10 时序图
    • 2.11 协作图
    • 2.12 状态图
    • 2.13 包
    • 2.14 使用UML分析十种设计模式
  • 3 软件设计师考试教程教学视频2
    • 3.1 UML建模前言
    • 3.2 UML图(用例图)
    • 3.3 UML图(类图)
    • 3.4 UML图(顺序图)
    • 3.5 UML图(活动图)
    • 3.6 UML图(状态图)
    • 3.7 UML图(通信图)
    • 3.8 UML案例分析
  • 4 实验
    • 4.1 实验一:用例图设计
    • 4.2 实验二:类图设计
    • 4.3 实验三:活动图设计
    • 4.4 实验四:顺序图设计
    • 4.5 实验五:协作图设计
    • 4.6 实验六:状态图设计
    • 4.7 实验七:物理图设计
  • 5 期末考核
    • 5.1 期末考试要求
  • 6 软件
    • 6.1 startuml
    • 6.2 rose
  • 7 课件
    • 7.1 第一章 导言
    • 7.2 第二章 用例图
    • 7.3 第三章 对象图
    • 7.4 第四章 顺序图
    • 7.5 第五章 通讯图
    • 7.6 第六章 类图
    • 7.7 第七章 状态图
    • 7.8 第八章 活动图
    • 7.9 第九章 包图
    • 7.10 第十章  构件图
    • 7.11 第十一章 部署图
通讯图

5.1      千交互的对象行为建模交互时的对象结构

         在第 4章中 介绍了 UML交互图可以由两种 UML图来表示,即 顺 序图和通信将讨论通信图 ( Communication  Diagram) 它与顺序图样 ,都 是 用 来描述对象之间的相互作用的建模工具,只不过通信图强调的是对象之间在交互作用时的关联

通信图的消息发生顺序用图中的消息编号的方法来表示PPS 项目的用例建生产计”中 ,在图 4- 20 ,用 序图详细描述了对象交互中消息发生的时间顺和逻辑,同样可以用通信图的方式来表达5-1 是用例“创建生产计划单”的通信图 与图 4- 20 表达了个交互过程

5.  2    通  信  图

   UM L 1. X 中,通信图 被称为协作图( C o ll a b o r a t i o n D ia g ra m ) 用 例 的 每个件流都可以用通信图来描述通信图中可以有对象参与者、它们之间链接和交互

      通信图描述交互的对象的链接它强询发送和接收消息的对象之间的通信图表达方式为:

5.3        图的示方法

 5.3.1                         交互的参与者

     交互的参与者( P art i cip a nt ) 个对象符号表示,在矩形框中放置交互的参与者,显 示 交 互 的 与 者 的 名 称 和 它 所 属 的 类如 图 5-1 中 的: O r der Mgt : ProducePlan在通信图中表示对象的方法与在对象图中表示对象的方法其语法均为:

注意 ,虽 然整个系统中可能有其的对象 ,但只有涉及协作的对象才会 被表示出在通信图中可能出现4 类 对象:存 在于整个交互作用中的对象在交互作用中创建的对象在交互作用中销毁的对象在交互作用中创建并销毁的对象

5.3.2                       链接

    链接( Li nk ) 是两个对象间的连接路径,它 表示两个对象间的导航( Na vig a t io n ) 和可视性( V is   i blity) ,沿着这条路径,消息 可以流动U ML  用直线表示链接。一般情况下 ,个链接就是个关联的实例在图 5-1 中,: P ro  d uceP  lan 和: S  to   rage 之间有个链接—— 或称导航路径,沿 着这条路径,消息 addP ro d uctT oS tora g e 就可以传递

 5.3.3                        消息

     在通信图中,对象 间 的 消息( Message ) 用依附于链接的带标记的箭头和带顺序号的消息表达式表示箭头表示消息的方向

       箭头通过消息名称及消息参数来标记沿同个链可以显示许多消息这些消息都有唯的顺序号可能发自不 同的方向

         顺序号常用在通信图中,因 为它们是说明消息相对顺序的唯方法5-1 中 1: createPla n2 : set P rod u ce P la n 等都是消息的例

        通信图中消息的类型也有很多面逐解释这些消息 

              1.  自我委派消息

         消息可 能 从 个 对象 发 送 到 它 自 身,这 样的 消息 被 称 为 自 我 委 派 ( se lf De leg a t i o n) 消息,如 图 5- 2 中的消息 1. may P r es er ve( )

                  2  .  
控制消息

            控制消息( Co ntro l   M essage   ) 表示当控制条件为的时候消息才会被发送控制消息设置了可选定 的消息流,控制消息放在顺序号的后面,控制 消息的控制条件用中括号括

     图 5-3 的例子展示了控制消息对基千特定条件的消息发送的选择,它 表示当 1. 1 中控制条件 q ua n tit y< M in iA m o un t 的时候S a le M a nag ement 将向 Reta il  送消ge t P ri ce ( ) 则,S a le M a nag eme nt W ho les ale 发送消息ge tP ric e O

            3.嵌套消息和子消息

            当一个消息导致了另一个消息被发送的时候,第个 消 息 被称为嵌套在第一个消息里这样的消息被称为嵌套消息( N es t ed M es sage ) 通信图用多级消息的形式表示这种消息的嵌套

      在图 5-1的例子中,消息 1.1<< create > 被嵌套在消息 1.createPlan  中 ,在返回消息 createPlan之前 ,: Pro  ducePlanMgt先向P  ro  ducePlan发 送消息< <create> >因 此 ,消息 createPlan 被编号为 1,而嵌套消息 create被编号为 1.1

              消息 可 以 包 含 多 层 嵌 套,如 图 5-1 中 的 系列 消 息 2. s et P ro d uceP lan、2.  1 g etO rder 2. 1. 1 getP rod ucts 2. 1. 1. 1 get Na e 以 及 2. 1. 1. 2 getP ro d uctDa  ta是用嵌套消息的形式表达

 

                  4. 循环

     在通信图中,循环用“*”号来表示,循环子句被放在顺序号的后面,表示循环将按      照给定的循环子句重复如图5-4中消息 2.  1.  1.  1  *  [i< ngetName就是个表示循环的例子,其中,*n]表示消息 getNameIn的时候将被重复发送果仅想表示循环,并不想 说 明 循 环的细节,则只 加“ *”号 就 可以了

                   5. 发消息

            有的时候,几 个 消息需要被同时发送,这样的消息称 为并 发消息 ( Concurrent Message )5-5 展示了个并发消息的例子

其中,消息 sa veU s erDataO , checkQ ua lific at io n()需要被同时发送,用编号1. l a 1b

 

5.          4    案 例 分 析

    下面,以  PPS   项目中建生产计划单用例为,讲述如应用通信图表示对象的交互

首先通过用例分析交互的参与者,得 到如图 5-6 所示的创建生产计划单用例中各个交互的参与者。


        然后,在有交互的参与者根据发生的交互消息添加链接使它能够通信,   如 图 5-7所示

最后,得 到如图5-1 所示相对完整的通信图模型

  

5.  5    总    结

     通信图说明对象之如何通过相发送消息实现通信,它 显 示了系列的对象、这些对象之的联系以及对象之间发送和接收的消息

        什么时候使用通信图比使用顺序图表示交互更好呢

对于上面的问题 通过观察图 4- 20和图 5-1你有什么答案? 般地 我们认为,如果更关注消息调用的顺序,那么就使用顺序图,如果更关注交互参与者间的链接,就     使用通信图通信图显示了系统中对象和对象之间的关联而这种对象间的关联在顺序图中是无法接表示的

通信图特别适合用来描述少址对象之间的简单交互于展示对象之间是如何接到起的 但是却使我很难眼就看出交互中消息的发生顺序随着对象和消息的增多,理 解通信图将越来越困难此外通信图很难显示补充的说明性信息 例如时间、判定点以及不同种类的消息等,例如,顺序图支持对异步消息的特殊表示方法开箭头但是在通信图中 ,并没有同步和异步消息之间的别进行区分所以顺序图中这些信息可以在通信图中方便添加到注释中

     总之,顺 序图和通信图建模中所表达的交互模型是完全致的 ,它们只是从不同的角度表达了系统中的交互,者是可以互相转换的,Rat i onal Ro se  等工具软件提供了自动转换的功能