软件工程课件08课件.ppt

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

软件工程 第八章 设计工程 8.1 软件设计的概念 8.2 设计模型 8.3 基于模式的软件设计 8.1 软件设计的概念 软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。 从技术观点来看,软件设计包括数据设计、体系结构设计、接口设计、构件设计。 数据设计将实体关系图中描述的对象和关系,以及数据字典中描述的详细数据内容转化为数据结构的定义。 体系结构设计定义软件系统各主要成份之间的关系。 接口设计根据信息流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。 构件设计则是把结构成份转换成软件构件的过程性描述。 软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构。 衡量软件设计的原则 软件设计既是过程又是模型。 设计过程是一系列的迭代步骤,使设计人员能够描述目标系统的各个侧面。 设计模型首先描述目标系统的整体架构,然后逐步细化架构得到构造每个细节的指导原则,从而得到系统的一系列不同的视图。 良好的设计原则可为设计过程导航。 衡量设计过程的技术原则: 设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。 对于开发者和未来的维护者而言,设计必须是可读的、可理解的,使得将来易于编程、易于测试、易于维护。 设计应该给出软件的全貌,包括从实现角度可看到的数据、功能、行为。 衡量设计模型的技术原则 设计模型应该是一个分层结构。该结构: 使用可识别的设计模式搭建系统结构。 用显示良好设计特征的构件构成。 可以用演化的方式实现。 设计应当模块化。 设计应当包含数据、体系结构、接口和构件(模块)的清晰的视图。 设计应当根据将要实现的对象和数据模式导出合适的数据结构。 设计应当建立具有独立功能特征的构件。 设计应当建立能够降低模块与外部环境之间复杂连接的接口。 设计模型应当通过使用软件需求信息所驱动的可重复的方法导出。 Davis的软件设计原则 设计应具有可跟踪性,能回溯到软件需求; 设计不必每次都从头做起,可以复用已有的设计模式和数据模式。 设计应当缩小软件与现实世界中问题的“智力距离”,尽量逼近问题领域的结构; 设计应具有一致性和集成性。整个系统应具有统一的风格和格式,具有良好的接口。 设计结果应能适应未来可能的变更; 设计不是编码,编码也不是设计。设计模型的抽象级别比源代码高。在编码级别上唯一的设计决策是补充一些实现细节。 软件设计的主要手段 设计应具有容错性和异常处理能力。对于异常数据、事件、操作条件等能够平滑处理。 在建立设计方案时就应能评估设计质量,而不是在系统编码之后。 应坚持设计评审,减少概念性(语义性)的错误。 1) 设计应遵循抽象化的原则,包含数据抽象和过程抽象。 过程抽象 是指在软件设计中将处理过程的实现细节隐藏在过程抽象中,可以直接通过模块接口使用这些处理操作。 数据抽象 是指采用抽象数据类型表示数据,实现数据封装,使得使用者可通过接口使用数据而不必关心数据结构的实现。 抽象案例 1993年,美国微软公司推出了它的90年代操作系统——Windows NT。在它的许多特色中,有一个特点是它的一体化的“输入/输出系统”的设计。设计者们利用抽象原则,把操作系统的文件管理、网络管理、设备管理和高速缓冲存储器这四个十分不同的事物进行分析,抽取其共性,最后将其统一为“对虚拟文件的字节流,虚拟文件可以为任何设备和实体”,从而设计出具有统一外貌、统一处理模式和规范一体化的输入/输出系统,获得极大成功。 2) 设计应遵循自顶向下、逐步细化的原则,建立一个层次的结构。 将软件体系结构自顶向下,对过程细节和数据细节从抽象到具体,逐层细化,直到用编程语言的语句能够实现为止。 3) 设计模式描述了在某个特定场景中解决某个特定问题的设计结构。 模式是否适合当前的工作 模式是否能够复用 模式是否能够用于指导开发一个类似但是功能或结构不同的模式 4) 设计应当遵循模块化的原则。 每个模块可独立地开发、测试,最后组装成完整的程序。 其出发点是本着将一种复杂问题“分而治之”的原则。其目的是使程序的结构清晰,容易阅读、理解、测试、修改。 Meyer的良好模块设计方法的标准 模块可分解性 可将系统按问题/子问题分解的原则分解成系统的模块层次结构; 模块可组装性 可利用已有的设计构件组装成新系统,不必一切从头开始。 模块化的依据 规律一:如果问题P1的复杂性大于问题P2 ,则解决问题P1需要的工作量大于解决问题P2需要的工作量。 C(P1)>C

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档