第3章 软件设计基础第3章软件设计基础第3章 软件设计基础第3章 软件设计基础.ppt

第3章 软件设计基础第3章软件设计基础第3章 软件设计基础第3章 软件设计基础.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内容 3.1 软件设计的基本概念 3.2 软件设计过程 3.3 软件设计的质量 3.4 软件体系结构设计 3.5 高可信软件设计 3.6 软件设计规格说明 3.7 软件设计评审 3.1 软件设计的基本概念 软件设计主要针对需求分析过程得到的软件需求规格说明,综合考虑各种制约因素,探求切实可行的软件解决方案并最终给出方案的逻辑表示,包括文档、模型等。 软件设计受到资源和技术两方面的制约。 软件设计基本概念是过去数十年里陆续提出的,软件设计者根据这组概念进行设计决策。 软件设计的最终目标是获得满足软件需求的、明确的、可行的、高质量的软件解决方案。 (1)抽象与逐步求精 “抽象”是一个心理学概念,它要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。是管理、控制复杂性的基本策略。 软件设计过程是在不同抽象级别考虑、处理问题的过程。最初应该在最高抽象级别上,用面向问题域的语言概述问题,包括问题解的形式,然后不断具体化,不断用接近计算机域的语言描述问题,最后,在最低的抽象级别上给出可直接实现的问题解,即程序。 (1)抽象与逐步求精 软件设过程的每一步都是对较高以及抽象的解作一次更具体化的描述。 过程抽象:把完成特定功能的动作序列抽象为一个过程名和参数表,以后通过指定过程名和实际参数调用此过程。 数据抽象:把一个数据对象的定义(或描述)抽象为一个数据类型名,用此类型名可定义多个具有相同性质的数据对象。 (1)抽象与逐步求精 “逐步求精” 可视为一种早期的自顶向下设计策略,其主要思想是,针对某个功能的宏观描述用逐步求精的方法不断地分解,逐步确立过程细节,直至该功能用程序语言描述的算法实现为止。 在软件设计过程中,抽象与逐步求精是一般都是结合起来进行应用。 系统的层次结构的上一层是下一层的抽象,下一层是上一层的求精。 抽象与逐步求精 (2)模块化与信息隐藏 软件体系结就体现了模块化思想,即把软件划分为可独立命名和访问的部件,每个部件称为一个模块,当把所有模块组装到一起时则获得满足问题需要的一个解。 模块化使得开发活动更加简单的一个重要因素是模块的信息隐藏,即一个模块的开发者不必看到其它模块的内部,只需知道其接口即可,这使得每个模块的开发人员所要处理的复杂性显著降低。 信息隐藏指导的模块化设计不仅支持模块的并行开发,而且还可以减少测试和维护的工作量。 (2)模块化与信息隐藏 问题求解的研究表明,把两个问题组合起来进行求解的复杂性,一般要比分别对两个问题进行求解的复杂度之和更大,这个结论导致“分治法”的出现,即把一个复杂问题分割成若干个可管理的、更易于求解的小问题。 但这种分割并不意味着“无限”分割,当模块数量增加时,模块接口所需要的代价也随之增加。 模块数量与成本 (2)模块化与信息隐藏 恰当的定义模块范围和大小非常重要,这与采用的设计方法密切相关,评价所采用设计方法的标准: 模块可分解性 模块的组装性 模块的可理解性 模块连续性 模块保护 内聚与耦合 每个模块应相对独立,其功能相对单一,而模块之间的接口应尽可能简单。 内聚是前述信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。 耦合是对软件结构中模块间关联程度的一种度量。耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置以及通过接口传送数据的多少等。 追求高内聚、低耦合。 内聚 内聚按其高低程度可划分为不同等级,内聚度越高越好,从而获得较高的模块独立性。 低等级内聚: 偶然性内聚 逻辑性内聚 时序内聚 中等级内聚: 过程性内聚 通信性内聚 高级内聚: 顺序性内聚 功能性内聚:最高程度的内聚 耦合 耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置、通过接口传输数据量等。 模块间的耦合程度直接影响着系统的可理解性、可测试性、可靠性和可维护性,软件设计应追求尽可能松散的耦合,模块间的联系越少,错误在模块间传递的可能性就越小。 耦合 耦合等级的划分 低等级耦合: 非直接耦合 中等级耦合 数据耦合 特征耦合 控制耦合 外部耦合 公共耦合 高等级耦合: 内容耦合 尽量使用数据耦合,减少控制耦合,限制外部耦合和公共耦合,杜绝内容耦合。 内聚和耦合的量化指标 类耦合度 类的耦合度为与它耦合的其它类的数目,包括调用其他类的方法、使用其它类的实例变量。一个类越独立,它在应用中就越容易被重用,类之间的耦合度应尽可能的小。 方法内聚缺

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档