- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件设计ZhouSu第5章设计的概念概要
软件体系结构与设计 第5章 设计的概念 第5章 设计的概念 软件工程中的设计 设计过程 关注点分离 关于设计的概念 设计模型 第5章 设计的概念 所谓设计,通常被描述成是一个具有多个步骤的过程,该过程从信息需求中综合出数据和程序结构的表示、接口特征和过程细节。设计与编程同样都关注抽象信息表示和处理顺序,但在详细程度上两者俨然不同。设计关注高层各部分之间的相互关系和低层所包括的逻辑操作,构建内聚和良好规划的程序表示。 第5章 设计的概念 在需求工程的首次迭代有结论时开始设计工程。软件设计的目的是应用一系列能够引导高质量的系统或产品开发的原则、概念和实践来创建软件模型,该模型将正确地实现所有的客户需求。软件设计人员必须从大量可供选择的设计中筛选并最终集中于一个最适合项目利益相关者需要的解决方案。在生成代码、进行测试以及大量最终用户使用之前,要对模型的质量进行评估,并进行改进。软件质量是在设计中建立的。 5.1 软件工程中的设计 设计概念强调了:① 抽象的必要性,它提供了一种创造可重用软件构件的方法;② 体系结构的重要性,它使得能够更好地理解系统整体结构;③ 基于模式的工程的有益性,它是一项用于已证明能力的软件的设计技术;④ 关注点分离和有效的模块化的价值,使得软件更容易理解、测试与维护;⑤ 信息隐藏的直接作用,当错误发生时,它能够减少负面影响的传播;⑥ 功能独立的影响,它是构造有效模块的标准;⑦ 求精作为一种设计方法的作用;⑧ 横切系统需求方面的考虑;⑨ 重构的应用,它是为了优化已导出的设计;⑩ 面向对象的类和与类相关特征的重要性。 5.1 软件工程中的设计 设计的目标是创作出坚固、适用和令人愉悦的模型或表示。坚固,指程序应该不含任何妨碍其功能的缺陷;适用,指程序应该符合开发的目标;而愉悦,是指使用程序的体验应是愉快的。为此,设计师必须先实现多样化,即获取所有方案和设计的原始资料,包括目录、教科书和头脑中的构件、构件方案和知识,然后再进行聚合。在各种信息汇聚在一起之后,应从满足需求工程和分析模型所定义的需求中挑选适合的元素。此时,考虑并取舍候选方案,并进行聚合,使之成为“构件的某种特定的配置,从而创建最终的产品”。 5.1 软件工程中的设计 软件设计是软件工程过程中的技术核心,并且它的应用与所使用的软件过程模型无关。一旦对软件需求进行分析和建模,软件设计就开始了。软件设计也是建模活动的最后一个软件工程活动,接着便要进入构造阶段,即代码的生成和测试。 5.1 软件工程中的设计 需求模型的每个元素都提供了创建4种设计模型所必需的信息,这4种设计模型是完整的设计规格说明所必需的。软件设计过程中的信息流如图5-1所示。由基于场景的元素、基于类的元素、面向流的元素和行为元素所表示的需求分析模型是设计任务的输入。使用设计表示法和设计方法,将得到数据或类的设计、体系结构设计、接口设计和构件级设计。 5.1 软件工程中的设计 数据/类设计将类模型转化为设计类的实现以及软件实现所要求的数据结构。CRC图中定义的对象和关系、类属性和其他表示法刻画的详细数据内容为数据设计活动提供了基础。在与软件体系结构设计的连接中可能会进行部分的类设计,更详细的类设计则在设计每个软件构件时进行。 体系结构设计定义了软件的主要构造元素之间的关系、可用于实现系统所定义需求的体系结构风格和设计模式,以及影响体系结构实现方式。体系结构设计的表示,即基于计算机系统的框架,可以从需求模型导出。 5.1 软件工程中的设计 接口设计描述了软件和协作系统之间、软件和使用人员之间是如何通信的。接口意味着信息流(如数据和/或控制)和特定的行为类型。因此,使用场景和行为模型为接口设计提供了所需的大量信息。 构件级设计将软件体系结构的构造元素变换为对软件构件的过程性描述。从基于类的模型、流模型和行为模型获得的信息可作为构件设计的基础。 在设计过程中所做出的决定将最终影响软件构建的成功,更重要的是会影响软件维护的难易程度。 5.2 设计过程 设计过程从软件的宏观视图向微观视图转移,后者定义了实现系统所必需的细节。设计过程开始时关注于体系结构,然后定义子系统、建立子系统之间的通信机制、识别构件、开发每个构件的详细描述,另外还要设计外部接口、内部接口和用户接口。 5.2 设计过程 软件设计是一个迭代的过程,通过这个过程,需求被变换为用于构建软件的“蓝图”。初始时,蓝图描述了软件的整体视图,也就是说,设计是在高抽象层次上的表达——在该层次上可以直接跟踪到特定的系统目标和更详细的数据、功能和行为需求。随着设计迭代的开始,后续的精化导致较低抽象层次的设计表示。这些表示仍然能够跟踪到需求,但连接更加错综复杂。 5.2.1 软件质量指导原则和属性 在整个设计过程中,要使用一系
文档评论(0)