耦合性(耦合度)

合集下载

南理工考研软件工程复习资料:提要与习题3(答案)

南理工考研软件工程复习资料:提要与习题3(答案)

习题参考答案【3-1】从下列有关系统结构图的叙述中选出正确的叙述。

(1) 系统结构图中反映的是程序中数据流的情况。

(2) 系统结构图是精确表达程序结构的图形表示法。

因此,有时也可将系统结构当作程序流程图使用。

(3) 一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。

(4) 在系统结构图中,上级模块与其下属模块之间的调用关系用有向线段表示。

这时,使用斜的线段和水平、垂直的线段具有相同的含义。

〖解〗(4)分析:系统结构图反映的是系统中模块的调用关系和层次关系,谁调用谁,有一个先后次序(时序)关系。

所以系统结构图既不同于数据流图,也不同与程序流程图。

数据流图仅描述数据在系统中如何流动,如何处理和存储,它不考虑时序关系。

图中的有向线段表示了数据流。

程序流程图描述程序中控制流的情况,即程序中处理的执行顺序和执行序列所依赖的条件,图中的有向线段(流线)表示的是控制流,从一个处理走到下一个处理。

但在系统结构图中的有向线段表示调用时程序的控制从调用模块移到被调用模块,并隐含了当调用结束时控制将交回给调用模块。

如果一个模块有多个下属模块,这些下属模块的左右位置可能与它们的调用次序有关。

例如,在用结构化设计方法依据数据流图建立起来的变换型系统结构图中,主模块的所有下属模块按逻辑输入、中心变换、逻辑输出的次序自左向右一字排开,左右位置不是无关紧要的。

所以只有最后的一个叙述是正确的。

【3-2】软件的开发工作经过需求分析阶段,进入( A )以后,就开始着手解决“怎么做”的问题。

常用的软件设计方法有( B )、( C )、( D )和( E )等方法。

供选择的答案:A ~ B.①程序设计②设计阶段③总体设计④定义阶段⑤SD方法⑥SP方法C. ①Jackson方法②瀑布法③快速原型法④回溯法D ~ E. ①LCP(Wanier)方法②递归法③Parnas方法④自下而上修正⑤逐步求精法⑥检测校正法〖解〗A. ②, B. ⑤, C. ①, D. ①, E. ③。

Canddence Sigrity中用Power SI进行DDR3走线阻抗与耦合检查分析

Canddence Sigrity中用Power SI进行DDR3走线阻抗与耦合检查分析

Canddence Sigrity中用Power SI进行走线阻抗与耦合检查分析(组件ERC->Trace Imp/cpl/ref check)基于信号完整性考虑,检查PCB阻抗和其耦合串扰是否满足要求,是硬件工程师的必要工作。

对于有较多高速或信号线的PCB来说,手动检查费时费力效果也不好,非常容易漏掉一些关键点,有必要寻找一种自动检查的方法。

如下介绍基于仿真软件Sigrity的自动检查,其快速、准确,不仅降低了工程师的工作量,且改善了检查的结果,有利于PCB的优化。

Sigrity软件Power SI进行走线阻抗与耦合检查分析有两点需要注意:第一个是这个功能计算出来的阻抗和SI9000会有一点偏差。

第二个是其耦合度检查只能检查同层之间的耦合,对于不同层之间的耦合还无法进行检查。

不过在绝大多数的设计中,现有的这个功能已经够用了,通过这个方式可以非常快速的对整版或是重点关注的信号进行阻抗及耦合的检查,找到设计的薄弱环节进行整改。

3.2.1 阻抗和耦合阻抗:在具有电阻、电感和电容的电路里,对交流电所起的阻碍作用叫做阻抗。

阻抗常用Z 表示;的复杂性、调用模块的方式以及通过界面传送数据的多少?2片32位DDR3阻抗和耦合分析为例3.3 以仿XC7Z010CLG400与修改成实际的板厚、基材等信息。

要根据厂家的信息来填写。

材料参数:可以通过view Material按钮查看。

焊盘的设置:环氧树脂是BT;Er为材料的介电常数;Loss tangent损耗因数;Detect and model the coplanar traces共面轨迹的检测与建模>Setup 选取器件:器件选择把要仿真的网络对应的器件(这里面我们选端要赋予正极的标注。

选择发送端芯片或内存控制器或者直接找,输入U1;网络我们之前已经选择过,该步骤直接跳过,点击下一步。

串阻之间的value值需要补上,根据实际情况,比如22欧姆或33欧姆。

C语言知识点

C语言知识点

C语言知识点总结1、模块的独立程度可以由两个定性标准量度:耦合性和内聚性。

(一般来说要求模块之间的耦合度尽可能低而内聚性尽可能高)2、算法具有五个特点:有穷性,确定性,可行性,有0个或者多个输入,有一个或者多个输出。

3、C语言规定标识符只能由字母、数字、下划线3种字符组成,而且第一个字符必须为字母或者下划线。

(C语言还规定标识符不能为C语言中的关键字。

)4、按照耦合度从强到弱本别是:内容耦合、公共耦合、外部耦合、标记耦合、数据耦合、非直接耦合。

5、算法的复杂度主要包括算法的时间复杂度和空间复杂度。

所谓算法时间复杂度指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数;算法空间复杂度指执行这个算法所需的内存空间。

6、赋值运算符的左侧的操作数必须是一个变量,而不能是表达式或者常量。

7、C语言中只有自动变量和寄存器变量在使用时才占用内存单元。

8、在树形结构中,每一个结点只有一个前件,称为父结点;没有前件的结点只有一个称为树的根结点;每一个结点可以有多个后件,它们都称为该结点的子结点;没有后件的结点又称为叶子结点。

9、对象的基本特点:标志唯一性,分类性,封装性,多态性,模块性。

10、数据结构概念一般包括数据的逻辑结构、存储结构、及数据上的运算集合。

11、在C语言中,用单引号把一个字符或者反斜线后跟一个特定的字符括起来表示一个字符常量。

12、在C语言中操作一个字符串常量的方法有:将字符串常量放在一个字符数组之中;用字符指针指向字符串,然后通过字符指针来访问字符串储存区。

13、软件生命周期分为:软件定义、软件开发、软件运行维护3个阶段。

14、软件设计包括软件结构设计、数据设计、接口设计和过程设计。

(结构设计是定义软件系统各主要部件之间的关系;数据具设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作形同之间及软件和人之间如何通信;过程设计则是把系统结构部件转换成软件的过程描述。

软件工程期末考试参考题及答案

软件工程期末考试参考题及答案

一、填空题(每空1分, 共20分)1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。

2.按软件旳功能进行划分, 软件可以划分为系统软件、支撑软件和应用软件。

3.可行性研究重要集中在如下四个方面经济可行性、技术可行性、法律可行性和抉择。

4.顾客界面旳可使用性是顾客界面设计最重要旳也是最基本旳目旳。

5.常见旳软件概要设计措施有3大类: 以数据流图为基础构造模块构造旳___构造化设计措施_________, 以数据构造为基础构造模块旳__jackson措施__________, 以对象、类、继承和通信为基础旳__面向对象设计措施__________。

6.__数据流图________和__数据字典___共同构成系统旳逻辑模型。

7.软件测试旳措施有__分析措施________和___非分析措施_______(即黑盒法)。

8.单元测试一般以___白盒_____________测试为主, ___黑盒______测试为辅。

9.成本估计措施重要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。

二、单项选择题(每题2分, 共10分)1.下列哪个阶段不属于软件生存周期旳三大阶段( C )。

A.计划阶段B.开发阶段2. C.编码阶段 D.维护阶段3.需求分析是(A )。

A. 软件开发工作旳基础B. 软件生存周期旳开始C. 由系统分析员单独完毕旳D. 由顾客自己单独完毕旳原型化措施是软件开发中一类常用旳措施, 它与构造化措施相比较, 更需要( B )。

A. 明确旳需求定义B.完整旳生命周期C、较长旳开发时间D、纯熟旳开发人员软件维护时, 对测试阶段未发现旳错误进行测试、诊断、定位、纠错, 直至修改旳回归测试过程称为( A )。

A、改正性维护B、适应性维护C、完善性维护D、防止性维护一般说来, 投入运行旳软件系统中有错误(A )。

产品功能“耦合性”

产品功能“耦合性”

产品功能“耦合性”为什么研发总是会和你说,这样做很复杂,为什么你的需求变动总是⽐预期的成本更⼤?这⼤概是最常见的产品落地技巧吧,我们作为产品经理,很多时候不只是要考虑做什么,还要考虑怎么做。

⼤多数的结果都是可以通过不同的⽅法得到实现的,⽽这些实现⽅法其实很多都掌握在产品经理的思维⾥。

换⾔之:成熟的产品经理,同样会输出成熟的产品⽅案,也许结果是相同的,但投⼊的成本以及价值,却截然不同。

这也是我⼀直遵守的原则。

今天要和⼤家分享的“耦合性”就是属于会影响产品⽅案的⼀种观念。

什么是“耦合性”对于产品经理⽽⾔,“耦合性”主要体现在功能和逻辑层⾯,是指多个功能或逻辑存在过深的“交叉性”。

产品的功能和逻辑最终都会以技术的⽅法实现,换⾔之,最终都会形成代码语⾔,多和开发⼈员就需求的实现⽅法展开沟通,讨论,这有助于我们理解代码逻辑,从⽽形成耦合性的概念。

案例最典型的耦合性体现在功能交叉关联,这⾥就⽤微信公众号后台来给⼤家分析⼀下吧。

我们先来确定⼀下业务逻辑,微信公众号最本质的功能是公众号的运营⼈员将⽂章发送给多个指定对象我们先来看看这个⽅案怎么样:(⽅案A)毫⽆疑问,这个⽅案能够达到我们的⽬的,即:是公众号的运营⼈员将⽂章发送给多个指定对象。

但这个⽅案存在多个容易为我们造成负担及风险的“耦合性”。

1.如果运营⼈员要将同⼀篇⽂章投放多次怎么办?公众号的内容是较为严谨的,理论上,公众号的内容是有很⼤概率被重复投放的,2.如果⽣产内容的⼈和投放内容的⼈不是同⼀个运营⼈员,⼜怎么办?公众号⽀持以组织,团队的⽅式进⾏运作,这⼀点体现在⼀个公众号可以添加运营号,从⽽实现多个微信账号共同操作⼀个公众号。

3.我最近会有⼀段时间⽐较忙,因此我想预先将内容都准备好,到时候只要发布就可以了,怎么办?或许你会说,我们可以做⼀个定时器,坦⽩讲,我们很少看到定时器在⽤户层的使⽤,因为这会降低⽤户对产品的使⽤频率,从⽽削弱⽤户粘性。

⽅案A在实际操作过程中,还会出现许多的薄弱点。

软件工程 第四章 概要设计

软件工程 第四章 概要设计
4.控制耦合 模块之间传递的不是数据信息,而是控制信息如标志、开关量,一个模块控制了另一模块 的功能。
第4章
4.4 模块的独立性
15
4.4.1 耦合性(Coupling)
5.外部耦合 一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为 外部耦合。 6.公共耦合
若一组模块都访问同一全局数据结构,则称之为公共耦合。公共数据环境可以是全局数据
4
4.2.1 概要设计的任务
概要设计的基本任务是: (1)设计软件系统结构; (2)数据结构及数据库设计; (3)编写概要设计文档;
(4)评审概要设计文档。
第4章
4.2 概要设计的任务与步骤
5
4.2.2 概要设计的步骤
概要设计的一般步骤如下: 1.选定体系结构 2.确定设计方案 3.设计软件结构
4.数据结构及数据库设计
(2)一个模块不通过正常入口而直接转入到另一个模块的内部;
(3)两个模块有一部分代码重叠(该部分代码具有一定的独立功能); (4)一个模块有多个入口。
第4章
4.4 模块的独立性
17
4.4.2 内聚性(Cohesion)
一个模块内各个元素彼此结合的紧密程度用内聚(或称聚合)来度量。一个理想的模块只
完成一个功能,模块设计的目标之一是尽可能高内聚。
第4章
4.4 模块的独立性
21
4.4.2 内聚性(Cohesion)
5.通信内聚
指模块内所有处理功能都通过公用数据而发生关系。即模块内各个组成部分都使用相同的 输入数据或产生相同的输出结果。
第4章
4.4 模块的独立性
22
4.4.2 内聚性(Cohesion)

vf知识点总结

vf知识点总结

公共基础笔试,包括30分的公共基础知识和70分的程序设计相关知识。

数据结构与算法算法基本概念算法:一系列解决问题的清晰指令。

算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。

算法的特征包括:(1)可行性:通过已实现的基本运算执行有限次而完成;(2)确定性:算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;(3)有穷性:算法必须能在有限的时间内做完(4)拥有足够的情报。

算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。

算法的控制结构:顺序结构、选择结构、循环结构。

算法复杂度:包括算法时间复杂度和算法空间复杂度。

时间复杂度: 执行算法所需要计算的工作量。

空间复杂度:执行算法所需要的内存空间。

空间复杂度包括三部分: 1、算法程序所占的空间.2输入的初始数据所占的存储空间。

3算法执行过程中所需要的额外的空间查找算法二分法查找只适用于顺序存储的有序表。

对于长度为n的有序线性表,在最坏情况下,二分查找需比较log2n次,顺序查找需要比较n次。

排序算法冒泡排序法:在最坏情况下,需要比较的次数为n(n-1)/2;快速排序法:在最坏情况下,需要比较的次数为n(n-1)/2简单插入排序法,最坏情况需要n(n-1)/2次比较;简单选择排序法,最坏情况需要n(n-1)/2次比较;希尔排序法,最坏情况需要(n1.5)次比较。

堆排序法,最坏情况需要nlog2n次比较。

数据结构基本考点本节主要内容是数据结构的三要素:数据的逻辑关系、在计算机中的存储关系、与存储关系对应的运算。

栈、队列的数据结构(逻辑关系、存储关系、运算)。

数据结构(1)数据的逻辑结构:数据集合中各数据元素之间所固有的逻辑关系(2)数据的存储结构:在对数据进行处理时,各数据元素在计算机中的存储关系,也就是数据的逻辑结构在计算机存储空间中的存放形式。

采用不同的存储结构,其数据的处理的效率是不同的顺序存储:优点存储密度大,存储空间利用率高。

软件工程中的耦合

软件工程中的耦合

软件工程中的耦合软件工程中的耦合:简单地说,对象之间的耦合度就是对象之间的依赖性。

指导使用和维护对象的主要问题是对象之间的多重依赖性。

对象之间的耦合越高,维护成本越高。

因此对象的设计应使类和构件之间的耦合最小。

就是依赖性,相关性吧!!!有软硬件之间的耦合,还有软件各模块之间的耦合。

耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口.一般模块之间可能的连接方式有七种,耦合性由低到高分别是:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。

耦合是对一个软件结构内各个模块之间互连程度的度量。

内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。

1.什么是内聚?什么是耦合?内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。

它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

2.内聚分为哪几类?耦合分为哪几类?内聚有如下的种类,它们之间的内聚度由弱到强排列如下:(1)偶然内聚。

模块中的代码无法定义其不同功能的调用。

但它使该模块能执行不同的功能,这种模块称为巧合强度模块。

(2)逻辑内聚。

这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能(3)时间内聚(4)过程内聚(5)通信内聚(6)顺序内聚(7)功能内聚耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:(1)内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合 1. 一个模块直接访问另一个模块的内部数据; 2. 一个模块不通过正常入口转到另一模块内部; 3.两个模块有一部分程序代码重迭(只可能出现在汇编语言中); 4.一个模块有多个入口。

(2)公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

耦合性(耦合度)
耦合性是程序结构中各个模块之间相互关联的度量。

它取决于各个模块之间接口的复杂程度、调用模块的方式以及哪些信息通过接口。

一般模块之间可能的连接方式有七种,构成耦合性的七种类型。

它们之间的关系为(由弱到强)(1)非直接耦合(Nondirect coupling)
如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。

这种耦合的模块独立性最强。

(2)数据耦合(Data Coupling)
如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。

由于限制了只通过参数表传递数据,按数据耦合开发的程序界面简单、安全可靠。

因此,数据耦合是松散的耦合,模块之间的独立性比较强。

在软件程序结构中至少必须有这类耦合。

(3)标记耦合(Stamp Coupling)
如果一组模块通过参数表传递记录信息,就是标记耦合。

事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。

这要求这些模块都必须清楚该记录的结构,并按结构要求对此记录进行操作。

在设计中应尽量避免这种耦合,它使在数据结构上的操作复杂化了。

如果采取“信息隐蔽”的方法,把在数据结构上的操作全部集中在一个模块中,就可以消除这种耦合。

(4)控制耦合(control(20upling)
如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。

如图4.13所示。

这种耦合的实质是在单一接口上选择多功能模块中的某项功能。

因此,对所控制模块的任何修改,都会影响控制模块。

另外,控制耦合也意味着控制模块必须知道所控制模块内部的一些逻辑关系,这些都会降低模块的独立性。

(5)外部耦合(External(;oupling)
一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

例如C语言程序中各个模块都访问被说明为extern类型的外部变量。

外部耦合引起的问题类似于公共耦合,区别在于在外部耦合中不存在依赖于一个数据结构内部各项的物理安排。

(6)公共耦合((;ommon Coupling)
若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。

公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

这种耦合会引起下列问题:
1)所有公共耦合模块都与某一个公共数据环境内部各项的物理安排有关,若修改某个数据的大小,将会影响到所有的模块。

2)无法控制各个模块对公共数据的存取,严重影响软件模块的可靠性和适应性。

3)公共数据名的使用,明显降低了程序的可读性。

[Page]
公共耦合的复杂程度随耦合模块的个数增加而显著增加。

如图4.14所示,若只是两个模块之间有公共数据环境,则公共耦合有两种情况。

若一个模块只是往公共数据环境里传送数据,而另一个模块只是从公共数据环境中取数据,则这种公共耦合叫做松散公共耦合。

若两个模块都从公共数据环境中取数据,又都向公共数据环境里送数据,则这种公共耦合叫做紧密公共耦合。

只有在模块之间共享的数据很多,且通过参数表传递不方便时,才使用公共耦合。

否则,还是使用模块独立性比较高的数据耦合好些。

(7)内容耦合((70ntent Coupling)
如果发生下列情形,两个模块之间就发生了内容耦合。

1)一个模块直接访问另一个模块的内部数据;
2)一个模块不通过正常入口转到另一模块内部;
3)两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
4)一个模块有多个入口。

在内容耦合的情形,所访问模块的任何变更,或者用不同的编译器对它再编译,都会造成程序出错。

好在大多数高级程序设计语言已经设计成不允许出现内容耦合。

它一般出现在汇编语言程序中。

这种耦合是模块独立性最弱的耦合。

以上由Myers给出的七种耦合类型,只是从耦合的机制上所做的分类,按耦合的松紧程度的排列只是相对的关系。

但它给设计人员在设计程序结构时提供了一个决策准则。

实际上,开始时两个模块之间的耦合不只是一种类型,而是多种类型的混合。

这就要求设计人员按照Myers提出的方法进行分析,比较和分析,逐步加以改进,以提高模块的独立性。

原则上讲,模块化设计的最终目标,是希望建立模块间耦合尽可能松散的系统。

在这样一个系统中,我们设计、编码、测试和维护其中任何一个模块,就不需要对系统中其他模块有很多的了解。

此外,由于模块间联系简单,发生在某一处的错误传播到整个系统的可能性很小。

因此,模块间的耦合情况很大程度影响到系统的可维护性。

那么,在系统的模块化设计时,如何降低模块间的耦合度呢?以下几点可供参考。

1)根据问题的特点,选择适当的耦合类型
在模块间传递的信息有两种:一种是数据信息,一种是控制信息。

传送数据的模块,其耦合程度比传送控制信息的模块耦合程度要低。

在模块调用时,传送的控制信息有两种:一种是传送地址,即调用模块直接转向所调用模块内部的某一地址。

在这种情况,一个模块的改动对其他模块有直接影响。

另一种是传送判定参数,调用模块把判定参数传送给所调用模块,决定所调用模块如何执行。

在这种情况下,模块间的耦合程度也很高,所以应当尽量减少和避免传送控制信息。

但另一方面,也不要盲目地追求松散的耦合。

例如,一个程序有40种出错信息,若把它们集中放在一个错误处理模块中,通过调用模块
传送错误类型到该模块的接口上,再进行处理,就形成“控制耦合”。

这样做可以消去重复的信息,使所有错误信息格式标准化。

所以,耦合类型的选择,应当根据实际情况,全面权衡,综合地进行考虑。

2)降低模块接口的复杂性
模块接口的复杂性包括三个因素:一是传送信息的数量,即有关的公共数据与调用参数的数量;二是联系方式;三是传送信息的结构。

一般情况,在模块的调用序列中若出现大量的参数,就表明所调用模块要执行许多任务。

通过把这个所调用模块分解成更小的模块,使得每个小模块只完成一个任务,就可以减少模块接口的参数个数,降低模块接口的复杂性,从而降低模块间的耦合程度。

模块的联系方式(即调用方式)有两种:call方式和“直接引用”。

前者使用标准的过程调用方式,模块间接口的复杂性较低,模块间的耦合程度低。

后者是一个模块直接访问另一个模块内部的数据或指令,模块间的耦合程度高。

所以,应当尽可能用call方式代替“直接引用”,减少模块接口的复杂性。

在参数类型上,尽量少使用指针、过程等类型的参数。

此外,在模块接口上传送的信息若能以标准的、直接的方式提供,则信息结构比较简单。

若以非标准的、嵌套的方式提供,则信息结构比较复杂。

例如,在模块中要调用画直线的命令LINE,若命令要求直接给它直线两个端点的坐标Xo,yo,x1,y1:
call LINE(zo,yo,X1,y1)
则接口复杂性比给origin(始点),end(终点)要低。

因为后者还要定义origin和end的结构。

call LINE(origin,end)
3)把模块的通信信息放在缓冲区中
因为缓冲区可以看做是一个先进先出的队列,它保持了通信流中元素的顺序。

沿着通信路径而操作的缓冲区将减少模块间互相等待的时间。

在模块化设计时,如果能够把缓冲区作为每次通信流的媒介,那么一个模块执行的速度、频率等问题一般不影响其他模块的设计。

看到一个很有意思的比喻:
有两个章鱼,7个脚互相缠绕在一起,就是高耦合性; 仅有1个脚互相缠绕就是低耦合性。

相关文档
最新文档