网站大量收购独家精品文档,联系QQ:2885784924

西安工业大学“软件工程”第5章节 软件的设计.pptVIP

西安工业大学“软件工程”第5章节 软件的设计.ppt

  1. 1、本文档共39页,可阅读全部内容。
  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章节 软件的设计

第五章 软件设计 进入设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。然后对结构进一步细化,称为详细设计或过程设计。 5.1 软件概要设计的基本任务 1.设计软件系统结构(简称软件结构) 2.数据结构及数据库设计 3.编写概要设计文档 4.评审 5.软件概要设计说明书的主要内容 5.2 软件设计的过程 1软件设计在开发阶段的重要性 设计提供了软件的表示,使得软件的质量评价成为可能。同时,软件设计又是将用户要求准确地转化成为最终的软件产品的唯一途径。另一方面,软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统。只要出现一些小小的变动,就会使得软件垮掉,而且难于测试。 2软件设计的过程 软件设计是一个把软件需求变换成软件表示的过程。 从工程管理的角度来看,软件设计分两步完成。首先做概要设计,将软件需求转化为数据结构和软件的系统结构,并建立接口。然后是详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。 5.3 软件设计的原则 1. 抽象化 对软件进行模块设计的时候,可以有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言描述问题的解法。而在较低的抽象层次上,则采用过程化的方法。 ? 过程的抽象 ? 数据抽象 ? 控制抽象 2. 自顶向下,逐步细化 Niklaus Wirth提出的设计策略。将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。 3. 模块化 软件系统的层次结构正是模块化的具体体现。就是说,整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。 4. 控制层次 控制层次也叫做程序结构,它表明了程序构件(模块)的组织情况。控制层次往往用程序的层次(树形或网状)结构来表示。 5. 结构划分 程序结构可以按水平方向或垂直方向进行划分。水平划分按主要的程序功能来定义模块结构的各个分支。 6. 数据结构 数据结构是数据的各个元素之间的逻辑关系的一种表示。数据结构设计应确定数据的组织、存取方式、相关程度以及信息的不同处理方法。 7. 软件过程 程序结构描述了整个程序的控制层次关系和各个部分的接口情况,而图所示的软件过程则着重描述各个模块的处理细节。 8.信息隐蔽 如何分解一个软件才能得到最佳的模块组合?为了明确怎样去做,需要了解什么是信息隐蔽。由parnas提倡的信息隐蔽是指,每个模块的实现细节对于其他模块来说是隐蔽的。就是说,模块中所包含的信息(包括数据和过程)不允许其他不需要这些信息的模块使用。 5.4 有效的模块设计 1.模块 模块又称构件,在传统的方法中指用一个名字就可调用的一段程序。类似于高级语言中的过程、函数等。它一般具有如下三个基本属性: ? 功能:即指该模块实现什么功能,做什么事情。 ? 逻辑:即描述模块内部怎么做。 ? 状态:即该模块使用时的环境和条件。 2.模块独立性 所谓模块的独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。 3.内聚性 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。一个内聚程度高的模块(在理想情况下)应当只做一件事. 4.耦合性 耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。它取决于各个模块之间接口的复杂程度、调用模块的方式以及哪些信息通过接口。 一般模块之间可能的连接方式有七种,构成耦合性的七种类型。 两个模块之间的耦合不只是一种类型,而是多种类型的混合。这就要求设计人员进行分析、比较,逐步加以改进,以提高模块的独立性。 5.5 结构化设计方法(Structured Design) 结构化设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。该方法实施的要点是: ① 建立数据流的类型。 ② 指明流的边界。 ③ 将数据流图映射到程序结构。

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档