软件工程 第4章 软件总体设计.ppt_第1页
软件工程 第4章 软件总体设计.ppt_第2页
软件工程 第4章 软件总体设计.ppt_第3页
软件工程 第4章 软件总体设计.ppt_第4页
软件工程 第4章 软件总体设计.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章软件总体设计 本章引言 总体设计过程通常由两个阶段组成 系统设计和结构设计 其中系统设计的任务是确定系统的具体实现方案 结构设计则是确定软件的模块结构 这两个阶段是紧密联系在一起的 它们执行的效果将直接影响到总体设计好坏 乃至整个软件工程的合理与否 前一个阶段是后一个阶段的基础 后一个阶段是前一个阶段的发展方向 因此 我们在总体设计的整个过程中必须围绕系统设计和结构设计这两个阶段展开每一项工作 第四章软件总体设计 本章重点 软件设计的概念与原则 掌握总体设计的步骤和方法 教学目标 掌握软件设计的概念与原则 掌握总体设计的步骤和方法 了解总体设计的文档与评审 第四章软件总体设计 4 1总体设计概述4 2总体设计的图形描述工具4 3模块化设计4 4面向数据流的设计方法4 5小结4 6习题 4 1总体设计概述 4 1 1总体设计的任务系统分析员审查软件计划 软件需求分析提供的文档 提出最佳推荐方案 用系统流程图 组成系统物理元素清单 成本效益分析 系统的进度计划 供专家审定 审定后进入设计 确定模块结构 划分功能模块 将软件功能需求分配给所划分的最小单元模块 确定模块间的联系 确定数据结构 文件结构 数据库模式 确定测试方法与策略 编写总体设计说明书 用户手册 测试计划 选用相关的软件工具来描述软件结构 结构图是经常使用的软件描述工具 选择分解功能与划分模块的设计原则 例如模块划分独立性原则 信息隐蔽原则等 4 1总体设计概述 4 1 2总体设计的步骤1 设计系统方案2 选取合理的方案3 推荐最佳方案4 功能分解5 软件结构设计6 数据库设计 文件结构的设计7 制定测试计划8 书写文档9 审查和复审 4 2总体设计的图形工具 4 2 1层次图 4 2总体设计的图形工具 4 2 2HIPO图 4 2总体设计的图形工具 4 2 3结构图 4 3模块化设计 4 3 1模块化与局部化1 模块化模块是数据说明 可执行语句等程序对象的集合 模块可以单独被命名 而且可通过名字来访问 例如 过程 函数 子程序 宏等等都可作为模块 模块化就是把程序划分成若干个模块 每个模块具有一个子功能 把这些模块集成起来构成一个整体 可以完成指定的功能 进而满足问题的要求 4 3模块化设计 4 3 1模块化与局部化2 局部化局部化的概念和信息隐蔽概念密切相关 所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近 在模块中使用局部数据元素是局部化的一个例子 显然 局部化有助于实现信息隐蔽 4 3模块化设计 4 3 2模块化独立性模块的独立性可以用两个定性的标准来度量 耦合和内聚 耦合是模块之间互相连接的紧密程度的度量 内聚是一个模块内部各个元素彼此结合的紧密程度的度量 4 3模块化设计 4 3 2模块化独立性1 耦合非直接耦合数据耦合标记耦合控制耦合公共耦合内容耦合 4 3模块化设计 4 3 2模块化独立性2 内聚偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚 4 3模块化设计 4 3 2模块化独立性3 设计准则模块规模应该适中改进软件结构提高模块独立性深度 宽度 扇入和扇出都应适当模块的作用范围应该在控制范围之内降低模块接口的复杂程度设计单入口单出口的模块 避免 病态连接 模块功能应该可以预测 4 3模块化设计 4 3 3抽象与信息隐蔽1 抽象抽象是人类认识问题和解决问题的基本工具和方法 在解决复杂的具体问题时 人们往往先忽略其细节和非本质的方面 而集中注意力去分析问题的本质和主要方面 搞清所要解决的问题的本质 同时人们在总结认识和实验规律时 也往往突出各类问题的共性 找出各种客观事物 状态和过程间的联系和相似性 加以概括和提取 即抽象 4 3模块化设计 4 3 3抽象与信息隐蔽2 信息隐蔽信息隐蔽原理认为 模块所包含的信息 过程和数据 对于其他模块来说应该是隐蔽的 也就是说 模块应当被这样规定和设计 使得包含在模块中的信息 过程和数据 对于其他不需要这些信息的模块来说 是不能访问的 或者说是 不可见 的 4 4面向数据流的设计方法 4 4 1基本概念1 变换流信息沿输入通路进入系统 同时由外部形式变换成内部形式 进入系统的信息通过变换中心 经加工处理以后再沿输出通路变换成外部形式离开软件系统 当数据流图具有这些特征时 这种信息流就叫作变换流 4 4面向数据流的设计方法 4 4 1基本概念1 变换流 4 4面向数据流的设计方法 4 4 1基本概念2 事务流数据沿输入通路到达一个处理T 这个处理根据输入数据的类型在若干个工作序列中选出一个来执行 这类系统的特征是具有在多种事务中选择执行某类事务的能力 事务型结构由至少一条接受路径 一个事务中心 与若干条动作路径组成 这类数据流应该划为一类特殊的数据流 称为事务流 4 4面向数据流的设计方法 4 4 1基本概念2 事务流 4 4面向数据流的设计方法 4 4 1基本概念3 设计方法第1步复查基本系统模型 第2步复查并精化数据流图 第3步确定数据流图具有变换特性还是事务特性 第4步确定输入流和输出流的边界 从而孤立出变换中心 4 4面向数据流的设计方法 图9 6测试问题3的控制流图 4 4 1基本概念3 设计方法第5步完成 第一级分解 第6步完成 第二级分解 第7步使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化 4 4面向数据流的设计方法 4 4 3事务分析事务分析的设计步骤和变换分析的设计步骤大部分相同或类似 主要差别仅在于由数据流图到软件结构的映射方法不同 由事务流映射成的软件结构包括一个接收分支和一个发送分支 映射出接收分支结构的方法和变换分析映射出输入结构的方法很相像 即从事务中心的边界开始 把沿着接收流通路的处理映射成模块 发送分支的结构包含一个调度模块 它控制下层的所有活动模块 然后把数据流图中的每个活动流通路映射成与它的流特征相对应的结构 4 4面向数据流的设计方法 4 4 4设计优化原则在不考虑时间因素的前提下开发并精化软件结构 在详细设计阶段选出最耗费时间的那些模块 仔细地设计它们的处理过程 以求提高效率 使用高级程序设计语言编写程序 在软件中孤立出那些大量占用处理机资源的模块 必要时重新设计或用依赖于机器的语言重写上述大量占用资源的模块的代码 以求提高效率 4 5小结 总体设计阶段的任务是要确定系统的总体结构 给出系统中各个组成模块的功能和模块间的接口关系 总体设计过程通常由两个阶段组成 系统设计和结构设计 其中系统设计是从数据流图出发 确定系统的具体实现方案 结构设计则是确定软件的模块结构 层次图和结构图是描绘软件结构的常用工具 在进行软件结构设计时应该遵循一些基本原理 其中最主要的原理是模块独立原理 在软件开发过程中 我们要注意利用已有的一些设计准则 这些设计准则是人们在长期的软件开发过程中总结出来的 它们往往能对如何改进软件设计给出宝贵的提示 结构化设计方法是一种面向数据流的设计方法 它根据问题域的数据流定义一组不同的 映射 利用这些映射把数据流图变换成软件结构 根据数据流图的类型 在把数据流图映射为软件结构图的过程中 可通过变换分析或事务分析的技术来实现 4 6习题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论