第五篇 总体设计1.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文档。上传文档
查看更多
例子:扇出 计算实发工资 取得工资数据 编外人员扣款 编外人员工资 编外人员 税收 薪金制工资额 计时制工资额 常规扣款 税收扣款 煎饼形结构 不可取! 例子:扇出 常规扣款 编外人员实发工资 计算实发工资 取得工资数据 计时工人实发工资 计薪工人实发工资 编外人员扣款 编外人员税收 编外人员工资 税收扣款 计时制工资额 薪金制工资额 把煎饼形结构转换成塔型结构 5.3 软件结构设计优化准则 4.模块的作用域应该在控制域之内 模块的作用范围:指受该模块内一个判定影响的所有模块的集合。 模块的控制范围:指这个模块本身以及所有直接或间接从属于它的模块的集合(即所有下级模块)。 * 5.3 软件结构设计优化准则 在一个设计得很好的系统中,作用范围应该是控制范围的子集。 * 例:在图中模块A的控制范围是A、B、C、D、E、F等模块的集合。模块A的作用范围是B和G。 * 解决方法1: 在模块A中给出一个标记设置状态以指示判定的结果,并将它传递给A的上级模块M,再由M把它传递给G。(出现控制偶合) 解决方法2: 修改软件结构。可将A中判定部分移到M中,或将那些在作用域内但不在控制域内的模块移到控制域内,即将G移到A的控制域内,作为A的直属下级模块。 模块TOP的作用范围在控制范围内但判断在层次结构中的位置太高了,使模块B、D的接口有冗余的信息。 * TOP C D E F A B 判定的作用范围恰好在判定所在模块的下一层。 * TOP C D E F A B 5.3 软件结构设计优化准则 5.力争降低模块接口的复杂程度: 模块的接口要简单、清晰,含义明确,便于理解,易于实现、测试与维护。 减少控制信息的传递和模块间数据的共享。 6.设计单入口单出口的模块 7.模块功能应该可以预测 只要输入的数据相同就产生同样的输出,此时这个模块的功能是可以预测的。 * * 总结 软件设计阶段 概要设计的过程 软件结构设计的基本原理 软件结构设计优化准则 * * * * 耦合的分类 (3)标记耦合(特征耦合):如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系。 * “住户情况”是一个数据结构,图中模块都与此数据结构有关. “计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间是标记偶合。 计算水电费 计算水费 计算电费 住户情况 水费 电费 住户情况 * 将标记耦合修改为数据耦合 计算水电费 计算水费 计算电费 本月 用水量 本月 用电量 水费 电费 * 耦合的分类 (4)控制耦合:一模块向下属模块传递的信息 (开关量、标志等控制被调用模块决策的变量) 控制了被调用模块的内部逻辑。 * A 计算平均分 或最高分 B 平均/最高 (控制信号) 成绩 读入分数 输出结果 计算平均分 计算最高分 平均/最高? B * 改控制耦合为数据耦合 A 计算平均分 B1 平均成绩 最高成绩 计算最高分 B2 * 耦合的分类 (5)外部耦合:一组模块均与同一外部环境关联。 如,I/O模块与特定的设备、格式和通信协议相关联,它们之间便存在外部耦合。 外部偶合必不可少,但这种模块数目应尽量少。 * 耦合的分类 (6)公共耦合(公共数据区耦合):两个或多个模块通过一个公共数据环境相互作用 (全程变量、内存的公共覆盖区、模块公用的文件、物理设备等)。 如果一组模块共享的数据很多,通过参数传递不方便时,可以利用公共环境耦合,但应注意共享数据的命名,避免与不相干的模块使用相同名字的变量,从而引起不必要的麻烦。 A 公共数据区 C B * 耦合的分类 (7)内容耦合(最不好的耦合):两个模块出现下列情况之一时产生内容耦合。 一模块直接访问 另一模块的内部 信息 (程序代码 或数据) A B A B 模块代码重叠 Entry1 …… Entry1 …… 多入口模块 * 一、耦合 设计模块间耦合程度的原则: (1)尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。 (2)模块间相互调用时,传递的参数最好只有一个,最多不超过四个。 (3)在设计模块时尽量做到把模块之间的连接限制到最少,模块环境的任何变化,都不应引起模块内部发生改变。 * 二、内聚 内聚:是用来度量一个模块内部各个元素彼此结合的紧密程度的,它是信息隐藏和局部化概念的自然扩展,理想内聚的模块只完成一个功能。 模块设计的目标之一是尽可能地使模块内具有高的内聚。 模块的高内聚往往会带来模块间的松耦合,设计时应更多考虑如何提高模块的内聚程度。 * 内聚的分类 偶然内聚 0分 逻辑内聚 1分 时间内聚 3分

文档评论(0)

189****6140 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档