网站大量收购独家精品文档,联系QQ:2885784924

CH总体设计.ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CH总体设计

图5.6判定为真时调用A,为假时调用B 图5.7模块M循环调用模块A、B、C 小结 总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务。 首先,系统设计,根据数据流图设想若干物理方案,选择一最佳方案。 然后,用层次图和结构图等设计软件结构。设计时要遵循模块独立性原理。 在进行软件结构设计时一种有效的方法就是由抽象到具体地构造出软件的层次结构。 软件工程师在开发实践中积累了丰富的经验,总结经验得出一些启发式规则。 自顶向下逐步求精是进行软件结构设计的常用途径。 在详细设计之前先进行结构设计,可在软件开发早期以全局角度对软件结构进行优化,付出代价较小,软件质量可得到重大改进。 * 应用模块化原理时,自然会产生的一个问题是:“为了得到最好的一组模块,应该怎样分解软件”。 数据耦合是指两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据。 数据耦合是低耦合,系统中至少必须存在这种耦合。 如果传递的信息中有控制信息,则这种耦合称为控制耦合。 一个模块传递给另一模块的信息是用于控制该模块内部逻辑的控制信号。 显然,对被控制模块的任何修改,都会影响控制模块。 控制耦合是中等程度的耦合,它增加了系统的复杂程度。 控制耦合可通过模块分解用数据耦合代替。 指当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素时,就出现了特征耦合。 可使用的数据多于需要的数据,将导致对数据的访问失去控制。 当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。 公共环境可以是全程变量、共享通信区、内存的公共覆盖区、任何存储介质上的文件、物理设备等。 出现下列情况之一,模块间发生内容耦合: a.一个模块访问另一个模块的内部数据; b.一个模块不通过正常入口而转到另一个模块的内部; c.两个模块有一部分程序代码重叠(汇编程序); d.一个模块有多个入口(意味着有多个功能)。 内容耦合是最高程度的耦合。 非直接耦合 数据耦合 特征耦合 控制耦合 外部耦合 公共耦合 内容耦合 低 高 应该采取下述设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。 内聚 内聚标志一个模块内各个元素彼此结合的紧密程度。简单地说,理想内聚的模块只做一件事情。 设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多。但是,坚决不要使用低内聚。 内聚的类型:功能内聚、顺序内聚、通信内聚、过程内聚、偶然内聚、逻辑内聚、时间内聚。 设计时应力争做到高内聚,并且能够辨认出低内聚的模块,并采取措施进行修改,以提高模块的内聚程度、降低模块间的耦合程度,从而获得较高的模块独立性。 偶然内聚 逻辑内聚 时间内聚 过程内聚 通讯内聚 顺序内聚 功能内聚 低 高 内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。内聚和耦合都是进行模块化设计的有力工具,但是实践表明内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。 5.3启发规则 软件工程师们在开发计算机软件的长期实践中积累了丰富的经验,得出了一些启发规则。这些启发规则在许多场合能给软件工程师有益的启示,往往能帮助他们找到改进软件设计提高软件质量的途径,有助于实现有效的模块化。 1. 改进软件结构提高模块独立性 。 仔细审查分析软件的初步结构,模块分解或合并,降低耦合、提高内聚。 2. 模块规模应该适中 。 过大,降低可理解度;过小,开销大于有效操作。调整时不可降低模块独立性。 3. 深度、宽度、扇出和扇入都应适当。 深度表示软件结构中控制的层数,粗略标志一个系统的大小和复杂程度。 宽度是软件结构内同一层次上的模块总数的最大值。 扇出是一个模块直接控制的模块数目。好的设计的平均扇出通常是3或4 。扇出过大表示模块过分复杂,需要控制和协调过多的下级模块。 扇入表明有多少个上级模块直接调用它。扇入越大表示共享该模块的上级模块数越多,好处越多,但不能违背模块独立原理。 深度、宽度、扇出和扇入都应适当 顶层 1层 2层 A B C D E F G H I J K L M N 深度 扇入为2 扇出为3 扇入为3 3层 4层 宽度 宽度 宽度 软件结构示意图 有关指标: ⑴深度:表示软件结构中从顶层模块到最底层模块的层数。 ⑵宽度:表示控制的总分布。 ⑶扇出数:指一个模块直接控制下属的模块个数。 ⑷扇入数:指一个模块的直接上属模块个数。  一个好的软件结构的形态准则是:顶部宽度小,中部宽度大,底部宽度次之;在结构顶部有较

文档评论(0)

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

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

1亿VIP精品文档

相关文档