总体设计PPT课件.ppt_第1页
总体设计PPT课件.ppt_第2页
总体设计PPT课件.ppt_第3页
总体设计PPT课件.ppt_第4页
总体设计PPT课件.ppt_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

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

文档简介

第8章软件总体设计 结构化设计方法 1 第8章软件总体设计 总体设计的任务软件设计的基本原理评估方法结构化的设计方法 2020 1 7 2 软件设计阶段 总体设计详细设计程序设计 软件设计的三个阶段 2020 1 7 3 程序设计 程序代码 code 2020 1 7 4 详细设计 程序流程图 2020 1 7 5 TMMIS 系统维护 POS系统 零售实时系统 商品进货管理 商品批发管理 商品库存管理 商品及商品帐管理 顾客管理 连锁店管理 财务管理 人事工资管理 计划统计管理 经理查询 大型零售商场管理信息系统功能结构图 2020 1 7 6 酒店管理系统功能结构图 2020 1 7 7 医院管理系统功能结构图 2020 1 7 8 2020 1 7 9 软件的体系结构 系统由哪些模块组成模块间相互的关系 一连 一排 二排 三排 一班 三班 四班 二班 六班 五班 七班 2020 1 7 10 描述软件结构的图形工具 层次图 H图 HIPO图 H图 IPO图结构图 H图 相互关系 2020 1 7 11 结构图 SCStructureChart 箭线表示调用方向调用过程中传递的信息 简单调用 2020 1 7 12 结构图 选择调用 A C B D A根据内部判断决定是否调用B A按另一判定结果选择调用C或D 2020 1 7 13 结构图 循环调用 A B C A循环重复调用B C模块 2020 1 7 14 典型的结构 产生最佳解 输出解 计算最佳解 得到好输入 读数据 格式转换 格式化 显示 好输入 好输入 好输入 原始输入 解 解 原始输入 解 格式化的解 格式化的解 2020 1 7 15 总体设计的任务 软件系统的体系结构组成 关系描述软件结构的图形工具层次图 H图 HIPO图 H图 IPO图结构图 H图 相互关系 调用关系 传递的信息 2020 1 7 16 第8章软件总体设计 总体设计的任务软件设计的基本原理评估方法结构化的设计方法 2020 1 7 17 软件设计的重要性 决定软件是否可靠决定软件是否可维护 软件的可靠性 能够防止因概念 设计和结构等方面不完善的原因而造成软件系统的失效 具有挽回因操作不当造成软件系统失效的能力 软件的可维护性 软件产品交付使用后 能够对它进行修改 以改正潜伏的错误 改进与完善性能 使软件产品适应环境的变化等 2020 1 7 18 软件设计的基本原理 模块化设计抽象与细化信息隐藏 2020 1 7 19 模块化 什么是模块模块是数据说明 可执行语句等程序对象的集合 特征 单独命名且唯一可以通过名字来访问完成特定的功能模块是如何工作的调用者不需考虑模块内部组织与实现细节 2020 1 7 20 模块化 什么是模块化为什么要模块化模块化可以使问题容易解决 2020 1 7 21 例 将问题P分解为P1 P2 P P1 P2 设函数C x 定义问题x的复杂程度函数E x 确定解决问题x需要的工作量对问题P1和P2 如果 C P1 C P2 显然 E P1 E P2 一般地 C P1 P2 C P1 C P2 E P1 P2 E P1 E P2 分而治之 2020 1 7 22 模块化和软件成本 成本或工作量 模块数量 软件总成本 接口成本 成本 模块 M 最小成本区域 2020 1 7 23 软件设计的基本原理 模块化设计抽象与细化信息隐藏 2020 1 7 24 抽象与细化 抽象简化问题 不考虑细节 总结规律 突出重点 细化细化的实质是分解细化的过程是逐步的 每次只增加少量的细节 逐步求精 2020 1 7 25 软件设计的基本原理 模块化设计抽象与细化信息隐藏 2020 1 7 26 信息隐藏 基本思想模块内部的数据和过程 对于那些不需要这些信息的模块是不可访问 每一个模块只完成一个相对独立的特定功能 模块之间仅仅交换那些完成系统功能必须交换的信息 2020 1 7 27 第8章结构化的软件设计 总体设计的任务软件设计的基本原理评估方法结构化的设计方法 2020 1 7 28 如何评价设计方法 Meyer定义的五条标准可分解性 如果一种设计方法提供了将问题分解成子问题的系统化机制 它就能降低整个系统的复杂性 从而实现一种有效的模块化解决方案 可组装性 如果一种设计方法使现在的 可复用的 设计构件能被组装成新系统 它就能提供一种不需要一切从头开始的模块化解决方案 2020 1 7 29 如何评价设计方法 Meyer定义的五条标准可理解性 如果一个模块可以作为一个独立的单位 不用参考其他模块 被理解 那么它就易于构造和修改 连续性 如果对系统需求的微小修改只导致对单个模块 而不是整个系统的修改 则修改引起副作用就会被最小化 保护性 如果模块内部出现异常情况 并且它的影响限制在模块内部 则错误引起的副作用就会最小 2020 1 7 30 如何评价模块 独立性 模块独立模块完成独立的功能模块间关连和依赖程度尽量小模块独立的优点容易开发容易维护度量方法耦合内聚 2020 1 7 31 耦合 模块之间的联系 度量程序之间联系的次数和强度 2020 1 7 32 无耦合 没有依赖关系 松散耦合 有少量依赖关系 紧密耦合 有很多依赖关系 2020 1 7 33 1 非直接耦合 两个模块没有直接关系 模块独立性最强 如 模块1和模块2 模块1 模块2 模块3 模块4 2020 1 7 34 2 数据耦合 模块间的通信参数都是简单的数据项 开发票 计算水费 单价 金额 数量 2020 1 7 35 3 特征耦合 标记耦合 如两个模块传递的参数是数据结构 则称这两个模块间存在特征偶合 数据结构 记录 数组 结构等复合数据 问题 计算水费 和 计算电费 本无关 由于使用了 住户情况 产生依赖关系 计算水电费 计算水费 计算电费 住户情况 水费 电费 住户情况 住户情况 门牌号 姓名 基本房租 本月用水量 本月用电量 本月用水量 本月用电量 2020 1 7 36 A B计算平均分或最高分 平均 最高 控制参数 成绩 4 控制耦合 一模块向下属模块传递的信息控制了被调用模块的内部逻辑 如 开关量 标志等信息 作为控制被调用模块决策的变量 2020 1 7 37 问题 调用模块必须知道被调模块的内部逻辑强度 中等改进方法 2020 1 7 38 5 外部耦合 一组模块均与同一外部环境关联 例如 I O模块与特定的设备 格式和通信协议相关联 它们之间便存在外部耦合 外部耦合必不可少 但这种模块数目应尽量少 2020 1 7 39 6 公共耦合 公共数据区耦合 一组模块引用同一个公用数据区 公用数据区指 全局数据结构共享通讯区内存公共覆盖区等 模块A B C间存在错综复杂的联系 2020 1 7 40 1 软件可理解性降低 2 诊断错误困难 3 软件可维护性差 4 软件可靠性差 公共数据区及全程变量无保护措施 慎用公共数据区和全程变量 公共耦合存在的问题 2020 1 7 41 7 内容耦合 一模块直接访问另一模块的内部信息 程序代码或数据 最不好的耦合形式 A B A B 模块代码重叠 Entry1 Entry1 多入口模块 2020 1 7 42 模块间耦合的类型 7个等级 非直接耦合数据耦合特征耦合控制耦合外部耦合公共耦合内容耦合 模块独立性 弱 强 中耦合 强耦合 高 低 2020 1 7 43 设计的原则和目标 耦合是影响软件复杂程度和设计质量的重要因素原则 尽量使用数据耦合 少用控制耦合 限制公共环境耦合的范围 完全不用内容耦合 目标 建立模块间耦合度尽可能松散的系统 2020 1 7 44 内聚 一个模块内部的各个组成部分间彼此结合的紧密程度 2020 1 7 45 1 偶然内聚 巧合内聚 模块内各部分间无联系模块M中的三个语句没有任何联系问题 可理解性差 可修改性差 A B C MOVEOTORREADFILEFMOVESTOT M 2020 1 7 46 2 逻辑内聚 E F G逻辑功能相似 组成新模块EFG 把逻辑上相似的功能组合在一模块内 每次调用时 由传给模块的参数确定执行哪种功能 问题 增强了耦合程度 控制耦合 不易修改 效率低 2020 1 7 47 3 时间内聚 如果一个模块所包含的任务必须在同一时间段内完成 初始化模块 2020 1 7 48 本年度结帐 产生下一年度的帐 年终结转 4 过程内聚 模块内各处理成分相关 且必须以特定次序执行 计算上年结余 2020 1 7 49 1 产生工资报表2 计算平均工资 职工工资记录 职工工资报表 平均工资 5 通信内聚 模块内各部分使用相同的输入数据 或产生相同的输出结果 2020 1 7 50 6 顺序内聚 如果一个模块内部的各个组成部分执行的几个处理动作有这样的特征 前一个处理动作所产生的输出数据是后一个处理动作的输入数据 问题 功能的完整性 2020 1 7 51 7 功能内聚 模块仅包括为完成某个功能所必须的所有成分 模块所有成分共同完成一个功能 缺一不可 优点 容易理解 设计 修改错误影响的范围小 2020 1 7 52 模块的内聚性类型 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚 高 低 模块独立性 强 功能单一 弱 功能分散 2020 1 7 54 模块内聚性的判断 该模块只能执行一个功能吗 功能内聚 模块内各组成部分的关系如何 是 否 次序重要吗 次序重要吗 逻辑相似吗 数据流 控制流 两者都不是 是 是 是 否 否 否 顺序内聚 通信内聚 过程内聚 时间内聚 逻辑内聚 偶然内聚 2020 1 7 55 内聚与耦合密切相关 同其它模块强耦合的模块意味着弱内聚 强内聚模块意味着与其它模块间松散耦合 但耦合是直接的主导因素 内聚则辅助耦合共同对模块独立性进行衡量 设计目标 力争高内聚 低耦合 2020 1 7 56 非直接耦合数据耦合特征耦合控制耦合外部耦合公共耦合内容耦合 模块独立性 弱 强 高 低 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚 模块独立性 强 弱 2020 1 7 57 第8章软件总体设计 总体设计的任务软件设计的基本原理评估方法结构化的设计方法 2020 1 7 58 总体设计的任务 软件系统的体系结构组成 关系 2020 1 7 59 软件设计的基本原理 软件设计的基本原理模块化设计抽象与细化信息隐藏隐藏内部信息功能要独立接口要简单 2020 1 7 60 评估方法 高内聚 低偶合 非直接耦合数据耦合特征耦合控制耦合外部耦合公共耦合内容耦合 模块独立性 弱 强 高 低 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚 模块独立性 强 弱 2020 1 7 61 第8章软件总体设计 总体设计的任务软件设计的基本原理评估方法结构化的设计方法 2020 1 7 62 结构化设计方法 1 设计思想 基于DFD的映射2 识别DFD的类型3 两种映射方法4 结构化设计步骤5 结构化设计的优化规则 2020 1 7 63 结构化的设计方法 1 设计思想把DFD变换成软件结构的映射方法 映射 问题结构 程序结构 2020 1 7 64 结构化的设计方法 2 数据流图的类型变换型事务型混合型 2020 1 7 65 正确信息 结果 输入信息 格式检查 处理 显示 数据 特点 具有明确的传入 变换和传出界限的DFD 2020 1 7 66 变换流示意图 信息 时间 信息流 输入 输出 变换 2020 1 7 67 变换型数据流图 三个组成部分逻辑输入逻辑输出变换中心 输入 输出 变换中心 2020 1 7 68 事务型数据流图 二个组成部分事务中心动作动路径 事务中心 动 作 径 路 1 接收事务2 分析每个事务3 选择一个动作 接收 2020 1 7 69 变换中心 输入 输出 变换型结构 事务中心 接收路径 动作路径 基本模型特征 事务型结构 由输入 变换中心和输出三部分组成 具有在多种事务中选择执行某类事物的能力 2020 1 7 70 大型系统DFD中 变换型和事务型结构往往共存 T 事务中心 传入 变换 传出 2020 1 7 71 结构化设计方法 1 设计思想 基于DFD的映射2 识别DFD的类型3 两种映射方法4 结构化设计步骤5 结构化设计的优化规则 2020 1 7 72 3 两种映射方法 变换映射 事务映射 2020 1 7 73 变换映射的初始SC模型 2020 1 7 74 事务映射的初始SC模型 2020 1 7 75 变换映射方法 确定变换中心 一级分解 二级分解 确定输入 输出的边界 顶层和第二层的四个模块 DFD中的每个处理对应一个适当的模块 2020 1 7 76 a b c e d r p u w v 变换映射例 第一步 确定输入流和输出流的边界 就可以找出变换中心 2020 1 7 77 第二步 按一级分解的要求 确定四个模块 主控模块 C 协调控制所有模块输入模块 A 协调接收所有数据变换控制模块 T 管理数据的处理输出模块 E 协调输出信息的产生 2020 1 7 78 A T E 一级分解 C 第二步 2020 1 7 79 一级分解后的SC MC MT MA ME 第一层 顶层 c e c e u w u w 传入模块 传出模块 中心变换模块 2020 1 7 80 第三步 二级分解自顶向下分解 设计出每个分支的中 下层模块 2020 1 7 81 第三步 二级分解自顶向下分解 设计出每个分支的中 下层模块 2020 1 7 82 第三步 二级分解自顶向下分解 设计出每个分支的中 下层模块 e 2020 1 7 83 C c e w u c e w u 2020 1 7 84 事务映射方法 确定事务中心 一级分解 二级分解 2020 1 7 85 B路径 C路径 事务映射例 第一步 确定 事务中心 接收路径 动作路径 接收路径 事务中心 A路径 2020 1 7 86 第二步 按一级分解的要求 确定接收和发送的模块 总控 动作调度 变换或又一个事务 2020 1 7 87 调度 a b d p q r s B路径 C路径 接收路径 事务中心 A路径 2020 1 7 88 结构化设计方法 1 设计思想 基于DFD的映射2 识别DFD的类型3 两种映射方法4 结构化设计步骤5 结构化设计的优化规则 2020 1 7 89 1 精化DFD 2 确定DFD类型 3 把DFD映射成初始SC图 4 根据模块独立性原理 优化模块结构 5 模块接口描述 4 结构化设计步骤 2020 1 7 90 面向数据流方法的设计过程 功能说明 接口说明数据结构 设计限制和约束 2020 1 7 91 结构化设计方法 1 设计思想 基于DFD的映射2 识别DFD的类型3 两种映射方法4 结构化设计步骤5 结构化设计的优化规则 2020 1 7 92 1 尽量提高模块独立性通过分解或合并 提高内聚 降低耦合 5 结构设计的优化规则 2020 1 7 93 2 模块功能的完善 一个完整的功能模块通常有三个部分 逻辑处理部分 信息反馈部分 错误处理部分 2020 1 7 94 3 减少高扇出争取高扇入 扇入 高扇入 增加模块的利用率低扇出 减少模块调用和控制的复杂度 3 4个 2020 1 7 95 例 扇出 扇入 高扇出的模块结构举例 编外人员工资 取得工资数据 计时制工资额 薪金制工资额 编外人员税款 编外人员扣款 常规扣款 税收扣款 计算实发工资 应避免的结构 2020 1 7 96 增加中间层降低扇出 编外人员工资 取得工资数据 计时制工资额 薪金制工资额 编外人员税款 编外人员扣款 常

温馨提示

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

评论

0/150

提交评论