转自>>http://blog.csdn.net/mingxuanyun/article/details/8572128

交互图用来描述系统中的对象是如何进行相互作用的,即一组对象是如何进行消息传递的。

交互图由一组对象和它们之间的关系构成,其中包括:需要什么对象,对象相互之间发送什么消息,什么角色启动消息以及消息按什么顺序发送。

交互图的分类:

交互图主要分为这两种:顺序图和协作图。

  • 顺序图—强调消息的事件顺序
  • 协作图—强调对象之间的交互关系

顺序图描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序。

顺序图,包括时间顺序,不包括对象联系。也就是说我们在建立顺序图当中,只需考系统虑系统行为的先后顺序,而不需要考虑他们之间的关系。把对象之间的行为按照时间的先后顺序画出来就可以了。

在UML中,顺序图由一个二维图描述系统中各个对象之间的交互关系。其中,纵轴表示时间,横轴表示参与交互作用的对象。

顺序图的构成:

  1. —对象与角色:上面的矩形框。在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。作为具体的事物,一个对象代表现实世界中的某个东西。
  2. 生命线与控制焦点:每个对象都有自己的生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时间内存在
  3. 消息:是对象之间的通信,可以是信号或者操作调用。

其中消息主要有这几种形式:

  1. 调用(Call):表示调用某个对象的一个操作。可以是对象间的调用,也可以使对象本身的调用。
  2. 返回(Return) 返回表示被调用的对象向调用者返回一个值。
  3. 发送(Send):对象发送信号,与调用不同,调用是同步的机制,而信号是一种异步的机制。也就是说,当对象A调用对象B时,A发送完消息之后是会等B执行完所调用的方法之后再继续执行的;如果说对象A发送了一个信号给对象B,那么A在发送完信号之后,就会继续执行,不会等待。
  4. —创建(Creat)创建意味着该对象生命线的开始,
  5. 销毁(Destory)通常连接着的是目标对象的生命终止符号

消息的表示方法:用消息线表示,一个对象到另一个对象的消息用跨越对象生命线的一条消息线表示出来,包括反身消息

消息的分类:

同步:在一定程度上可以看作是一个单线程,这个线程请求一个方法后,就待这个方法给他回复,否则他就不往下执行。

异步:在一定程度上可以看做是一个多线程。请求一个方法后,就不管了,继续执行其他的方法。

PS:一般情况下用简单消息就行了。

协作图:强调参加交互对象的组织。

协作图与顺序图的关系:

  • 二者在语义上等价
  • 二者可以相互转化
  • 二者的侧重点不同:
  1. 顺序图强调时间顺序
  2. 协作图侧重对象之间的关系。

UML中的交互图<转>的更多相关文章

  1. UML中的图的出现顺序

    上接:UML从需求到设计--用例 从开始接触UML到现在对UML逐渐有了更深入的了解.刚开始,对于UML总是感觉UML就是图.一提起UML 就想着这个是画图的东西. 具体这些图都是干什么的.为什么会有 ...

  2. UML中关联(Association)、聚合(Aggregation)和合成(Composition)之间的区别

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 现在,我们需要设计一个项目管理系统,目前我们收集到了如下这些需求: REQ1:一个项目内有多名项目成 ...

  3. 软件设计之UML—UML中的六大关系

    一.UML中的六大关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation), ...

  4. UML中的stereotype

    在使用rose的时候.rose的类里面有个stereotype的选项.选择了不同的选项类会呈现不同的图形效果.这里对stereotype做一点总结, Stereotyp英文的原意是印刷中的铅字.比如, ...

  5. UML中的关联关系

    UML中的关联关系其内在意思就是has a 如图:  相对于依赖关系,关联关系在代码中有所体现.上图中的关联关系在代码中体现为       其中water 中将Climate作为其中的属性. 当然,关 ...

  6. UML中的依赖关系

    UML中的五种关系和设计模式中的代码实现. 又重新听了一遍UML中的关系.感觉又是收获很大. UML中的关系有依赖,关联(聚合,组合),泛化(也叫继承),实现 现在一个一个的来实现: 一:依赖 依赖关 ...

  7. [译] UML中的关系之Dependency

    在UML中,依赖关系表示Client依赖于另一个元素,叫做Supplier. 通常来说,依赖关系不需要特殊的名字. 依赖的类别 抽象 abstraction, derive, refine, trac ...

  8. UML中的用例(Use Case)概念分析及StarUML实例

    在UML中use case似 乎最簡單的,用例建模的最主要功能就是用来表达系统的功能性需求或行为,依我的理解用例建模可分为用例图和用例描述.用例图由参与者(Actor).用例 (Use Case).系 ...

  9. UML 中的用例图解析以及starUML详细介绍

    UML中的用例(Use Case)概念分析及StarUML实例 在UML 中use case 似 乎最簡單的,用例建模的最主要功能就是用来表达系统的功能性需求或行为,依我的理解用例建模可分为用例图和用 ...

随机推荐

  1. 大数值基础、for与while循环的简单对比

  2. [ofbiz]screen中应用form和ftl,控制页面元素属性

    可以在screen中定义form与ftl两个文件,ftl中可以使用js控制form中的页面元素属性. 控制元素是否可编辑:        $("#oaDataReport_budget&qu ...

  3. 【iOS】objective-c 文档生成工具 appledoc

    最近做ios framework的一些测试,提供给其他开发者使用的framework,API文档变得更加重要,以前没有接触过,这次尝试使用了一把appledoc来生成一下文档,感觉还不错. 首先,是从 ...

  4. android的数据存储方式

    数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 ...

  5. Zend Guard Loader和Zend Optimizer的安装(更新中)

    本机上php是5.3.3的 下载安装程序   大概找对php.ini和apache的目录就对了  ,中途弹出提示框大概意思是安装过程中需要把apache关掉,不能用 下载地址:http://www.z ...

  6. ubuntu中vim找不到配色方案blackboard

    在ubuntu下启动vim,提示找不到配色方案blackboard(或其他的), 如何挑选自己喜欢的配色方案呢?在/usr/share/vim/vim72/colors中,(这里根据自己的vim版本选 ...

  7. 组合数(DFS)

    组合数 点我   描述 找出从自然数1.2.... .n(0<n<10)中任取r(0<r<=n)个数的所有组合.   输入 输入n.r. 输出 按特定顺序输出所有组合.特定顺序 ...

  8. 【写一个自己的js库】 3.添加几个处理字符串的方法

    1.生成重复的字符串 if(!String.repeat){ String.prototype.repeat = function (count){ return new Array(count + ...

  9. C# 迪杰斯特拉(Dijkstra)算法

    Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止. 其基本思想是,设置顶点集合S并不断地作 ...

  10. JIRA官方:缺陷与事务跟踪

    快速跟踪软件缺陷 JIRA的网站页面使测试人员能够快速报告.管理.跟踪缺陷.使用键盘快捷键可以很容易地导航和修改问题.你还可以从IDE直接访问JIRA问题或者通过其它各种桌面客户端.手机客户端.浏览器 ...