第四章总体设计.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 设计步骤 复查基本系统模型。 确保系统的输入数据和输出数据符合实际。 复查并精化数据流图。 确保数据流图给出了目标系统正确的逻辑模型,而且应该使数据流图中每个处理都代表一个规模适中相对独立的子功能。 确定数据流图具有变换特性还是事务特性。 从图中可以看出,数据沿两条输入通路进入系统,然后沿五条通路离开。 没有明显的事务中心,可以认为这个信息流具有变换流的特征。 确定输入流和输出流边界,从而孤立出变换中心。 5.5 面向数据流的设计方法 数据流图 5.5 面向数据流的设计方法 具有边界的数据流图 5.5 面向数据流的设计方法 * 设计步骤 完成“第一级分解”。 软件结构代表对控制的自顶向下的分配,所谓分解就是分配控制的过程。 应该在能够完成控制并且保持好的耦合和内聚的前提下,尽量使第一级控制中的模块数目最少。 5.5 面向数据流的设计方法 第一级分解的方法 * 第一级分解的方法 位于软件结构最顶层的控制模块Cm协调下述从属的控制功能: 输入信息处理控制模块Ca,协调对所有输入数据的接收; 变换中心控制模块Ct,管理对内部形式的数据的所有操作; 输出信息处理控制模块Ce,协调输出信息的产生过程。 5.5 面向数据流的设计方法 * 第一级分解得出的软件结构 每个控制模块的名字表明了为它所控制的那些模块的功能。 5.5 面向数据流的设计方法 * 设计步骤 完成“第二级分解”。 所谓第二级分解就是把数据流图中的每个处理映射成软件结构中一个适当的模块。 第二级分解的方法 从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理映射成软件结构中Ca控制下的一个低层模块; 然后沿输出通路向外移动,把输出通路中每个处理映射成直接或间接受模块Ce控制的一个低层模块; 最后把变换中心内的每个处理映射成受Ct控制的一个模块。 5.5 面向数据流的设计方法 * 第二级分解的方法 5.5 面向数据流的设计方法 * 数字仪表板系统第二级分解结果 5.5 面向数据流的设计方法 * 数字仪表板系统第二级分解结果 5.5 面向数据流的设计方法 * 简要说明 虽然图中每个模块的名字表明了它的基本功能,但是仍然应该为每个模块写一个简要说明,描述: 进出该模块的信息(接口描述); 模块内部的信息; 过程陈述,包括主要判定点及任务等; 对约束和特殊特点的简短讨论。 5.5 面向数据流的设计方法 * 设计步骤 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。 具体到数字仪表板的例子,对于从前面的设计步骤得到的软件结构,还可以做许多修改。下面是某些可能的修改: 输入结构中的模块“转换成rpm”和“收集sps”可以合并; 模块“确定加速/减速”可以放在模块“计算mph”下面,以减少耦合; 模块“加速/减速显示”可以相应地放在模块“显示mph”的下面。 5.5 面向数据流的设计方法 * 经过上述修改后的软件结构 5.5 面向数据流的设计方法 * 5.5.3 事务分析 由事务流映射成的软件结构包括一个接收分支和一个发送分支。 映射出接收分支结构的方法和变换分析映射出输入结构的方法很相像。即从事务中心的边界开始,把沿着接收流通路的处理映射成模块。 发送分支的结构包括一个调度模块,它控制下层的所有活动模块;然后把数据流图中的每个活动流通路映射成与它的流特征相对应的结构。 5.5 面向数据流的设计方法 * 事务分析的映射方法 5.5 面向数据流的设计方法 * 5.5.4 设计优化 应该在设计的早期阶段尽量对软件结构进行精化。可以导出不同的软件结构,然后对它们进行评价和比较,力求得到“最好”的结果。这种优化的可能,是把软件结构设计和过程设计分开的真正优点之一。 设计优化应该力求做到在有效的模块化的前提下使用最少量的模块,以及在能够满足信息要求的前提下使用最简单的数据结构。 5.5 面向数据流的设计方法 * 对时间起决定性作用的软件的优化方法 在不考虑时间因素的前提下开发并精化软件结构; 在详细设计阶段选出最耗费时间的那些模块,仔细地设计它们的处理过程(算法),以求提高效率; 使用高级程序设计语言编写程序; 在软件中孤立出那些大量占用处理机资源的模块; 必要时重新设计或用依赖于机器的语言重写上述大量占用资源的模块的代码,以求提高效率。 一句格言“先使它能工作,然后再使它快起来。” 5.5 面向数据流的设计方法 * THANKS! * (7)内容耦合 如果出现以下情形,两个模块之间就发生了内容耦合: 一个模块访问另一个模块的内部数据。 一个模块不通过正常入口转到另一个模块的内部。 两个模块有一部分代码重叠(只可能出现在汇编程序中)。 一个模块有多个入口(这意味着一个模块有几种功能)。 模块化的原则 模块化设计的最终目标,是希望建立模块间耦

文档评论(0)

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

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

1亿VIP精品文档

相关文档