4 总体设计.ppt

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

总体设计 需求分析解决:系统做什么? 总体设计解决:系统怎样做? 本章主要内容 设计过程 设计原理 启发式规则 描述软件结构的图形工具 面向数据流的设计方法 总体的设计过程 总体设计过程分为两个阶段 系统设计阶段:确定系统的实现方案 结构设计阶段:确定软件结构 总体的设计过程 设想供选择的方案 选取合理的方案 推荐最佳方案 功能分解 设计软件结构 数据库设计 制定测试计划 书写文档 审核和复审 功能分解 为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。 功能分解导致数据流图进一步细化,同时使用图形工具描述算法。 设计软件结构 顶层模块调用它下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能 。 软件结构可以用层次图或结构图表示。 有些软件的结构可以通过细化的数据流图映射得到。 软件设计的概念和原理 模块化 抽象 逐步求精 信息隐蔽和局部化 模块独立 抽 象 处理复杂系统的唯一有效的方法是用层次的方式构造和分析它。 逐步求精 逐步求精和模块化的概念,与抽象是密切相关的。 如软件工程的每一步都是对软件解法的抽象层次的一次精化。可行性分析阶段,软件作为完整的部件;需求阶段,软件解法使用熟悉的问题描述;从总体设计到详细设计,抽象程度降低,逐步精化。 抽象与求精互补。 逐步求精 定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。 原因:人类认知过程的局限——Miller法则 一个人在任何时候都只能把注意力集中在(7+ 2)个知识块上。 逐步求精的效果,把注意力集中在与当前开发最相关的问题上,忽略暂时不需要考虑的细节。 模块独立 模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合,内聚衡量一个模块内部各个元素彼此结合的紧密程度;耦合衡量不同模块彼此间互相依赖(连接)的紧密程度。 启发式规则 改进软件结构提高模块独立性 模块规模应该适中 深度、宽度、扇出和扇入应适当 模块的作用域应在控制域之内 尽量降低模块接口的复杂程度 设计单入口出口的模块 模块功能应该可以预测 图形工具 层次图和HIPO图 结构图 层次图 层次图和层次方框图的区别 层次图中一个矩形表示一个模块,矩形框之间的连线表示调用关系 层次方框图一个矩形表示一个数据集合,矩形框之间的连线表示数据的层次 HIPO图 HIPO图 是美国IBM公司发明的层次图加“输入/处理/输出图”的英文缩写为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号。 和H图中每个方框对应,有一张IPO图描绘该模块的处理过程。 层次图和结构图 层次图和结构图并没有表示出模块的调用次序。 同时两种图也没有指明什么时候调用下层模块。 面向数据流的设计方法 概念 变换分析 事务分析 设计优化 概念 – 变换流 信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流 。 变换流分析设计 第3步 确定数据流图具有变换特性还是事务特性。 上图中数据沿着两条输入通路进入系统,然后沿着5条通路离开,没有事务中心,所以是变换流。 变换流分析设计 第4步 确定输入流和输出流的边界,从而孤立出变换中心。 即在数据流图中画出输入、处理和输出。 不同的设计人员可能会选取不同的点作为边界的位置。 边界移动,对软件结构影响小。 变换流分析设计 第5步 完成“第一级分解”。 即在第4步的基础上,将数据流图的各部分映射为初级的层次图。 变换流分析设计 变换流分析设计 第6步 完成“第二级分解”。 即将数据流图中每个处理都映射为一个模块 方法: 先从变换中心的边界沿着输入向外映射 再从变换中心沿着输出向外映射 最后映射变换中心的处理 变换流分析设计 第7步 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。 前一页 前一页 软 件 设 计 的 概 念 和 原 理 模块独立 – 内聚 内聚(Cohesion) 内聚是一个模块内各个元素彼此结合的紧密程度。设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的。 内聚和耦合密切相关,模块内的高内聚意味着模块间的松耦合。 按程度分类:低内聚 中内聚 高内聚 前一页 模块独立 – 内聚 低内聚 有如下几类:偶然内聚、逻辑内聚、 时间内聚 偶然内聚(Coincidental Cohes

文档评论(0)

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

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

1亿VIP精品文档

相关文档