第八讲 软件设计一REV1.0.pptVIP

  1. 1、本文档共30页,可阅读全部内容。
  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文档。上传文档
查看更多
第八讲 软件设计一REV1.0

软件设计 一旦确定了软件的需求之后,就进入了开发阶段。开发阶段由三个相互关联的步骤组成:设计、编码和测试。软件的设计是软件工程过程的技术核心,它的重要性可用一个词——质量来说明,软件的质量不是完成后通过测试添加进去的,它必须被设计到软件中。软件的设计包括数据的设计,系统结构的设计,界面的设计和过程设计。 软件设计的过程和原则 软件设计既是过程,也是模型,也就是说把问题转换为解的过程称为设计,而问题解的描述也称为设计。作为设计过程,它是一个不断迭代的过程,通过这个不断迭代的过程,需求被转换为软件的结构。也就是最初的表示的抽象级别较高,它和需求阶段的所产生的数据,功能,行为直接关联,也称为概要设计,它的目的是告诉用户系统做什么,然后在此基础上不断细化,抽象级别逐渐降低,让开发人员明白为了解决这个问题实际需要的软件和硬件是什么,这一阶段也称为详细设计。 软件设计的过程和原则 设计不应该局限于一种设计方案。 设计必须是可追踪的。因为设计模型中的一个元素经常对应着多个需求,因此必须追踪设计模型是如何满足这些需求的。 设计不必从头开始。应该选择使用那些可重用的设计模式(设计构件)。 设计应把软件和现实中存在的问题间的距离最小化 ,也就是软件设计的结构尽可能模仿问题域的结构。 设计应该具有一致性和集成性。如果是由设计小组完成,则在设计工作开始之前必须制定一个规范。如果仔细的定义设计部件间的界面,则设计就是可集成的。 软件设计的过程和原则(续) 设计应该易于修改 利用后面介绍的设计概念可达到这一原则。 设计应该考虑在遇到异常数据、时间和操作条件时应怎么处理。一个设计良好的程序应该能适应异常情况,即使被迫中断处理,也应给出提示。 设计不是编码,编码不是设计。 每一部件的详细的过程性设计并不是源代码,它比源代码的抽象级别高。 当设计完成后,就可判断软件的质量,不能等到已经成为一套程序系统时才判断。 对设计应该进行评审,把概念性错误减少到最小。 软件设计的概念 自顶向下,逐步细化 软件结构 模块化 模块的独立性 抽象化 信息隐藏 软件过程 软件结构 软件的结构包括两部分:其一为程序的结构,程序结构表明了程序各个成分(模块)的组织情况,但要注意的是,程序结构是软件的过程表示,但并未表明软件的某些过程特征。比如,软件的动态特性,在程序结构中就未明确体现。其二为数据的结构。数据结构是数据的各个元素之间的逻辑关系的一种表示。因为信息的结构总要影响最终的过程设计,所以在软件结构的设计中,数据结构与程序结构同等重要。 软件结构 对于同一组软件需求,用不同的软件设计方法,可能得到不同的软件结构。每一种方法都有自己特定的评优准则,但对于使用不同的设计方法得到的结构,很难回答哪一个更“好”些。只能通过一些结构特征作简单的评价。 模块化 一般把用一个名字就可调用的一段程序称为“模块”。类似于高级语言中的procedure(过程)、function(函数)、subroutine(子程序)、section(节)、block(块)等。它具有三个基本属性: (1)???????功能:即指该模块实现什么功能,做什么事情。必须注意的是,这里所说的模块功能,应是模块的功能加上它所调用的所有子模块的功能。 (2)???????????逻辑:描述模块内部怎么做。 (3)???????????状态:该模块使用时的环境和条件。 模块化 在描述一个模块时,还必须按模块的外部特性与内部特性分别进行描述。模块的外部特性,是指模块的模块名、参数表、其中的输入参数和输出参数,以及给程序以至整个系统造成的影响。而模块的内部特性则是指完成其功能的程序代码和仅供该模块内部使用的数据。 模块化 可以把问题/子问题(功能/子功能)的分解与软件开发中的系统/子系统或者系统/模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的模块之间的接口比较独立的模块结构。 模块的独立性 模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。 一般采用两个准则度量模块独立性。即模块间的耦合和模块的内聚。独立性比较强的模块应是高内聚低耦合的模块。 耦合性 耦合性是程序结构中各个模块之间相互关联的度量。模块之间的连接越紧密,联系越多,耦合性就越高,而且模块独立性就弱。它取决于各个模块之间接口的复杂程度、调用模块的方式以及哪些信息通过接口。 耦合性的七种类型(低——高) 非直接耦合:如果两个模块之间没有直接关系,它们之间的联系完全是通过主要模块的控制和调用来实现的,这就是非直接耦合。 数据耦合:如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档