第05章软件设计工程

上传人:平*** 文档编号:46326474 上传时间:2018-06-25 格式:PPT 页数:199 大小:1.04MB
返回 下载 相关 举报
第05章软件设计工程_第1页
第1页 / 共199页
第05章软件设计工程_第2页
第2页 / 共199页
第05章软件设计工程_第3页
第3页 / 共199页
第05章软件设计工程_第4页
第4页 / 共199页
第05章软件设计工程_第5页
第5页 / 共199页
点击查看更多>>
资源描述

《第05章软件设计工程》由会员分享,可在线阅读,更多相关《第05章软件设计工程(199页珍藏版)》请在金锄头文库上搜索。

1、第五章 软件设计 工程软件工程课件1第五章 软件设计工程5.1 软件设计的目标与准则 5.2 软件设计工程的任务 5.3 创建良好设计的原则 5.4 传统的结构化设计方法 5.5 面向对象的系统设计 5.6 对象设计 5.7 处理过程设计 5.8 软件设计规格说明 5.9 软件设计评审 25.1 软件设计的目标和准则n软件设计的基本目标是用比较抽象概括的方 式确定目标系统如何完成预定的任务,即软 件设计是确定系统的物理模型。n从技术观点来看,软件设计包括数据设计、 体系结构设计、接口设计、过程设计。n有一些设计目标是从用户那里得到,更多的 设计目标是从非功能需求或应用领域中抽取 出来。n设计目

2、标可以从以下 5 组设计准则中选择。3性能准则 设计设计 准 则则定 义义响应时应时 间间用户户提交请请求后多长时间长时间 可得到系统统的确认认吞吐量在一段固定时间时间 内系统统能够处够处 理多少任务务 内存系统统运行需要占用多少内存空间间 可靠性准则 设计设计 准 则则定 义义鲁鲁棒性面对对非法用户进户进 入后系统统的存活能力 可靠性明确期待的行为为与观观察到行为为之间间的差别别 可用性系统统能够够用来完成正常任务务的时间时间 百分比 容错错性在出错错条件下系统统的操作能力 保密性系统统忍受恶恶意攻击击的能力 安全性再出现错误时现错误时 系统统避免威胁胁到人类类生命的能力 4最终用户准则成本

3、准则设计设计 准则则定 义义 效用系统统支持用户户工作的困难难程度 易用性用户户使用系统统的困难难程度设计设计 准 则则定 义义开发发成本 开发发系统统初始版本的成本 部署成本 安装系统统并培训训用户户的成本 升级级成本 从原有系统统中导导出数据的成本,此准则导则导 致了 向后兼容性需求 维护维护 成本 需要进进行错误错误 修复和增强系统统的成本 管理成本 需要对对系统进统进 行管理的成本5维护准则n性能、可靠性和最终用户准则往往从需求中明 确地获取,也可以从应用领域中获取;而成本 和维护准则由客户和供应商提出。设计设计 准则则定 义义 可扩扩展性向系统统中添加功能或新类类的困难难程度可修改性

4、更改系统统功能的困难难程度 可适应应性将系统发统发 送到不同应应用领领域的困难难程度 可移植性将系统统移植到不同平台的困难难程度 可读读性通过阅读过阅读 源代码码来理解系统统的困难难程度 需求的可追踪性 将代码码映射到特定需求上的困难难程度6n在定义设计目标时,希望开发一个既安全可靠, 又廉价的系统是不现实的,因此开发人员应当对 所有可能的设计目标进行权衡,对必须的设计目 标赋予优先级别。n一旦有了清晰的设计目标,就可以开始系统的初 始分解。权权 衡基 本 原 则则 空间间与速度 如果软软件的响应时间应时间 或吞吐量不满满足需求, 则则可以使用更多的存储储空间间来加快软软件的执执 行速度。如果

5、软软件太大,则则可以牺牺牲一定的 速度对对数据进进行压缩处压缩处 理。7权权 衡基 本 原 则则 交付时间时间 与功能如果开发进发进 度滞后于计计划,则则按时时交付的功能 可以少于预预定交付的功能,或推迟迟交付所有功 能。契约软约软 件通常更强调调功能,而商业业外购购 软软件则则更强调调交付日期。 交付时间时间 与质质量如果测试测试 滞后于计计划,则则可以按时时交付带带有 错误错误 的软软件,或推迟迟交付带带有少量错误错误 的软软 件。 交付时间时间 与人员员配置如果开发进发进 度滞后于计计划,可以在项项目中增加 资资源以提高生产产率。在多数情况下,这这种选择选择 只适用于早期项项目。新的人员

6、员要经过经过 培训训方可 使用。这样这样 中途增加资资源通常会降低生产产率, 还还会增加软软件开发发的成本。85.2 软件设计工程的任务n软件设计工程的任务是基于需求分析的结果建 立各种设计模型,给出问题解决的方案。n软件设计是将用户需求准确地转化成为最终的 软件产品的唯一途径,在需求到实现之间起到 了桥梁作用。n在软件设计阶段,需要在多种设计方案之中进 行决策和折中,并使用选定的方案进行后续的 开发活动。设计决策将最终影响软件实现的成 败,同时也将影响到软件维护。9n软件设计既是过程又是模型。n设计过程是一系列的迭代步骤,使设计人员能 够描述目标系统的各个侧面。n设计模型首先描述目标系统的整

7、体架构,然后 逐步细化架构得到构造每个细节的指导原则, 从而得到系统的一系列不同的视图。n软件设计是后续开发步骤及软件维护工作的基 础。如果没有设计,只能建立一个不稳定的系 统结构。软件设计的概念10n所谓的“不稳定”,是指每次修改,都会导致系 统结构整体的变更,不但费时费力,还会引入 新的错误,降低软件质量。设计编码测试维护测试编码维护有软件设计 没有软件设计11n从工程管理的角度,可以将软件设计分为两个 阶段:概要设计阶段和详细设计阶段。n从技术的角度,采用的方法不同会有所不同:u传统的结构化方法将软件设计划分为体系 结构设计、数据设计、接口设计及过程设计 四部分;u面向对象方法则将软件设

8、计划分为体系结 构设计、类设计数据设计、接口设计、构 件级设计四部分。 软件设计的阶段与任务 12n 体系结构设计 体系结构设计定义软件的主要结构元素及其之 间的关系。体系结构设计表示可以从系统规格 说明、分析模型(如对象类或数据流图)及体 系结构的风格导出。n 类设计 类设计对分析阶段所建立的对象类模型进行细 化,转化为设计类的实现及软件实现所要求的 数据结构。n 数据设计13传统方法主要根据需求阶段所建立的实体-关 系图(E-R图)来确定软件涉及的文件系统的 结构及数据库的表结构。面向对象方法根据类 设计导出数据设计。 n 接口设计 接口设计描述用户界面,软件和其他系统元素 如硬件设备、其

9、他软件系统及使用人员的外部 接口,以及各种构件之间的内部接口。 n 构件级设计 构件级设计将软件体系结构的结构元素变换为 对软件构件的过程性描述。从基于类的模型、14数据流模型及行为模型获得的信息可以作为构 件设计的基础。n 过程设计 过程设计的主要工作是确定软件各个组成部分 内的算法及内部数据结构,并选定某种过程的 表达形式来描述各种算法。n软件设计过程中所有基本技术活动的经典设计 过程流程如图 软件设计的过程15否设计输入设计输入的评审制定技术规范确定运行环境数据设计质量设计体系结构设计运行设计复用模块的选择与确定概要设计说明的编写与评审是否需要 修改设计 ?实施设 计更改是否详细设计是否

10、需要 修改设计 ?实施 设计 更改进入实现阶段是详细设计说明的编写与评审16n良好的设计原则可为设计过程导航。 设计应遵循抽象化的原则,包含包含数据抽象和和过 程抽象。u过程抽象 是指在软件设计中将处理过程 的实现细节隐藏在数据抽象中,可以直接通 过模块接口使用这些处理操作。u数据抽象 是指采用抽象数据类型表示数 据,实现数据封装,使得使用者可通过接口 使用数据而不必关心数据结构的实现。创建良好设计的原则 17v设计应当遵循模块化的原则。u每个模块可独立地开发、测试,最后组装 成完整的程序。u其出发点是本着将一种复杂问题“分而治 之”的原则。其目的是使程序的结构清晰, 容易阅读、理解、测试、修

11、改。uMeyer的良好模块设计方法的标准 v模块可分解性 可将系统按问题子问题 分解的原则分解成系统的模块层次结构; v模块可组装性 可利用已有的设计构件组 装成新系统,不必一切从头开始。18v模块可理解性 一个模块可不参考其他模 块而被理解; v模块连续性 对软件需求的一些微小变更 只导致对某个模块的修改而整个系统不 用大动; v模块保护 将模块内出现异常情况的影响 范围限制在模块内部; u设计应遵循信息隐蔽的原则。uParnas主张在开发时,将每个程序的成分 隐藏在模块内,定义每一个模块时尽可能少 地显露其内部的处理。19u每个模块的实现细节对于其它模块是隐蔽的 ,将来修改软件时偶然引入错

12、误所造成的影 响就可以局限在一个或几个模块内部,不致 波及到软件的其它部分。u在可预见将来可能修改的场合,信息隐蔽可 以提高软件的可修改性、可测试性和可移植 性。 u模块独立性u如果一个模块能够独立于其他模块被编程、 测试和修改,则该模块具有模块独立性。它 是抽象、模块化和信息隐蔽的直接产物。20u1978年Myers提出用两个准则来度量功能独 立性,即模块间的耦合和模块的内聚。u内聚性:内聚是一个模块内部各个元素彼此 结合的紧密程度的度量。u耦合性: 耦合是模块间互相连接的紧密程度 的度量,它取决于各个模块之间接口的复杂 度、调用方式以及哪些信息通过接口。u模块之间的耦合性越高,其模块独立性

13、就越 弱。模块的内聚性越高,它与其他模块之间 的耦合性就会降低,而模块独立性就越强。 21尽可能增加内聚u不同内聚类型:内聚性从高到低排序(1) 功能内聚 u一个模块中各个部分都是为了完成一项具 体功能而协同工作,紧密联系,不可分割 的。这种模块就是功能内聚模块。功能内 聚模块的模块独立性最强。功能内聚 层内聚 通信内聚 顺序内聚 过程内聚 时间内聚 实用程序内聚高 内聚性 低强 模块独立性 弱22v层内聚 相关服务放在一起,并有严格的层次结构,高 层服务可访问低层服务,反之不可。如分层结 构。用户界面访问操作系统访问数据库网络通信应用逻辑应用程序的典型层次内核(处理过程和交换 )屏幕显示功能

14、用户帐号管理文件系统应用程序操作系统的典型层次23v通信内聚 访问或操作同一数据的过程放在一个类中,这 些过程可以互相通信。如某个类设计。初始化插入删除查找修改符 号 表24 顺序内聚:存在一系列过程,其中一个过程向 另一个过程提供输入,这些过程放在一起,形 成顺序内聚。如面向对象系统中的消息序列。 过程内聚:几个一次调用的操作放在一个模块 中,它们是相关的且必须以特定次序执行,则 称这个模块为过程内聚模块。但在这种模块内 ,一个操作的输出不一定是下一个操作的输入 。如调用结构。25 时间内聚:程序执行过程中同一阶段内完成的 操作放在一起,达到时间内聚。 实用程序内聚:逻辑上不能纳入其他内聚类

15、型 的相关实用程序放在一起,形成实用程序内聚 。如可复用的过程或类。写一个记录读一个记录判定调用模块被调用 模块26n 尽可能降低耦合u模块间存在相互依赖关系即为耦合。不同 耦合类型按照耦合性从高向低排列有: 内容耦合 如果发生下列情形,模块间就是内容耦合:一个模块直接访问另一个模块的内部数 据;紧密 耦合性 松散弱 模块独立性 强内容 公共 控制 标记 数据 例程调 类型使 外部 耦合 耦合 耦合 耦合 耦合 用耦合 用耦合 耦合27一个模块不通过正常入口转到另一模块 内部;两个模块有一部分程序代码重迭(只可 能出现在汇编语言中);内容耦合始终要避免它。 公共耦合AB进入另一模块内部模块代码重叠A B28若一组模块都访问同一个公共

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号