内聚性与耦合性_第1页
内聚性与耦合性_第2页
内聚性与耦合性_第3页
内聚性与耦合性_第4页
内聚性与耦合性_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、耦合性与内聚性(2010-06-20 12:13:39)转载Q标签:分类:概念文章耦合性内聚性it1)耦合性. 耦合性是对一个软件结构内部不同模块间联系紧密程度的度量指标。 决定耦合性高低的主要因素由于模块间的联系是通过模块接口实现的,因此,模块耦合性的高低主要取 决于模块接口的复杂程度、调用模块的方式以及通过模块接口的数据。模块间的 耦合性主要可划分为如下几种类型。低 耦合性k 高数据公共控制内容耦合耦台糖合糖台强 模块独立性 弱数据耦合。若两个模块之间仅通过模块参数交换信息,且交换的信息全部为 简单数据,则称这种耦合为数据耦合。数据耦合的耦合性最低,通常软件中都包 含有数据耦合。数据耦合的

2、例子如下所示:sum(int a,int b)(int c;c=a+b;return(c); main()int x,y;printf(x+y= %d”,sum(x,y);公共耦合。若两个或多个模块通过引用公共数据相互联系,则称这种耦合为 公共耦合。例如,在程序中定义了全局变量,并在多个模块中对全局变量进行了 引用,则引用全局变量的多个模块间就具有了公共耦合关系。控制耦合。若模块之间交换的信息中包含有控制信息(尽管有时控制信息是 以数据的形式出现的),则称这种耦合为控制耦合。控制耦合是中等程度的耦合, 它会增加程序的复杂性。控制耦合的例子如下所示:void output(flag)if (fl

3、ag) printf(OK!);else printf(NO!);main() int flag;output(flag);内容耦合。若一个模块对另一模块中的内容(包括数据和程序段)进行了直接 的引用甚至修改,或通过非正常入口进入到另一模块内部,或一个模块具有多个 入口,或两个模块共享一部分代码,则称模块间的这种耦合为内容耦合。内容耦 合是所有耦合关系中程度最高的,会使因模块间的联系过于紧密而对后期的开发 和维护工作带来很大的麻烦。2)内聚性内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模 块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理 想的内聚性

4、要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内 聚性和耦合性是两个相互对立且又密切相关的概念。经实践证明,保证模块的高内聚性比低耦合性更为重要,在软件设计时应将 更多的注意力集中在提高模块的内聚性上。模块的内聚性主要可划分为如下几种 不同的类型。偶然内聚。若一个模块由多个完成不同任务的语句段组成,各语句段之间的 联系十分松散或根本没有任何联系,则称此模块的内聚为偶然内聚。逻辑内聚。这种模块是把几种功能组合在一起,每次调用时,则由传递给模 块的判定参数来确定该模块应执行哪一种功能。被调用模块读个记录时间内聚。若一个模块包含了需要在同一时间段中执行的多个任务,则称该 模块的内聚为时间

5、内聚。例如,将多个变量的初始化放在同一个模块中实现,或 将需要同时使用的多个库文件的打开操作放在同一个模块中,都会产生时间内聚 的模块。过程内聚。若一个模块中的各个部分相关,并且必须按特定的次序执行,贝U 称该模块的内聚为过程内聚。在结构化程序中,通常采用程序流程图作为设计软 件和确定模块划分的工具,因此,这样得到的模块往往具有过程内聚的特性。通信内聚。若一个模块中的各个部分使用同一个输入数据或产生同一个输出 数据,则称该模块的内聚为通信内聚。顺序内聚。若一个模块中的各个部分都与同一个功能密切相关,并且必须按 照先后顺序执行(通常前一个部分的输出数据就是后一个部分的输入数据),则称 该模块的内聚为顺序内聚。功能内聚。若一个模块中各个组成部分构成一个整体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论