软件工程导论第五章总体设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程 软件工程 第5章 总体设计 总体设计(概要设计或初步设计) 总体设计的基本目的就是回答下面这个问题: “概括地说,系统应该如何实现?” 总体设计 首先寻找实现目标系统的各种不同的方案(数据流图是极好的出发点)。 分析员从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,并且制定实现这个方案的进度计划。 分析员从中选出一个最佳方案向用户和使用部门负责人推荐。 如果负责人接受了推荐的方案,分析员应该进一步为这个最佳方案设计软件结构。 总体设计的必要性 可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构; 从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。 5.1 设计过程 总体设计过程通常由两个主要阶段组成: 系统设计阶段:确定系统的具体实现方案; 结构设计阶段:确定软件结构。 1. 设想供选择的方案 在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。 数据流图是总体设计的极好的出发点。 2. 选取合理的方案 通常至少选取低成本、中等成本和高成本的三种方案。 对每个合理的方案分析员都应该准备下列4份资料:系统流程图;组成系统的物理元素清单;成本/效益分析;实现这个系统的进度计划。 3. 推荐最佳方案 综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。 在使用部门的负责人也接受了分析员所推荐的方案之后,将进入总体设计过程的下一个重要阶段——结构设计。 4.功能分解 为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。 5. 设计软件结构 设计软件的体系结构需要在对需求分析阶段生成的数据流图进一步分析和精化的基础上: (1)将系统按照功能划分为模块;通常程序中的一个模块完成一个适当的子功能。 (2)确定模块之间的调用关系及其接口;应该把模块组织成良好的层次系统。 (3)对划分的结果进行优化和调整。良好的软件结构设计对详细设计及编码阶段的工作都是至关重要的。 6. 设计数据库 对于需要使用数据库的那些应用系统,软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。 7. 制定测试计划 在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。 8. 书写文档 应该用正式的文档记录总体设计的结果,在这个阶段应该完成的文档通常有下述几种: 系统说明:数据流图、成本/效益分析,用层次图等描述的软件构件,用IPO图简要描述各个模块的算法,模块的接口等。 用户手册:根据总体设计阶段的结果,修改在需求阶段产生的初步的用户手册。 测试计划:包括测试策略、测试方案、预期的测试结果,测试进度计划等。 详细的实现计划 数据库设计结果:由数据模型(E-R图)转换成数据库的设计结果。 9. 审查和复审 最后应该对总体设计的结果进行严格的技术审查,在技术审查通过之后再由使用部门的负责人从管理角度进行复审。 5.2 设计原理 5.2.1 模块化 模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,这些模块集成起来构成一个整体,可以完成指定的功能以满足用户的需求。 模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。模块是构成程序的基本构件。 过程、函数、子程序和宏等,都可作为模块。 面向对象方法学中的对象是模块,对象内的方法(或称为服务)也是模块。 模块化的根据 “各个击破”的结论——把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。 首先,我们设C(x)为问题x所对应的复杂度函数,E(x)为解决问题x所需要的工作量函数。对于两个问题P1和P2,如果: C(P1) C(P2) 即问题P1的复杂度比P2高,则显然有: E(P1) E(P2) 即解决问题P1比P2所需的工作量大。 模块化和软件成本图 5.2.2 抽象 抽象: 抽象是人类在解决复杂问题时经常采用的一种思维方式,它是指将现实世界中具有共性的一类事物的相似的、本质的方面集中概括起来,而暂时忽略它们之间的细节差异。结构化程序中自顶向下、逐步求精的模块划分思想正是人类思维中运用抽象方法解决复杂问题的体现。 软件工程过程的每一步都是对软件解法的抽象层次的精化: 在可行性研究阶段,软件作为系统的

文档评论(0)

178****4446 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档