软件工程 教学课件 作者 郑人杰 马素霞 麻志毅 第4章 总体设计.pptVIP

软件工程 教学课件 作者 郑人杰 马素霞 麻志毅 第4章 总体设计.ppt

  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文档。上传文档
查看更多
第2部分 结构化软件开发方法 第4章 总体设计 4.1 软件设计的概念及目标 软件设计的概念 设计是一项核心的工程活动。 在20世纪90年代早期,Lotus 1-2-3的发明人Mitch Kapor在Dr. Dobbs杂志上发表了“软件设计宣言”,其中指出: “什么是设计?设计是你站在两个世界——技术世界和人类的目标世界——而你尝试将这两个世界结合在一起……”。 4.1 软件设计的概念及目标 软件设计的概念 罗马建筑批评家Vitruvius提出了这样一个观念: “设计良好的建筑应该展示出坚固、适用和令人赏心悦目”。 4.1 软件设计的概念及目标 软件设计的目标 软件设计的目标涉及性能、可靠性、成本、维护等多个方面的目标。 一般来说,可以从需求规格说明书中选择重要的质量属性,作为设计目标,如性能目标、可靠性目标等,而成本和维护方面往往需要从客户和供应商那里得到。 4.1 软件设计的概念及目标 性能准则 性能准则包括对系统速度和空间的需求。 4.1 软件设计的概念及目标 可靠性准则 可靠性准则决定了对减少系统崩溃及随后所造成危害所做的努力程度。 4.1 软件设计的概念及目标 成本准则 成本准则包括开发、配置和管理系统的成本。 成本准则不仅包括设计上的考虑,还包括管理上的考虑。 4.1 软件设计的概念及目标 维护准则 护准则确定在完成开发后再改变系统的困难程度。 4.1 软件设计的概念及目标 最终用户准则 最终用户准则包括从用户视点出发所需的属性,但并没有覆盖性能准则和可靠性准则。 4.1 软件设计的概念及目标 设计目标的某些权衡 空间与速度 交付时间与功能 交付时间与质量 交付时间与人员配置 4.2 软件设计的任务 软件设计的主要任务是要解决如何做的问题,要在需求分析的基础上,建立各种设计模型,并通过对设计模型的分析和评估,来确定这些模型是否能够满足需求。 软件设计是将用户需求准确地转化成为最终的软件产品的唯一途径,在需求到构造之间起到了桥梁作用。 在软件设计阶段,往往存在多种设计方案,通常需要在多种设计方案之中进行决策和折中,并使用选定的方案进行后续的开发活动。 4.2 软件设计的任务 软件设计的阶段与任务 从工程管理的角度,可以将软件设计分为概要设计阶段和详细设计阶段。 从技术的角度,传统的结构化方法将软件设计划分为体系结构设计、数据设计、接口设计和过程设计4部分; 面向对象方法则将软件设计划分为体系结构设计、类设计/数据设计、接口设计和构件级设计4部分。 4.2 软件设计的任务 软件设计的阶段与任务 从管理和技术两个不同的角度对设计的认识。 4.2 软件设计的任务 软件设计的阶段与任务 体系结构设计:体系结构设计定义软件的主要结构元素及其之间的关系。 类设计:类设计对分析阶段所建立的分析类模型进行细化,转化为设计类的实现及软件实现所要求的数据结构。 数据设计:传统方法主要根据需求阶段所建立的实体—关系图(ER图)来确定软件涉及的文件系统的结构及数据库的表结构。 4.2 软件设计的任务 软件设计的阶段与任务 接口设计:接口设计描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口。 构件级设计:构件级设计将软件体系结构的结构元素变换为对软件构件的过程性描述。 过程设计:过程设计的主要工作是确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。 4.2 软件设计的任务 结构化设计与结构化分析的关系 结构化分析的结果为结构化设计提供了最基本的输入信息。两者的关系如图所示。 4.2 软件设计的任务 结构化设计方法的实施要点 (1) 研究、分析和审查数据流图。 (2) 根据数据流图决定问题的类型:变换型和事务型。针对两种不同的类型分别进行分析处理。 (3) 由数据流图推导出系统的初始结构图。 (4) 利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。 (5) 根据分析模型中的实体关系图和数据字典进行数据设计,包括数据库设计或数据文件的设计。 (6) 在上面设计的基础上,并依据分析模型中的加工规格说明、状态转换图进行过程设计。 (7) 制定测试计划。 4.3 模块结构与数据结构 模块结构及表示 一般通过功能划分过程来完成软件结构设计。功能划分过程从需求分析确立的目标系统的模型出发,对整个问题进行分割,使其每一部分用一个或几个软件模块加以解决,整个问题就解决了。 4.3 模块结构与数据结构 模块 一个软件系统通常由很多模块组成,结构化程序设计中的函数和子程序都可称为模块,它是程序语句按逻辑关系建立起来的组合体。 模块用矩形框表示,并用模块的名字标记它。 4.3 模块结

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档