软件工程导论__第五章课后答案.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习参考 学习参考 第五章习题答案 1、为每种类型的模块耦合举一个具体例子。 答:耦合是对一个软件结构内不同模块之间互连程度的度量 。耦 合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点, 以及通过接口的数据,一般模块之间可能的连接方式有 7种,构成 耦合的7种类型,它们之间的关系为: B 耦合性 高 非亘播殺合 峙 觀拥耦合 标记耦曾 控制藕合 外部确合 公■共耦合 內容耦合 担立II 騎 下面举例说明以上各种耦合: 非直接耦合(Non direct Coupli ng )在这种情况下,两个模块 之间没有直接关系,它们之间的联系完全是通过主模块的控制和调 用来实现的,这就是非直接耦合。例如在实数的运算中,有两个模 块分别完成几个实数的求和,求乘积功能,这两个模块之间没有直 接联系,只有在主模块调用中有执行的前后顺序而已 ,这个例子即 属于非直接耦合。 数据耦合(Data Coupling )即一个模块访问另一个模块时,彼 此之间是通过数据参数来交换输入 ,输出信息的,这种耦合为数据 输入,输出信息的这种耦合为数据耦合。如有两个模块,其中A完 成两个烽的比较,求出其中最大的并返回该值,模块B是完成了个 数的比较,求出其中最大的并返回该最大值,为完成四个数的比较 模块B调用模块A即可完成,在这种调用关系中,模块A的运算结 果作为一个参烽参加 B的运算,这两个模块之间即发生数据耦合。 数据耦合是松散的耦合,模块间的独立性比较强。 标记耦合(Stamp Coupling ),即一组模块通过参数传递记录信 息,这就是标记耦合。事实上,这组模块共享了这个记录,它是某 一数据结构的子结构,而不是简单变量。 控制耦合(Control Coupling )即一个模块通过开关标志,名字 等控制住处明显的控制,选择另一模块的功能,这就是控制耦合, 如下 图所示,这一种耦合实质是在单一接口上实现选择多功能模块 中的某项功能,如程序设计中用到多路选择结构即是最好的例子 。 外部耦合(External Coupling )即一组模块都访问同一全局简 单变量而不是同一全局数据结构,而且不是通过参数表传递全局数 据结构,而且不是通过参数表传递全局变量的信息。如C语言中都 访问被说明为extern类型的外部变量的各个模块之间即发生外部耦 合。外部耦合引起的问题类似于下面要介绍的公共耦合 ,区别在于 外部耦合中不存在依赖于一个数据结构内部各项的物理安排 。 公共耦合(Common Coupling )若一组模块都访问同一个公共 数据环境,则它们之间的耦合就是公共耦合 。公共的数据环境可以 是全局的数据结构,共享的通信区,内存的公共覆盖区等。如几个 模块对同一个数据库的查询就属于这种耦合 。公共耦合可以分为松 散的公共耦合和紧密的公共耦合,其中松散的公共耦合是单向操作 如两个或多个模块对同一个文件的读操作 ;而紧密的公共耦合是双 向的操作,如两个或多个模块对同一文件的读写操作 。下面用图表 模块b 示松散的和紧密的公共耦合Og .内容耦合。即有下列情况时即出现内容耦合。(1 示松散的和紧密的公共耦合 O g .内容耦合。即有下列情况时即出现内容耦合。 (1) 一个模块访问另一个模块数据; (2) 一个模块不通过正常入口而转到另一个模块的内部 ; (3) 两个模块有一部分代码重叠; (4) 一个模块有多个入口。 一个模块访问另一个模块数据; 两个模块有部分代码重叠; k Eli try L ? Entry2: 一个模块有多个入口 2、为每种类型的模块内聚举一个具体例子。 答:内聚标志一个模块内各个元素彼此结合的紧密程度 ,它是信 息隐蔽和局部化的自然扩展,一般模块的内聚性分为 7种,它们的 关系如下图示 谡辑旳將 时间內眾 过程內泉 通-言内撮 顺序内聚 功能冋鑒 下面举例说明各种内聚的情况 a.偶然内聚。即模块内各部分之间没有联系,或者即使有联系也 很松散,这种即为偶然内聚,它是 内聚程度最低的模块。如一些没有任何联系的语句可能在许多模块 中重复多次,程序员为了节省存储,把它们抽出来组成一个新的模 块,这个模块就是偶然内聚模块,例如C语言中的# define TRYODBCC …… b .逻辑内聚(Logical Cohesion )即这种模块把几种功能组合在 一起,每次调用时,由传送给模块的 判定参数来确定该模块应执行哪一种功能。如根据输入的控制信息 或从文件中读入一个记录,或向文件写出一个记录。 c.时间内聚(Classical Cohesion )这种模块大多数为多功能模块 但模块的各人功能的执行与时间 有关,通常要求所有功能必须在同一时间段内执行 ,例如初始化模 块和终止模块。 d .过程内聚(Procedural Cohesion

文档评论(0)

laugh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档