05软件内部设计精品课件.ppt

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05软件内部设计精品课件

第五章 软件内部设计 在任何工程化产品或系统的开发阶段中,设计是第一步。它可以定义为“为了能够足够详细地定义一种设备、一个处理或一个系统,以便保证其物理实现,而应用各种技术和原则的过程。” 设计者的目标是生成一个随后要构造的实体的一种模型或表示。开发模型的过程综合了基于构造类似实体的经验的直觉和判断、一系列指导模型演化路径的原则和直观推断、一系列判断质量的标准以及导出最终设计表示的迭代过程 本章主要包括: 1.结构化设计与结构化分析的关系 2.设计过程 3.设计原则 4.设计概念 5.有效的模块设计 6.结构化设计方法 7.接口设计 8.详细设计描述工具 9.编写软件设计文档 5.1 结构化设计与结构化分析的关系 软件设计处于软件工程过程中的技术核心位置,并且它的应用不考虑所使用的软件过程模型。软件设计开始于对软件需求进行分析和规约之后,它是构造和验证软件所需的三项技术活动—设计、代码生成和测试—之一,每一项活动都最终导致经过验证的计算机软件的方式变换信息。 分析模型(第3章)的每一个元素均提供了创建设计模型所需的信息。软件设计必须依据对软件的需求来进行,结构化分析的结果为结构化设计提供了最基本的输入信息。 分析模型的每个元素都提供了创建设计模型时所需要的信息。图5-1描绘了软件设计过程中的信息流。 由数据模型、功能模型和行为模型表示的软件需求被传送给软件设计者,他们使用适当的设计方法完成数据设计、体系结构设计、接口设计和过程设计。 在软件设计期间我们所做出的决策,将最终决定软件开发能否成功,更重要的是,这些设计决策将决定软件维护的难易程度。 数据设计将分析时创建的信息域模型变换成实现软件所需的数据结构。在实体—关系图中定义的数据对象和关系以及数据字典中描述的详细数据内容为数据设计活动奠定了基础。 结构设计定义了程序的主要结构元素之间的关系。这种设计表示—计算机程序的模块框架—可以从分析模型和分析模型中定义的子系统的交互导出。 接口设计描述了软件内部、软件和协作系统之间以及软件同人之间如何通信。一个接口意味着信息流(如数据和/或控制流),因此,数据和控制流图提供了接口设计所需的信息。 过程设计将程序体系结构的结构元素变换为对软件构件的过程性描述。 我们在设计时作出的决策最终将会影响软件构造是否成功,更重要的是会决定,软件维护的难易程度,但是,为什么设计如此重要呢? 软件设计的重要性可以用一个词来表达——质量。设计是在软件开发中形成质量的地方,设计为我们提供了可以用于质量评估的软件表示,设计是我们能将用户需求准确地转化为完整的软件产品或系统的唯一方法。软件设计作为所有软件工程和软件维护步骤的基础,没有设计,我们将要构造出不稳定系统的风险—稍作改动就会失败;难于测试的系统;直到软件工程过程后期才能评估系统的质量,到那时时间已不够并且已经花销很多经费。 5.2 设计过程 软件设计是一个迭代的过程,通过它需求被变换为用于构造软件的“蓝图”。初始时,蓝图描述了软件的整体视图,也就是说,设计在高的抽象层次上表示—在该层次可以直接追踪到特定数据、功能和行为需求。随着数据迭代的开始,后续的精化将导致更低抽象级别的设计表示,这些表示仍然能够追踪到需求,但是连接更微妙了。 5.2.1 设计和软件质量 在整个设计过程中,演化的设计的质量可以通过在一系列正式技术复审或设计追踪审查来评估。良好设计演化具有以下三个特征: (1)设计必须实现所有包含在分析模型中的明显需求,并且必须满足客户希望的所有隐式需求。 (2)对于那些生成代码和那些进行测试并随后维护软件的人而言,设计必须是可读的,可理解的。 (3)设计应该提供软件的完整面貌,这与从某个实现视角看到的数据、功能、和行为域有关。 为评价一项设计表示的质量,我们必须建立良好的设计技术标准,在本章的后面部分,我们将详细讨论设计质量标准,现在,我们给出下面的指南: (1)设计应该展示一种层次性组织,从而使得可以有指导性地使用软件元素间的控制。 (2)设计应该模块化,也就是说软件应该逻辑地划分成完成特定功能和子功能的构件。 (3)设计应该既包含数据抽象,也包含过程抽象。 (4)设计应该导出具有独立功能特征的模块(例如,子例程或过程)。 (5)设计应该导出降低模块和外部环境间复杂连接的接口。 (6)设计应该通过使用由软件需求分析过程中获得的信息导出要驱动的可重复的方法。 5.2.2 软件设计的演化 软件设计的演化是一个历经以往三十年的连续过程。早期的设计工作集中在模块化程序的开发标准和自顶向下求精软件结构的方法,设计定义的过程方面发展成一种称为结构化程序设计的理论,以后的工

文档评论(0)

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

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

1亿VIP精品文档

相关文档