软件详细设计第5章软件设计工程.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 软件设计工程  5.1 软件工程中的设计   软件设计在软件工程过程中处于技术核心,并且它的应用与所使用的软件过程模型无关。对软件需求进行分析和建模开始之后,软件设计是建模活动的最后一个软件工程活动,接着便要进入构造阶段(生成代码和测试)。   设计工程通常应开始于数据的一致性——这是其他所有设计元素的基础。在基础建立后,必须导出体系结构,只有这样才能继续执行其他设计工作。   分析模型的每个元素都提供了创建四种设计模型所必需的信息,这四种设计模型是完成完整的设计规格说明书所必需的。软件设计过程中的信息流如图5.1所示。由基于场景的元素、基于类的元素、面向流的元素和行为元素所表明的分析模型是设计任务的输入。使用后续章节中讨论的设计表示法和设计方法,将得到数据/类设计、体系结构设计、接口设计和构件设计。 图5.1 从分析模型到设计模型的转化   数据/类设计将分析类模型转化为设计类的实现以及软件实现所要求的数据结构。索引卡定义的类和关系、类属性和其他表示法刻画的详细数据内容,为数据设计活动提供了基础。在和软件体系结构设计连接中可能会有部分的类设计,而更详细的类设计在设计每个软件构件时进行。   体系结构设计定义了软件的主要结构元素之间的联系、可用于达到系统所定义需求的体系结构风格和设计模式以及影响体系结构实现方式的约束。体系结构设计的表示基于计算机系统的框架,可以从系统规格说明、分析模型和分析模型中定义的子系统的交互中导出。   接口设计描述了软件和协作系统之间、软件和使用人员之间是如何通信的。接口就意味着信息流(如数据流和/或控制流)和特定的行为类型。因此,使用场景和行为模型为接口设计提供了所需的大量信息。   构件级设计将软件体系结构的结构元素变换为对软件构件的过程性描述。从基于类的模型、流模型和行为模型获得的信息作为构件设计的基础。   有两种构造软件设计的方式:一种是使其尽可能简单以致明显地没有不足;另一种是使其尽可能复杂以致明显地没有不足。第一种方式更为困难。我们在设计过程中所做出的决定将最终影响软件构建的成功与否,而且重要的是会影响软件维护的难易程度。那么,设计为什么如此重要呢?   软件设计的重要性可以用一个词来表达——质量。设计是软件工程中形成质量的地方,它为我们提供了可以用于质量评估的软件表示,同时是我们能够将用户需求准确地转化为软件产品或系统的唯一方法。软件设计是所有软件工程活动和随后的软件支持活动的基础。没有设计,我们将冒构造不稳定系统的风险,这样的系统稍做改动就无法运行,而且难以测试,直到软件工程过程的后期才能评估其质量,而那时时间已经不够,并且已经花费了大量经费。 5.2 设计过程和设计质量   软件设计是一个迭代的过程,通过设计过程,需求被变换为用于构建软件的“蓝图”。初始时,蓝图描述了软件的整体视图,也就是说,设计是在高抽象层次上的表达,在该层次上可以直接跟踪到特定的系统目标和更详细的数据、功能和行为需求。随着设计迭代的开始,后续的精化导致更低抽象层次的设计表示,这些表示仍然能够跟踪到需求,但是连接更加错综复杂了。   在整个设计过程中,使用一系列正式技术评审或设计走查来评估设计演化的质量。McGlaughlin提出了可以指导评价良好设计演化的三个特征:   (1) 设计必须实现所有包含在分析模型中的明确需求,而且必须满足客户期望的所有隐含需求。   (2) 对于那些生成代码的人和那些进行测试以及随后维护软件的人而言,设计必须是可读的、可理解的指南。   (3) 设计必须提供软件的全貌,从实现的角度说明数据域、功能域和行为域。   以上每一个特征实际上都是设计过程的目标,但是如何达到这些目标呢?下面就是答案。   1.质量指导原则   为了评估某个设计表示的质量,我们必须建立优秀设计的技术标准。在本章的后面部分,我们将讨论设计概念,这些概念也可以作为软件质量的评价标准。现在,我们给出如下的指导原则:   (1) 设计应展示出这样一种结构:① 已经使用可识别的体系结构风格或模式创建;   ② 由展示出良好设计特征的构件(将在本章后面讨论)构成;③ 能够以演化的方式实现,从而便于实现和测试。   (2) 设计应该模块化,也就是说,软件应按照逻辑划分为元素或子系统。   (3) 设计应该包含数据、体系结构、接口和构件的清楚的表示。   (4) 设计应导出数据结构,这些数据结构适于要实现的类,并由可识别的数据模式提取。   (5) 设计应导出显示独立功能特征的构件。   (6) 设计应导出接口,这些接口降低了构件之间以及与外部环境连接的复杂性。   (7) 设计的导出应根据软件需求分析过程中获取的信息,采用可重复使用的方法进行。   (8) 应使用能够有效传达其意义的表示法来表达

文档评论(0)

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

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

1亿VIP精品文档

相关文档