软件工程 5. 总体设计.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 总体设计 设计过程 设计原理 启发规则 描绘软件结构的图形工具 面向数据流的设计方法 5.1 设计过程 系统设计阶段:确定系统的具体实现方案 结构设计阶段:确定软件结构 典型的总体设计过程(一) 1. 设想供选择的方案 综合考虑各种可能的实现方案,并且力求从中选出最佳方案。 需求分析阶段得到的数据流图是极好的出发点。 2. 选取合理的方案 参考需求分析阶段确定的工程规模和目标,从可选方案中选择若干个合理的方案,通常至少选择低成本、中等成本、高成本三种方案。 对于每种方案应准备:系统流程图、组成系统的物理元素清单、成本/效益分析、实现系统的进度计划。 3. 推荐最佳方案 综合分析、对比各种合理方案的利弊,推荐一个最佳的方案,并为推荐的最佳方案制定一个详细的实现计划。 用户和有关人员评审所推荐的最佳方案。 典型的总体设计过程(二) 4. 功能分解 确定系统有哪些模块构成,以及这些模块之间的关系。 对于复杂的功能或模块,结合数据流图,进一步分解。 5. 设计软件结构 系统软件是由实现各个子功能的模块构成,软件结构是指模块组成的层次关系。 软件结构用层次图或结构图表示。 数据流图细化到适当的层次,可以映射出软件结构。 6. 设计数据库 结合需求分析阶段所确定的系统数据需求,进一步设计数据库。 典型的总体设计过程(三) 7. 制定测试计划 开发早期考虑并制定测试计划,有助于在设计时注意提高软件的可测试性。 8. 书写文档 系统说明:主要包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本/效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用IPO图或其他工具简要描述的各个模块的算法,模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系等。 用户手册:根据总体设计阶段的结果,更正在需求分析阶段产生的用户手册。 测试计划:包括测试策略,测试方案,预期的测试结果,测试进度计划等。 详细的实现计划 数据库设计结构 9. 审查和复审 技术审查--系统开发方 管理复审--系统使用者 5.2 设计原理 模块化 抽象 逐步求精 信息隐藏和局部化 模块独立 模块化(一) 定义:是指能够相对独立的实现一定功能的程序代码。简单的讲,模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。“复杂的问题分解成许多容易解决的小问题”。 表现形式:过程、函数、子程序、宏;面向对象方法学中的对象、对象内的方法。 优点: 软件结构清晰,便于设计、交流 容易测试、调试,有助于提高软件的可靠性 提高软件的可修改性 有助于软件开发项目的组织与管理 模块化(二) 缺点:当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本(工作量)减少了;但是,随着模块数目增加,设计模块间接口所需要的工作量将增加,并且在模块交互时易发生错误。 图5.1 模块化和软件成本 抽象 定义:是指抽出事物的本质特性并加以描述,但是不考虑它们的细节。 应用:一个复杂系统可以用一些高级的抽象概念构造和理解,这些高级概念又可以用一些较低级的概念构造和理解,如此进行下去,直至最低层次的具体元素。 软件工程过程的每一步都是对软件解法的抽象层次的一次精化。在可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉的方式描述;当由总体设计向详细设计过渡时,抽象的程度随之减少;最后,当源程序实现,即达到抽象的最低层。 抽象与模块化的关系:软件结构顶层的模块,控制系统的主要功能并且影响全局;在软件结构底层的模块,完成对数据的一个具体处理,用自顶向下由抽象到具体的方式分配控制,简化软件的设计和实现,提高软件的可理解性和可测试性,并且使软件更容易维护。 逐步求精 定义:是一种自顶向下的设计策略:通过逐步分解对功能的宏观陈述而开发出层次结构,直至最终得出用程序设计语言表达的程序。 实质:求精就是细化的过程。 求精与抽象的关系:互补性:抽象使设计者说明过程和数据,但却忽略低层的细节;逐步求精则帮助设计者在设计过程中逐步揭示出低层的细节。 信息隐藏与局部化 定义:划分模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。即隐藏每个模块所包含的私有信息。 所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。局部化有助于实现信息隐藏。 应用:在模块中,隐藏的是模块的实现细节;模块之间的交互是为了完成系统功能而必须交换的信息。 优点:易修改。 模块独立(一) 定义:是指每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。 优点: 容易设计和开发。功能分割相对独立,可以

文档评论(0)

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

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

1亿VIP精品文档

相关文档