第五章 软件概要设计.ppt_第1页
第五章 软件概要设计.ppt_第2页
第五章 软件概要设计.ppt_第3页
第五章 软件概要设计.ppt_第4页
第五章 软件概要设计.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

软件工程案例开发与实践 第5章软件概要设计 5 1概要设计综述5 1 1概要设计的任务在需求分析阶段 系统要解决的问题是 系统 做什么 在概要设计阶段 系统要解决的问题是 系统 怎么做 即将软件 做什么 的逻辑模型变换为 怎么做 的物理模型 其任务是根据需求分析阶段得到的逻辑模型来设计系统的物理模型 2 概要设计过程中需完成的任务如下 1 设计软件系统结构 2 提出候选的最佳推荐方案 用系统流程图 组成系统物理元素清单 成本效益分析 系统的进度计划 3 编写概要设计文档 4 专家评审 结构化概要设计的过程 1 确定体系结构 2 软件的总体结构设计 进行模块划分 3 确定系统接口 外部接口和内部接口 4 分析数据流图 5 对初识结构图进行改进完善 6 确定系统包含哪些应用服务系统 客户端 数据库管理系统 7 确定主要的算法 8 异常处理设计 9 制定设计规范 10 编写系统概要设计说明书 1 模块化 2 自顶向下逐步求精 3 模块的独立性 4 信息隐蔽 5 1 3概要设计原则 1 模块化设计把大型软件按照规定的原则划分为一个个较小的 相对独立但又相关的模块的设计方法 叫做模块化设计 modulardesign 模块 module 是数据说明和可执行语句等程序对象的集合 每个模块单独命名并且可以通过名字对模块进行访问 模块一般有一下三个属性 1 功能 2 逻辑 3 状态 2 自顶向下逐步求精设 分解 和 抽象 是结构化方法解决复杂问题的两种基本手段 分解是把大问题分解成若干个小问题 然后 分而治之 抽象是抽出事物本质的公共的特性而暂不考虑它的细节 软件工程过程中的每一步都可以看做是对软件解决方法的抽象层次的一次细化 抓住主要问题忽略次要问题 集中精力先解决主要问题 这就是 抽象 3 模块独立性模块独立性 moduleindependence 概括了把软件划分为模块时要遵守的准则 也是判断模块构造是否合理的标准 一般地 坚持模块的独立性是获得良好设计的关键 模块的独立性可以由两个定性标准度量 这两个标准分别称为内聚和耦合 耦合用于衡量不同模块彼此间互相依赖 连接 的紧密程度 内聚用于衡量一个模块内部各个元素间彼此结合的紧密程度 1 耦合耦合是对一个软件结构内不同模块之间互联程度的度量 耦合强弱取决于模块间接口的复杂程度 进入或访问一个模块的点以及通过接口的数据 在软件设计中应该追求模块间尽可能松散耦合的系统 在这样的系统中可以研究 测试或维护任何一个模块 而不需要对系统中的其他模块有很多的了解 此外 由于模块间联系简单 发生在一处的错误传播到整个系统的可能性就很小 耦合的七种类型应该采取下述设计原则 尽量使用数据耦合 少用控制耦合 限制公共环境耦合的范围 完全不用内容耦合 2 内聚内聚标志着一个模块内部各个元素间彼此结合的紧密程度 简单地说 理想内聚的模块只做一件事情 设计时应该力求做到高内聚 通常中等程度的内聚也是可以采用的 而且效果和高内聚相差不多 但是 坚决不要使用低内聚 内聚和耦合是密切相关的 模块内的高内聚往往意味着模块间的低耦合 内聚和耦合都是进行模块化设计的有力工具 实践表明 内聚更重要 应该把更多注意力集中到提高模块的内聚程度上 内聚的七种类型设计时应力争做到高内聚 并且能够辨认出低内聚的模块 并采取措施进行修改 以提高模块的内聚程度 降低模块间的耦合程度 从而获得较高的模块独立性 4 信息隐藏模块内部的数据与过程 应该对不需要了解这些数据与过程的模块隐藏起来 只有那些为了完成软件的总体功能而必需在模块间交换的信息 才允许在模块间进行传递 隐蔽 意味着有效的模块化可以通过定义一组独立的模块而实现 这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息 这一指导思想的目的是为了提高模块的独立性 即当修改或维护模块时减少把一个模块的错误扩散到其他模块中去的机会 5 2 1IPO图IPO是输入 处理 输出图的简称 5 2结构化设计工具 一个IPO图仅能够描述单个处理功能的输入数据 数据处理和输出数据之间的关系 对于整个软件系统的总体结构不能进行清晰的描述 因此在软件设计中 我们通常将HIPO图和IPO图相结合 利用这两个工具共同来表达系统的总体结构和模块的处理功能 HIPO图称为层次结构图 即分层的IPO图 是系统设计的描述工具 是IBM公司于70年代中期在层次结构图的基础上推出的一种描述系统结构和模块内部处理功能的工具 HIPO图由以下两部分组成 1 层次结构图 描述整个系统的设计结以及各类模块之间的关系 2 IPO图 描述某个特定模块内部的处理过程和输入 输出关系 图5 6IPO图 5 2 2模块结构图 模块结构图也称控制结构图 它表示一个软件系统的层次分解关系 模块调用关系 模块之间数据流和控制信息流的传递关系 是描述软件系统物理模型 进行概要设计的主要工具 也是软件文档的一部分 模块结构图可以反映系统整体结构 又能反映系统的细节 且能准确反映个模块及他们之间的联系 通过系统任务分解为若干个模块 可以有不同设计人员分别承担不同模块的设计和实施任务 便于管理和控制 5 2 2模块结构图 1 模块结构图的基本符号 模块结构图的三种基本结构 模块之间的调用关系主要有三种 直接调用 选择调用和循环调用 4 4 1结构图 SCStructureChart SD方法在概要设计中的主要表达工具约定 编辑学生记录 读学生记录 学生数据 无此学生 学号 不加区分的数据 数据信息 控制信息 SC中的选择调用 A C B D A根据内部判断决定是否调用B A按另一判定结果选择调用C或D SC中的循环调用 A B C A根据内在的循环重复调用B C等模块 模块结构图中的模块类型 1 传入模块传入模块从下属模块取得数据 经过某些处理 再将其传送给上级模块 见图6 14 a 变换型数据流程图的输入模块以及事务型数据流图中的接受事务模块均属于此类模块 2 传出模块传出模块从上级模块中获取数据 进行某些处理 再将其传送给下属模块 见图6 14 b 如变换型数据流图及事务型数据流图中的输出模块均属于此类模块 3 变换模块也叫加工模块 它从上级模块取得数据 进行特定的处理 转换成其他形式 再传送回上级模块 见图6 14 c 如事务型数据流图中的调度模块就属于此类模块 4 协调模块对所有的下属模块进行协调和管理的模块 在一个较好的模块结构图中 该模块应在较高层出现 见图6 14 d 如变换型数据流图的总控模块以及事务型数据流图中的事务中心块均属于此类模块 模块结构图中的模块结构类型 传入模块 a b A A 传出模块 B B 变换模块 c C D 协调模块 E d E F F 模块间调用的规则 1 每个模块有自身的任务 只有接收到上级模块的调用命令时才能执行 2 模块之间的通信只限于其直接上 下级模块 任何模块不能直接与其他上下级模块或同级模块发生通信联系 3 若有某模块要与非直接上 下级的其他模块发生通信联系 必须通过其上下级模块进行传递 4 模块调用顺序为自上而下 模块结构图的示例 模块结构图的改进 1 完善模块的功能 2 提高模块独立性 3 合理确定模块结构的规模 尽可能减少高扇出的结构 随深度增加而增大扇入 模块的规模包括两个方面 模块结构的深度和模块结构的宽度 深度表示模块结构中的层数 它往往能粗略地标志一个系统的大小和复杂程度 模块结构图一般不要超过7层 宽度是模块结构图内同一个层次上的模块总数的最大值 一般来说 宽度越大系统越复杂 一个模块的扇入指直接调用该模块的上级模块的数目 扇入越大则共享该模块的上级模块数目越多 如果一个模块的扇入数过大 例如超过8 而这个模块又不是公用模块 说明该模块包含多个功能 这时应对它进行功能分解 4 模块的作用范围应该在控制范围之内 5 模块大小应该适中 6 设计单入口单出口的模块单入口单出口的模块可以降低模块接口的复杂程度 设计的软件也是易理解 易维护的 因此不要使模块间出现内容藕合 7 模块功能应该能够预测 同时要防止模块功能过于受局限 5 3结构化设计方法 5 3 1事务设计1 事务流2 将具有事物流的数据流程图转换成模块结构的步骤 1 在数据流程图中识别事务源 判断数据流程图是否具有事务型特征 2 对每一事务建立一个事务处理模块 得出程序结构图 3 对每一种类型的事务 分别建立专门的事务模块 对它进行独立的处理 确定出每一种事务以及它所需要的处理动作 4 合并具有相同处理功能的模块 5 必要时对动作模块进一步分解 例如 图5 12 a 为某账务处理系统的一级数据流程图 可以看出账务处理包含3类事务 即凭证管理 账务管理和报表管理 我们按事务设计的方法可将其转换为如图5 12 b 所示的模块结构图 5 3 2变换设计 1 变换流2 将具有变换流的数据流程图转换成模块结构的步骤 1 仔细分析数据流程图 识别出系统的输入数据 变换中心和输出数据 2 设计模块结构图的顶层和第一层 3 设计中 下层模块 例 图5 15 a 为某账务处理系统中的二级细化的数据流程图 是系统中 凭证管理模块 的细化 由图可见 凭证管理模块 有4个基本处理

温馨提示

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

评论

0/150

提交评论