软件工程导论第5章 总体的设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程导论第5章 总体的设计

软件工程导论 (第5版) 第5章 总体设计 主要内容 5.1 设计过程 5.2 设计原理 5.3 启发规则 5.4 图形工具 5.5 面向数据流的设计方法 教学重点 设计原理、 图形工具。 总体设计 总体设计又称为概要设计或初步设计。 总体设计要着手实现软件的需求,即要着手解决“怎么做”的问题。 基本目的:回答“概括地说,系统应该如何实现?”这个问题。 任务:⑴划分出组成系统的物理元素 ⑵设计软件结构 必要性:从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。 5.1设计过程 步骤: ⒈ 系统设计阶段 确定系统的总体实现方案。 ⒉ 结构设计阶段 确定软件结构 典型过程: ⑴设想供选择的方案 ⑵选取合理的方案 ⑶推荐最佳的方案 ------系统设计 ⑷功能分解 ⑸设计软件结构 ⑹设计数据库 ⑺制定测试计划 ⑻书写文档 ⑼审查和复审 ----结构设计 5.1 续 ⑴设想供选择的方案 出发点:需求分析阶段得出的数据流图 方法:设想把数据流图中的处理分组的各种可能的方法,抛弃在技术上行不通的分组方法。 5.1 续 ⑵选取合理的方案 从前一阶段提供的方案中选取若干个合理的方案,通常至少选取低成本、中等成本和高成本的三种方案。 对每个合理方案要提供以下几方面资料: (1)系统流程图; (2)组成系统的物理元素清单; (3)成本/效益分析; (4)实现这个系统的进度计划。 5.1 续 ⑶推荐最佳的方案 分析员从合理方案中选择一个最佳方案向用户推荐,并为推荐的方案制定详细的实现计划。 对于分析员推荐的最佳方案,用户和有关专家应该认真审查。 提请使用部门负责人进一步审批。 5.1 续 ⑷ 功能分解 从实现角度把复杂的功能进一步分解。 分析员结合算法描述仔细分析数据流图中的每个处理,并进行适当地分解。 一般说来,经过分解之后应该使每个功能对大多数程序员而言都是明显易懂的。 数据流图的进一步细化。 借助适当的工具简要描述细化后每个处理的算法。 5.1 续 ⑸设计软件结构 对于大型系统的设计,通常分为两个阶段:结构设计和过程设计。 ⑴结构设计:确定系统由哪些模块组成,以及这些模块之间的相互关系。 ---总体设计阶段 ⑵过程设计:确定每个模块的处理过程。 ---详细设计阶段 软件结构是由模块组成的层次系统,用层次图或结构图来描绘。 面向数据流的设计方法:数据流图-〉软件结构 5.1 续 ⑹设计数据库 针对需要使用数据库的应用系统。 数据库设计是一项专门的技术,包括模式设计、子模式设计、完整性和安全性设计和优化处理等。 5.1 续 ⑺制定测试计划 目的:促使软件设计人员在设计时注意软件的测试问题,从而有利于提高软件的可测试性。 5.1 续 ⑻书写文档 ⑴系统说明 ⑵用户手册 ⑶详细的实现计划 ⑷测试计划 ⑸数据库设计说明书 5.1 续 ⑼审查和复审 ⑴软件设计人员对总体设计的结果进行严格的技术审查。 ⑵由使用部门的负责人从管理角度进行复审。 5.2 设计原理 模块化 模块:又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合。 模块化:指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。 模块化是软件解决复杂问题所具备的手段,为了说明这一点,可将问题的复杂性和工作量的关系进行推理。 5.2 续 问题的复杂性和工作量的关系 设问题x,C(x)表示问题x的复杂程度;E(x)表示解决问题x所需要的工作量(时间)。 对于问题P1和P2, 如果 C(P1)>C(P2) 即P1比P2复杂 那么 E(P1)>E(P2) 即问题越复杂,工作量越大。 根据解决一般问题的经验得出: C(P1+P2)>C(P1)+C(P2) 即一个问题由两个问题组合而成的复杂度大于分别考虑每个问题的复杂度之和。 可推出: E(P1+P2)>E(P1)+E(P2) 即单独解决问题P1和P2所需的工作量之和,比把P1和P2合起来作为一个问题来解决时所需的工作量要少。 5.2 续 模块化和软件成本的关系 5.2 续 模块化优点 ⑴采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。 ⑵模块化使软件容易测试和调试,从而有助于提高软件的可靠性。 ⑶模块化能够提高

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档