模型耦合与模型内聚举例分析.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模型耦合与模型内聚举例分析 耦合是程序结构内不同模块之间相互关联程度的度量。它是由模块间接口的 复杂程度调用模块的方式及接口传递的信息类型决定的。模块之间的连接越紧密, 联系越多,耦合性越高,而其模块独立性就越弱。模块化设计的F1标是:建立模 块间耦合尽可能松散的系统。其优点在于:(1)在设计、编码、测试和维护系统 屮的任何一个模块时,不需要对系统屮的其他模块有很多了解。(2)半某个模块 出错时,对系统的其他部分影响小。 内聚性标志一个模块内部各元索彼此结合的紧密程度。理想情况下,i个内 聚的模块只做一件事。在进行概要设计时,要尽量采取高内聚。内聚与耦合呈反 比关系,模块内的内聚越高,模块间的耦合度就越低。在概要设计阶段,模块内 聚更重要。只要做到各个模块的高内聚,模块间的耦合程度自然降低,模块的独 立性也越高。下面举例分析 1)耦合性 耦合性是对一个软件结构内部不同模块间联系紧密程度的度量指标。决定耦 合性高低的主要因素 由于模块间的联系是通过模块接口实现的,因此,模块耦合性的高低主 要取决于模块接口的复杂程度、调用模块的方式以及通过模块接口的数据。模块 间的耦合性主要可划分为如下几种类型。 低 耦合性 高 数据 公共 控制 内容 耦合 耦合 耦合 耦合 模块独立性 弱 数据耦合。若两个模块之间仅通过模块参数交换信息,且交换的信息全 部为简单数据,则称这种耦合为数据耦合。数据耦合的耦合性最低,通常软件屮 都包含有数据耦合。数据耦合的例子如下所示: sum(int a,int b) {int c; c=a+b; return(c); } main() {int x,y; printf(x+y= %d,,,sum(x/y)); }广主函数与sum函数之间即为数据耦合关系*/ 公共耦合。若两个或多个模块通过引用公共数据相互联系,则称这种耦 合为公共耦合。例如,在程序屮定义了全局变量,并在多个模块屮对全局变量进 行了引用,则引用全局变量的多个模块间就具有了公共耦合关系。 B. C. E为公共耦合 控制耦合。若模块之间交换的信息屮色含有控制信息(尽管有吋控制信息 是以数据的形式出现的),则称这种耦合为控制耦合。控制耦合是屮等程度的耦 合,它会增加程序的复杂性。控制耦合的例子如下所示: void output(flag) {if (flag) printf(HOK! n); else printf(nNO!); } main() {int flag; output(flag); }/*主函数与output函数之间即为控制耦合关系*/ 内容耦合。若一个模块对另一模块屮的内容(包括数据和程序段)进行了 直接的引用甚至修改,或通过非正常入口进入到另一模块内部,或一个模块具有 多个入口,或两个模块共亨一?部分代码,则称模块间的这种耦合为内容耦合。内 容耦合是所有耦合关系屮程度最高的,会使因模块间的联系过于紧密而对后期的 开发和维护工作带来很大的麻烦。 2)内聚性 内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指 标。模块屮组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越 高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做-?件事情。模 块的内聚性和耦合性是两个相互对立且又密切相关的概念。 经实践证明,保证模块的高内聚性比低耦合性更为重要,在软件设计吋 应将更多的注意力集屮在提高模块的内聚性上。模块的内聚性主要可划分为如下 几种不同的类型。 偶然内聚。若一?个模块由多个完成不同任务的语句段组成,各语句段之 间的联系十分松散或根本没有任何联系,则称此模块的内聚为偶然内聚。 逻辑内聚。这种模块是把几种功能组合在一?起,每次调用吋,则由传递 给模块的判定参数来确定该模块应执行哪种功能。 读个记 读 个 记录 写个 记 录 调用模块 吋间内聚。若一个模块包含了需要在同一吋间段屮执行的多个任务,则 称该模块的内聚为吋间内聚。例如,将多个变量的初始化放在同一个模块屮实现, 或将需要同时使用的多个库文件的打开操作放在同一?个模块屮,都会产生时间内 聚的模块。 L程内聚。若一个模块屮的各个部分相关,并且必须按特定的次序执行, 则称该模块的内聚为过程内聚。在结构化程序屮,通常采用程序流程图作为设计 软件和确定模块划分的工具,因此,这样得到的模块往往具有过程内聚的特性。 通信内聚。若一?个模块屮的各个部分使用同一?个输入数据或产生同一个 输出数据,则称该模块的内聚为通信内聚。 顺序内聚。若一个模块屮的各个部分都与同一个功能密切相关,并且必 须按照先后顺序执行(通常前一-个部分的输出数据就是后一个部分的输入数据), 则称该模块的内聚为顺序内聚。 功能内聚。若一?个模块屮各个组成部分构成一?个整体并共同完成一?个单 一的

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档