面向对象动态建模,用于建立行为的实体间行为交互的四种图状态图(Stage Diagram)时序图(Sequence
Diagram)
活动图(Activity Diagram)前面的博客中,我们已经学习完,今天我们来一起学习一下协作图(Sequence Diagram)。协作图和我们前面学习过的时序图都是一种交互图,协作图强调的是收发消息的对象的组织结构。

在系统体系结构的语境中,协作既包括静态方面也包括动态方面的概念组块命名,协作为一个类、接口和其她元素组成的群体命名,他们共同工作,提供了比各个部分的总和更强的合作行为。接着,我们来看一下这一知识点的总体概览:

首先,我们需要明确的就是协作图的基本概念以及协作图有哪些作用:

了解了这些基础知识,有助于加强我们对协作图的理解,搞清楚协作图到底具有怎么样的本领,可以在UML这个大家族中利于不败之地,接下来我们来了解一下协作图的组成元素以及创建协作图的步骤:

通过前面的学习我们知道,序列图和协作图统称为交互图,其中,序列图用来描述对象之间消息发送的先后次序,阐明对象之间的交互过程以及在系统执行过程中的某一具体时刻将会发生的事件;协作图强调收发消息的对象的组织结构。那么当序列图与协作图不期而遇,会擦出怎样的火花:

接下来,我们需要做的,就是把这些理论知识运用到实践中去,接下来,我们就用协作图来描述一下就餐者,服务生和厨师他们之间的关系:

接着,以我们的机房收费系统为例,了解一下协作图在机房中是如何应用的,看看一般用户查询的序列图:

操作员信息维护的序列图:

管理员日结和周结的序列图:

协作图在我们的生活中,也有着广泛的应用,想一想巴黎圣母院,天安门,这两座建筑物展示出的特质都非言语所能形容,在很多方面,这两座剑祖屋在结构上都是简单的,但是意境深远,在她们身上,我们能够看到一致的对称美,仔细研究,发现许多细节,,她们每一部分本身就很美,而这些部分合起来产生的整体效果比各个部分更美而且功能更强。

从巴黎圣母院和天安门我们能感受到,质量好的建筑设计得很协调,同样的道理,我们的软件也是这样,一个质量好的软件密集型系统不仅功能合理,而且也应该体现设计的和谐与平衡,以使得她易于修改,所有结构良好的面向对象系统都充满了模式,一些元素以共同的方式一起工作,提供了比其所有组成部分的总和更强的合作行为。UML之旅,未完待续......

   

UML之协作图的更多相关文章

  1. [UML]UML系列——协作图(通信图)collaboration diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  2. 【UML】协作图Collaboration diagram(交互图)(转)

    http://blog.csdn.net/sds15732622190/article/details/49402269 前言         学完UML时序图,就要看一下UML协作图,因为两张图是相 ...

  3. UML: 协作图

    摘自http://www.umlonline.org/school/thread-38-1-1.html UML1.1时,协作图英文名字叫:Collaboration Diagram,UML2.0时, ...

  4. (五)UML之协作图

    一.什么是协作图? 顾名思义协作图就是合作图,有合作就涉及到多个对象. 协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是一种交互图(in ...

  5. UML简介

    Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型 ...

  6. [UML]UML系列——状态机图statechart diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  7. UML(统一建模语言)

    最近看了一个UML图,所以特意来了解一下UML 统一建模语言 锁定 同义词 UML(统一建模语言)一般指统一建模语言 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . Unified Mo ...

  8. 设计模式-UML类图基础

    设计模式之序-UML类图那点事儿 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐的书 ...

  9. 设计模式之序章-UML类图那点事儿

    设计模式之序-UML类图那点事儿 序 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐 ...

随机推荐

  1. Programming In Scala笔记-第四章、类和对象

    类似于Java,Scala中也有类和对象的概念. 一.类.属性和方法 1.类 类是对一类事物的抽象,当一个类被定义后,就可以以该定义为模板,定义该类的一系列对象.比如说有以下一个模板 人类: 有姓名: ...

  2. logstash处理文件进度记录机制

    假如使用如下配置处理日志 input { file { path => "/home/vagrant/logstash/logstash-2.2.2/dbpool-logs/dev/c ...

  3. github pages + Hexo + 域名绑定搭建个人博客增强版

    概述 前面我们用github pages + Hexo 搭建了一个简单版的个人博客系统,但是里面的内容单调,很多功能不够完善,所以我们需要对yelle 的主题进行优化和完善.基本搭建请访问:http: ...

  4. 2017年校园招聘ios面试题

    一.搜狐快站 1.谈谈你做过的项目: 2.项目中最有成就感的部分: 3.倒计时如何实现?(NSTimer,还有其他的实现方式吗): 4.UIButton的继承关系? 5.iOS中可以进行输入的控件?( ...

  5. Xcode无法安装基于ruby的插件问题的解决

    Xcode有时需要安装一些第三方插件,很多插件是基于ruby的,确切的说是基于ruby gem的! 但是在国内有一个很尴尬的情况,就是官方的gems网站:https://rubygems.org 的安 ...

  6. 下载Android源代码编译错误总结

    错误1: prebuilts/sdk/api/18.txt:22055: error 9: Removed public method android.telephony.gsm.SmsMessage ...

  7. Eclipse编写ExtJS卡死问题 eclise js验证取消

    1. Eclipse编写ExtJS卡死问题 eclise js验证取消 近期项目用到了extjs,发现项目编译的时候特别的卡,浪费很多时间而且保存的时候还要编译,因此打算看下如何取消验证extjs.最 ...

  8. 1081. Rational Sum (20) -最大公约数

    题目如下: Given N rational numbers in the form "numerator/denominator", you are supposed to ca ...

  9. XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=505 因为常用cocos2dx开 ...

  10. Android简易实战教程--第二话《两种进度条》

    点击按钮模拟进度条下载进度,"下载"完成进度条消失. 代码如下: xml: <?xml version="1.0" encoding="utf- ...