模块的独立性专用课件.pptVIP

  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文档。上传文档
查看更多
模块的独立性专用课件

* * * * * * * * * * * * * * * * * * * * * * * 数据耦合举例 开发票 计算水费 单价 数量 金额 数据耦合举例 计算水电费 计算水费 计算电费 用水量 用电量 水费 电费 (3) 标记耦合(特征耦合) 如两个模块通过传递数据结构(不是简单数据, 而是记录、数组等)加以联系,或都与一个数据 结构有关系, 则称这两个模块间存在标记耦合。 标记耦合举例 计算水电费 计算水费 计算电费 住户情况 水费 电费 住户情况 “住户情况”是一个数据结构,图中模块都与此数据结构有关。 “计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合。 将标记耦合修改为数据耦合举例 计算水电费 计算水费 计算电费 本月 用水量 本月 用电量 水费 电费 (4) 控制耦合 一模块通过开关量、标志、名字等控制信息, 明显地控制另一模块的功能。 控制耦合举例 A 计算平均分 或最高分 B 平均/最高 成绩 控制耦合举例 读入分数 输出结果 计算平均分 计算最高分 平均/最高? 调用逻辑性模块 B时,须先传递 控制信号(平均分 /最高分),以选 择所需的操作。 控制模块必须知 道被控模块的内 部逻辑,增强了 相互依赖。 B 控制耦合增加了理解和编程的复杂性,调用模块 必须知道被调模块的内部逻辑,增加了相互依赖。 去除模块间控制耦合的方法: (1)将被调用模块内的判定上移到调用模块中进行; (2)被调用模块分解成若干单一功能模块。 改控制耦合为数据耦合举例 A 计算平均分 B1 平均成绩 最高成绩 计算最高分 B2 控制耦合举例 A 发奖牌 名次 (开关量) 奖牌 控制耦合 被调用模块内 处理逻辑模式 功能A 功能B 判别 改控制耦合为数据耦合举例 A 发金牌 发银牌 发铜牌 (5) 外部耦合 一组模块均与同一外部环境关联(例如,I/O模块 与特定的设备、格式和通信协议相关联),它们之 间便存在外部耦合。 外部偶合必不可少,但这种模块数目应尽量少。 (6) 公共耦合(公共数据区耦合) 一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。 公共数据区指: 全局数据结构 共享通讯区 内存公共覆盖区等 公共耦合举例 A common 公共数据区 松散的公共耦合 B A common 公共数据区 紧密的公共耦合 B 公共耦合举例 A 公共数据区 C B 模块A、B、C间存在错综复杂的联系 公共耦合举例 所有的公共耦合关系 A E B C D 6个模块共享一 个公共数据区 F 公共耦合存在的问题: (1)软件可理解性降低 (模块间存在错综复杂的连系) (2)软件可维护性差 (修改变量名或属性困难) (3)软件可靠性差 (公共数据区及全程变量无保护措施) 慎用公共数据区和全程变量!!! (7) 内容耦合 一模块直接访问另一模块的内部信息(程序代码 或数据)。 最不好耦合形式 !!! 发生内容耦合的情形: (1)一模块直接访问另一模块的内部数据 (2)一模块不通过正常入口转到另一模块内 (3)两模块有一部分代码重叠 (4)一模块有多个入口 模块化设计的原则和目标 耦合是影响软件复杂程度和设计质量的重要因素 目标:建立模块间耦合度尽可能松散的系统。 如何降低模块间耦合度? (1) 如模块必须存在耦合,选择适当的耦合类型 原则:尽量使用数据耦合    少用控制耦合    限制公共耦合的范围    坚决避免使用内容耦合 (2) 降低模块间接口的复杂性 接口复杂性与耦合类型的关系: 接 口 复 杂 性 接口方式 接口数据 的复杂性 无接口关系 直接引用 过程调用语句 数据项作参数 数据结构,变 量名作参数 内容耦合 其它耦合 开关量,起 控制变量作用 公用数据区 全程变量 数据耦合 标记耦合 控制耦合 外部耦合 公共耦合 非直接耦合 内聚与耦合密切相关,同其它模块强耦合的模块 意味着弱内聚,强内聚模块意味着与其它模块间 松散耦合。 设计目标:力争强内聚、弱耦合。 耦合、内聚与模块独立性关系 耦合与内聚都是模块独立性的定性标准,都反映 模块独立性的良好程度。但耦合是直接的主导因 素,内聚则辅助耦合共同对模块独立性进行衡量。 * * * * * * * “ ” 2. 模块的独立性 模块独立性的概念 模块完成独立的功能 符合信息隐蔽和信息局部化原则 模块间关连和依赖程度尽量小 模块独立性的度量 模块独立性取决于模块的内部和外部特征。 SD方法提出的定性的度量标准: 模块自身的内聚性 模块之间的耦合性 ? 偶然内聚:各成分之间并没有关系,只是把分散在多处的功能合在一起 ? 逻辑内聚:仅仅是逻辑功能相关成分合在一起 ? 时间内聚:必须在同一时间执行,并无

文档评论(0)

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

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

1亿VIP精品文档

相关文档