软件工程(第二版)(闫菲)电子教案 第五章.pptVIP

软件工程(第二版)(闫菲)电子教案 第五章.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 5.1 总体设计的过程 5.2 软件设计基本原理 5.3 设计准则 5.4 总体设计的图形描述工具 5.5 结构化设计方法 退出 第五章 总体设计 5.1 总体设计的过程 5.1.1 设计供选择的方案 5.1.2 推荐最佳实现方案 退出 5.1.3 设计软件结构 5.1.4 数据库设计 5.1.5 制定测试计划 5.1.1 设计供选择的方案 需求分析阶段得出的数据流图是总体设计的根本出发点。 通常,选取的这些方案中至少应包括低成本、中成本和高成本的三种方案类型。 对每个合理方案要提供以下几方面资料: (1)系统流程图; (2)数据字典; (3)成本/效益分析; (4)实现这个系统的进度计划。 5.1.2 推荐最佳方案 分析员从合理方案中选择一个最佳方案向用户推荐,并为推荐的方案制定详细的实现计划。 对于分析员推荐的最佳方案,用户和有关专家应该认真审查。如果确认该方案确实符合用户的需要,并且在现有条件下完全能够实现,则应该提请使用部门负责人进一步审批。在使用部门负责人也接受了分析员所推荐的方案之后,方可进入总体设计过程的下一步工作,即结构设计阶段。 过程设计:确定每个模块的处理过程。 结构设计:确定系统由哪些模块组成,以及这些模块之间的相互关系。 5.1.3 设计软件结构 对于大型系统的设计,通常分为两个阶段:结构设计和过程设计。 其中,结构设计是总体设计阶段的任务,而过程设计则是详细设计阶段的任务。 5.1.4 数据库设计 数据库的应用越来越广泛,目前大多数的系统都要用到数据库技术。 数据库设计是一项专门的技术,包括模式设计、子模式设计、完整性和安全性设计和优化处理等。 5.1.5 制定测试计划 在软件开发的早期阶段提前考虑软件的测试计划是很有必要的。这样能促使软件设计人员在设计时注意到软件的测试问题,从而有利于提高软件的可测试性。 总体设计阶段的文档 (1)总体设计说明书(包括系统实现方案和软件模块结构); (2)测试计划(包括测试策略、测试方案、预测的测试结果、测试进度计划等); (3)用户手册(根据总体设计阶段的结果,编写的初步的用户操作手册); (4)详细的实现计划; (5)数据库设计结果。 5. 2 软件设计基本原理 5.2.1 模块化 5.2.2 抽象 5.2.3 信息隐蔽 退出 5.2.4 模块独立性 模块:又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合。例如高级语言中的过程、函数、子程序等都可作为模块。 5.2.1 模块化 模块化是软件的一个重要属性。模块化的特性提供了人们处理复杂的问题的一种方法,同时也使得软件能够被有效地管理。 这种“分而治之”的思想提供了模块化的根据:把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。 根据前面的结论,我们可以得出下面的不等式: E(P1+P2)>E(P1)+E(P2) 这个不等式表明:单独解决问题P1和P2所需的工作量之和,比把P1和P2合起来作为一个问题来解决时所需的工作量要少。 有两个函数:C(x)表示问题x的复杂程度;E(x)表示解决问题x所需要的工作量(时间)。 对于两个问题P1和P2,如果:C(P1)>C(P2) 则:E(P1)>E(P2) 另一个有趣的特性是:C(P1+P2)>C(P1)+C(P2) 模块化和软件成本的关系 我们在考虑问题时,集中考虑和当前问题有关的方面,而忽略和当前问题无关的方面,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。 5.2.2 抽象 软件工程过程的每一步,都是对软件解法的抽象层次的一次细化。在可行性研究阶段,软件被看作是一个完整的系统部分;在需求分析期间,我们使用在问题环境中熟悉的术语来描述软件的解法;当我们由总体设计阶段转入详细设计阶段时,抽象的程度进一步减少;最后,当源程序写出来时,也就达到了抽象的最低层。 信息隐蔽原理认为:模块所包含的信息(过程和数据)对于其他模块来说应该是隐蔽的。也就是说,模块应当被这样规定和设计,使得包含在模块中的信息(过程或数据)对于其它不需要这些信息的模块来说,是不能访问的,或者说是“不可见”的。 5.2.3 信息隐蔽 信息隐蔽对于软件的测试与维护都有很大的好处。因为对于软件的其它部分来说,绝大多数数据和过程都是隐蔽的,这样,在修改期间由于疏忽而引入的错误所造成的影响就可以局限在一个或几个模块内部,不至波及到软件的其他部分。 模块的独立性是软件质量的关键: (1)模块化程度较高的软件容易开发; (2)模块化程度较高的软件也比较容易测试和维护。 5.2.4 模块独立性 模

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档