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

05章总体设计全解.ppt

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

* * * * * * * * * 图是层次图的一个例子,最顶层的方框代表正文加工系统的主控模块,它调用下层模块完成正文加工的全部功能;第二层的每个模块控制完成正文加工的一个主要功能,例如“编辑”模块通过调用它的下属模块可以完成6种编辑功能中的任何一种。 * * * * * * * * * * * * * * * * * * * * * * 本章小结 1.总体设计阶段主要由系统设计和结构设计两阶段组成。 2.进行软件结构设计时应该遵循的最主要的原理是模块独立原理。 3.在软件开发过程中既要充分重视和利用这些启发式规则,又要从实际情况出发避免生搬硬套。 4.层次图和结构图是描绘软件结构的常用工具。 5.用形式化的方法由数据流图映射出软件结构。 本章小结 第5章  总体设计 本章结束 * * * * * * * * * * * * * * 这个不等式导致“各个击破”的结论——把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。 * 这个不等式导致“各个击破”的结论——把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。 * * * * * 使用信息隐藏原理好处因为绝大多数数据和过程对于软件的其他部分而言是隐藏的(也就是“看”不见的),在修改期间由于疏忽而引入的错误就很少可能传播到软件的其他部分。 * * * * * * * * * * 5.2 设计原理 2) 内聚 内聚衡量一个模块内部各个元素彼此结合的紧密程度。 内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。 内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。 内聚分为三大类低内聚、中内聚和高内聚 第5章  总体设计 5.2.5 模块独立 5.2 设计原理 低内聚 一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚。 一个模块完成的任务在逻辑上属于相同或相似的一类,则称为逻辑内聚。 一个模块包含的任务必须在同一段时间内执行,就叫时间内聚。 第5章  总体设计 5.2.5 模块独立 5.2 设计原理 中内聚 一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。 模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚。 高内聚 一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为下一个处理元素的输入数据),则称为顺序内聚。 模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功能内聚。功能内聚是最高程度的内聚。 第5章  总体设计 5.2.5 模块独立 5.2 设计原理 耦合和内聚的概念是Constantine,Yourdon,Myers和Stevens等人提出来的。上述7种内聚的优劣评分,将得到如下结果: 事实上,没有必要精确确定内聚的级别。重要的是设计时高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立性。 第5章  总体设计 5.2.5 模块独立 主要内容 5.1 设计过程 5.2 设计原理 5.3 启发规则 5.4 描绘软件结构的图形工具 5.5 面向数据流的设计方法 5.3 启发规则 第5章  总体设计 5.3 启发规则 1.改进软件结构提高模块独立性 设计出软件的初步结构以后,应该审查分析这个结构,通过模块分解或合并,力求降低耦合提高内聚。 2. 模块规模应该适中 一个模块的规模不应过大,最好能写在一页纸内(通常不超过60行语句) 3.深度、宽度、扇出和扇入都应适当 深度:软件结构中控制的层数 宽度:软件结构内同一个层次上的模块总数的最大值 扇出:一个模块直接控制(调用)的模块数目 扇入:一个模块被多少个上级模块直接调用的数目 5.3 启发规则 第5章  总体设计 5.3 启发规则 4.模块的作用域应该在控制域之内 作用域:受该模块内一个判定影响的所有模块的集合。 控制域:模块本身以及所有直接或间接从属于它的模块的集合。 在图中模块A的控制域是A、B、C、D、E、F等模块的集合。 5.3 启发规则 第5章  总体设计 5.3 启发规则 在一个设计得很好的系统中,所有受判定影响的模块应该都从属于做出判定的那个模块,最好局限于做出判定的那个模块及它的直属下级模块 怎样修改软件结构才能使作用域是控制域的子集呢? 方法1是把做判定的点往上移(例如,把判定从模块A中移到模块M中) 方法2是把那些在作用域内但不在控制域内的模块移到控制域内(例如,把模块G

文档评论(0)

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

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

1亿VIP精品文档

相关文档