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

上传人:大米 文档编号:455656818 上传时间:2023-09-04 格式:DOCX 页数:4 大小:59.65KB
返回 下载 相关 举报
模型耦合与模型内聚举例分析_第1页
第1页 / 共4页
模型耦合与模型内聚举例分析_第2页
第2页 / 共4页
模型耦合与模型内聚举例分析_第3页
第3页 / 共4页
模型耦合与模型内聚举例分析_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《模型耦合与模型内聚举例分析》由会员分享,可在线阅读,更多相关《模型耦合与模型内聚举例分析(4页珍藏版)》请在金锄头文库上搜索。

1、模型耦合与模型内聚举例分析耦合是程序结构内不同模块之间相互关联程度的度量。它是由模块间接口的 复杂程度调用模块的方式及接口传递的信息类型决定的。模块之间的连接越紧密 联系越多,耦合性越高,而其模块独立性就越弱。模块化设计的目标是:建立模 块间耦合尽可能松散的系统。其优点在于: (1)在设计、编码、测试和维护系统 中的任何一个模块时,不需要对系统中的其他模块有很多了解。 (2)当某个模块 出错时,对系统的其他部分影响小。内聚性标志一个模块内部各元素彼此结合的紧密程度。理想情况下,一个内 聚的模块只做一件事。在进行概要设计时,要尽量采取高内聚。内聚与耦合呈反 比关系,模块内的内聚越高,模块间的耦合

2、度就越低。在概要设计阶段,模块内 聚更重要。只要做到各个模块的高内聚,模块间的耦合程度自然降低,模块的独 立性也越高。下面举例分析1) 耦合性 耦合性是对一个软件结构内部不同模块间联系紧密程度的度量指标。 决定耦 合性高低的主要因素由于模块间的联系是通过模块接口实现的,因此,模块耦合性的高低主 要取决于模块接口的复杂程度、调用模块的方式以及通过模块接口的数据。模块 间的耦合性主要可划分为如下几种类型。低 耦合性k 高数据控制K容耦合耦合稱台强 模块独立性 弱(1) 数据耦合。若两个模块之间仅通过模块参数交换信息,且交换的信息全 部为简单数据,则称这种耦合为数据耦合。数据耦合的耦合性最低,通常软

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

4、会增加程序的复杂性。控制耦合的例子如下所示:void output(flag)if (flag) printf(OK! );else printf(NO! );main() int flag;output(flag);/*主函数与output函数之间即为控制耦合关系*/(4) 内容耦合。若一个模块对另一模块中的内容 (包括数据和程序段)进行了 直接的引用甚至修改,或通过非正常入口进入到另一模块内部,或一个模块具有 多个入口,或两个模块共享一部分代码,则称模块间的这种耦合为内容耦合。内 容耦合是所有耦合关系中程度最高的,会使因模块间的联系过于紧密而对后期的开发和维护工作带来很大的麻烦。2) 内聚

5、性 内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指 标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越 高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模 块的内聚性和耦合性是两个相互对立且又密切相关的概念。经实践证明,保证模块的高内聚性比低耦合性更为重要,在软件设计时 应将更多的注意力集中在提高模块的内聚性上。模块的内聚性主要可划分为如下 几种不同的类型。(1) 偶然内聚。若一个模块由多个完成不同任务的语句段组成,各语句段之 间的联系十分松散或根本没有任何联系,则称此模块的内聚为偶然内聚。被调用摸块IS个记录(2) 逻辑内聚。这种模块

6、是把几种功能组合在一起,每次调用时,则由传递 给模块的判定参数来确定该模块应执行哪一种功能。写个记录(3) 时间内聚。若一个模块包含了需要在同一时间段中执行的多个任务,则 称该模块的内聚为时间内聚。例如,将多个变量的初始化放在同一个模块中实现, 或将需要同时使用的多个库文件的打开操作放在同一个模块中,都会产生时间内 聚的模块。(4) 过程内聚。若一个模块中的各个部分相关,并且必须按特定的次序执行, 则称该模块的内聚为过程内聚。在结构化程序中,通常采用程序流程图作为设计 软件和确定模块划分的工具,因此,这样得到的模块往往具有过程内聚的特性。(5) 通信内聚。若一个模块中的各个部分使用同一个输入数据或产生同一个 输出数据,则称该模块的内聚为通信内聚。(6) 顺序内聚。若一个模块中的各个部分都与同一个功能密切相关,并且必 须按照先后顺序执行(通常前一个部分的输出数据就是后一个部分的输入数据), 则称该模块的内聚为顺序内聚。(7) 功能内聚。若一个模块中各个组成部分构成一个整体并共同完成一个单 一的功能,则称该模块的内聚为功能内聚。高穴聚性低歸过程逻轻内聚内聚内聚内聚內乘内聚内聚强複决独立连丕内聚性排列

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号