




已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
14 04 2020 1 第五章总体设计 软件工程 SoftwareEngineering 14 04 2020 2 总体设计 需求分析解决 系统做什么 总体设计解决 系统怎样做 14 04 2020 3 总体设计 总体设计 SummaryDesign 又称为概要设计或初步设计 通过这个阶段的工作将划分出组成系统的物理元素 程序 Program 文件 File 数据库 Dadabase 人工过程和文档 Document 等等 但是每个物理元素仍然处于黑盒子 BlackBox 级 这些黑盒子里的具体内容将在以后仔细设计 总体设计阶段的另一项重要任务是 设计软件的结构 确定系统中每个程序是由哪些模块组成 确定模块相互间的关系 前一页 14 04 2020 4 设计过程设计原理启发式规则描述软件结构的图形工具面向数据流的设计方法 本章主要内容 前一页 14 04 2020 5 总体的设计过程 总体设计过程分为两个阶段系统设计阶段 确定系统的实现方案结构设计阶段 确定软件结构 14 04 2020 6 前一页 总体的设计过程 设想供选择的方案选取合理的方案推荐最佳方案功能分解设计软件结构数据库设计制定测试计划书写文档审核和复审 14 04 2020 7 前一页 总体的设计过程 设想供选择的方案 分析员考虑各种可能的实现方案 Project 并且力求从中选出最佳方案 在总体设计阶段开始时只有系统的逻辑模型 分析员有充分的自由分析比较不同的物理实现方案 可以从需求分析得到的数据流图入手 常用的方法是 设想在数据流图中处理分组的各种可能的方法 抛弃在技术上行不通的方法 余下的方法作为可能实现的策略 并且可以启发供选择的物理系统 14 04 2020 8 前一页 总体的设计过程 选取合理方案 从上一步提供的方案中选取 至少选取低成本 中等成本和高成本的三种方案 对每个合理的方案分析员都应该准备下列四份资料 1 系统流程图 2 组成系统的物理元素的清单 3 成本 效益分析 4 实现这个系统的进度计划 14 04 2020 9 前一页 总体的设计过程 推荐最佳方案 分析员应该综合分析对比各种合理的方案 推荐一个最佳的方案 并且为推荐的方案制定详细的实现计划 用户和有关的技术专家审查推荐的最佳系统 如果确定该系统符合用户的需要 并且是在现有条件下完全能够实现的 则请使用部门负责人进一步审批 在接受分析员所推荐的方案之后 系统设计完成 进入总体设计过程的下一个重要阶段 结构设计 14 04 2020 10 前一页 总体的设计过程 功能分解 为了最终实现目标系统 必须设计出组成这个系统的所有程序和文件 或数据库 对程序 特别是复杂的大型程序 的设计 通常分为两个阶段完成 结构设计 StructureDesign 是总体设计阶段的任务 确定程序由那些模块组成 以及这些模块之间的关系 过程设计 ProcessDesign 是详细设计阶段的任务 确定每个模块的处理过程 14 04 2020 11 功能分解 为确定软件结构 首先需要从实现角度把复杂的功能进一步分解 功能分解导致数据流图进一步细化 同时使用图形工具描述算法 14 04 2020 12 前一页 总体的设计过程 设计软件结构 即结构设计 包括确定系统各模块间的关系 通常程序中的一个模块完成一个适当的子功能 而一个程序包含若干个模块 因此考虑把模块组织成良好的层次系统 顶层模块调用它下层模块以实现程序的完整功能 每个下层模块再调用更下层的模块 从而完成程序的一个子功能 最下层的模块完成最具体的功能 14 04 2020 13 设计软件结构 顶层模块调用它下层模块以实现程序的完整功能 每个下层模块再调用更下层的模块 从而完成程序的一个子功能 最下层的模块完成最具体的功能 软件结构可以用层次图或结构图表示 有些软件的结构可以通过细化的数据流图映射得到 14 04 2020 14 前一页 总体的设计过程 数据库设计 对于需要使用数据库的系统 工程师需要对数据库进行设计 14 04 2020 15 前一页 总体的设计过程 制定测试计划 在软件开发的早期阶段考虑测试 Testing 问题 能促使软件设计人员在设计时注意提高软件的可测试性 14 04 2020 16 前一页 总体的设计过程 书写文档 1 系统说明2 用户手册3 测试计划4 详细的实现计划5 数据库设计结果 14 04 2020 17 前一页 总体的设计过程 审核和复审 最后应该对总体设计的结果进行严格的技术审查 通过之后再由使用部门从管理和应用的角度进行复审 14 04 2020 18 软件设计的概念和原理 模块化抽象逐步求精信息隐蔽和局部化模块独立 前一页 主要内容 14 04 2020 19 前一页 软件设计的概念和原理 模块化 模块 Modular 是数据说明 可执行语句等程序对象的集合 它是单独命名的而且可通过名字来访问 模块化就是把程序划分成若干个模块 每个模块完成一个子功能 把这些模块集总起来组成一个整体 可以完成指定的功能满足问题的要求 14 04 2020 20 前一页 软件设计的概念和原理 模块化 设函数C x 定义问题x的复杂程度 函数E x 确定解决问题x需要的工作量 时间 对于两个问题p1和p2 IfC p1 C p2 ThenE p1 E p2 C p1 p2 C P1 C p2 E p1 p2 E p1 E p2 14 04 2020 21 前一页 模块化与软件成本 14 04 2020 22 前一页 软件设计的概念和原理 抽象 人类在认识复杂现象的过程中使用的最强有力的思维工具抽象 Abstract 人们在实践中认识到 在现实世界中一定事物 状态或过程之间总存在着某些相似的方面 共性 把这些相似的方面集中和概括起来 暂时忽略它们之间的差异 这就是抽象 14 04 2020 23 抽象 处理复杂系统的唯一有效的方法是用层次的方式构造和分析它 14 04 2020 24 逐步求精 逐步求精和模块化的概念 与抽象是密切相关的 如软件工程的每一步都是对软件解法的抽象层次的一次精化 可行性分析阶段 软件作为完整的部件 需求阶段 软件解法使用熟悉的问题描述 从总体设计到详细设计 抽象程度降低 逐步精化 抽象与求精互补 14 04 2020 25 逐步求精 定义 为了能集中精力解决主要问题而尽量推迟对问题细节的考虑 原因 人类认知过程的局限 Miller法则一个人在任何时候都只能把注意力集中在 7 2 个知识块上 逐步求精的效果 把注意力集中在与当前开发最相关的问题上 忽略暂时不需要考虑的细节 14 04 2020 26 前一页 软件设计的概念和原理 信息的隐蔽和局部化 信息隐藏 使得一个模块内包括的信息 过程和数据 对于不需要这些信息的模块来说 是不能访问的 局部化 把一些关系密切的软件元素物理地放得彼此靠近 隐蔽 Hiding 意味着有效的模块化可以通过定义一组独立的模块而实现 这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息 14 04 2020 27 前一页 模块独立 模块独立 Independence 的概念是模块化 抽象 信息隐蔽和局部化概念的直接结果 开发具有独立功能而且和其他模块之间没有过多的相互作用的模块 就可以做到模块独立 模块独立性的优点 第一 有效的模块化 即具有独立的模块 的软件比较容易开发出来 第二 独立的模块比较容易测试和维护 14 04 2020 28 模块独立 模块的独立程度可以由两个定性标准度量 这两个标准分别称为内聚和耦合 内聚衡量一个模块内部各个元素彼此结合的紧密程度 耦合衡量不同模块彼此间互相依赖 连接 的紧密程度 14 04 2020 29 前一页 软件设计的概念和原理 模块独立 耦合 耦合 Coupling 耦合是对一个软件结构内不同模块之间互联程度的度量 在软件设计时应该追求松散耦合的系统 如果两个模块中的每一个都能独立地工作而不需要另一个模块地存在 那么它们彼此完全独立 这意味着模块间无任何连接 耦合程度最低 14 04 2020 30 前一页 几种类型的耦合 模块独立 耦合 数据耦合 DataCoupling 如果两个模块彼此间通过参数交换信息 而且交换的信息仅仅是数据 那么这种耦合称为数据耦合 控制耦合 ControlCoupling 如果传递的信息中有控制信息 则这种耦合称为控制耦合 数据耦合是低耦合 系统必须存在这种耦合 因为只有当某些模块的输出数据作为另一些模块的输入数据时 系统才能完成有价值的功能 14 04 2020 31 前一页 模块独立 耦合 公共环境耦合 CommonCoupling 当两个或多个模块通过一个公共数据环境相互作用时 它们之间的耦合称为公共环境耦合 内容耦合 ContainCoupling 最高程度的耦合是内容耦合 原则 尽量使用数据耦合 少用控制耦合 限制公共环境耦合的范围 完全不用内容耦合 几种类型的耦合 14 04 2020 32 前一页 软件设计的概念和原理 模块独立 内聚 内聚 Cohesion 内聚是一个模块内各个元素彼此结合的紧密程度 设计时应该力求做到高内聚 通常中等程度的内聚也是可以采用的 内聚和耦合密切相关 模块内的高内聚意味着模块间的松耦合 按程度分类 低内聚中内聚高内聚 14 04 2020 33 前一页 模块独立 内聚 低内聚有如下几类 偶然内聚 逻辑内聚 时间内聚 偶然内聚 CoincidentalCohesion 模块中 元素之间没有实质的联系 在不同的场合需要做不同的修改 导致出错概率高 逻辑内聚 LogicalCohesion 模块中 不同功能混在一起 合用部分程序代码 局部修改会影响全局 导致修改困难 时间内聚 TemporalCohesion 模块中 各处理单元必须在一个有限的时间间隔内执行完成 几种类型的内聚 14 04 2020 34 前一页 模块独立 内聚 中内聚主要有两类 过程内聚 ProceduralCohesion 需要按特定顺序执行模块内的处理元素的称为过程内聚 通信内聚 CommunicationCohesion 模块中所有元素都使用同一个输入数据或输出同一个数据 称为通信内聚 几种类型的内聚 14 04 2020 35 前一页 模块独立 内聚 高内聚也有两类 顺序内聚功能内聚 顺序内聚 SequentialCohesion 模块中一个处理单元的输出是另一个处理单元的输入 功能内聚 FunctionalCohesion 模块中所有处理单元共同完成同一功能 功能内聚是最高程度的内聚 几种类型的内聚 14 04 2020 36 前一页 软件设计的概念和原理 模块独立 内聚 高内聚也有两类 顺序内聚 功能内聚 对内聚的参考评价 功能内聚10分时间内聚3分顺序内聚9分逻辑内聚1分通信内聚7分偶然内聚0分过程内聚5分 14 04 2020 37 启发式规则 改进软件结构提高模块独立性模块规模应该适中深度 宽度 扇出和扇入应适当模块的作用域应在控制域之内尽量降低模块接口的复杂程度设计单入口出口的模块模块功能应该可以预测 前一页 主要内容 14 04 2020 38 图形工具 层次图和HIPO图结构图 前一页 主要内容 14 04 2020 39 前一页 图形工具 层次图 层次图用来描绘软件的层次结构 层次图适合于在自顶向下设计软件的过程中使用 14 04 2020 40 层次图 层次图和层次方框图的区别层次图中一个矩形表示一个模块 矩形框之间的连线表示调用关系层次方框图一个矩形表示一个数据集合 矩形框之间的连线表示数据的层次 14 04 2020 41 前一页 正文加工系统的层次图 14 04 2020 42 HIPO图 HIPO图是美国IBM公司发明的层次图加 输入 处理 输出图 的英文缩写为了能使HIPO图具有可追踪性 在H图 层次图 里除了最顶层的方框之外 每个方框都加了编号 和H图中每个方框对应 有一张IPO图描绘该模块的处理过程 14 04 2020 43 前一页 带编号的层次图 H图 14 04 2020 44 前一页 结构图 Yourdon提出的进行软件结构设计的有力工具 图中方框代表模块 方框之间的箭头 连线表示模块的调用关系 用带注释的箭头表示模块调用过程中传递的信息 并可以用箭头尾部的形状来区分传递信息的种类 尾部是空心圆表示传递的是数据 实心圆表示传递的是控制信息 14 04 2020 45 前一页 产生最佳解的结构图 14 04 2020 46 前一页 判定为真时调用A为假时调用B M循环调用A B C 14 04 2020 47 层次图和结构图 层次图和结构图并没有表示出模块的调用次序 同时两种图也没有指明什么时候调用下层模块 14 04 2020 48 面向数据流的设计方法 前一页 面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径 在软件工程的需求分析阶段 信息流是一个关键 通常用数据流图描绘信息在系统中加工和流动的情况 面向数据流的设计方法即把数据流图变换成软件结构 通常所说的结构化设计方法 简称SD方法 也就是基于数据流的设计方法 14 04 2020 49 面向数据流的设计方法 概念变换分析事务分析设计优化 前一页 主要内容 14 04 2020 50 前一页 面向数据流的设计方法 概念 变换流 根据基本系统模型 信息通常以 外部世界 的形式进入软件系统 经过处理以后再以 外部世界 的形式离开系统 14 04 2020 51 前一页 变换流图 14 04 2020 52 概念 变换流 信息沿输入通路进入系统 同时由外部形式变换成内部形式 进入系统的信息通过变换中心 经加工处理以后再沿输出通路变换成外部形式离开软件系统 当数据流图具有这些特征时 这种信息流就叫作变换流 14 04 2020 53 前一页 概念 事务流 数据沿输入通路到达一个处理T 这个处理根据输入数据的类型再若干个动作序列中选出一个来执行 这类数据流应该划为一类特殊的数据流 称为事务流 1 接收输入数据 输入数据又称为事务 2 分析每个事物以确定它的类型 3 根据事物类型选取一条活动通道 处理T称为事务中心 完成的任务 14 04 2020 54 前一页 事务流 14 04 2020 55 前一页 概念设计过程 14 04 2020 56 前一页 面向数据流的设计方法 变换分析设计 把具有变换流特点的数据流图按预先确定的模式映射成软件结构 14 04 2020 57 前一页 面向数据流的设计方法 变换流分析设计 设计一个安装在汽车上的数字仪表板 功能如下 1 通过模 数转换实现传感器和微处理机接口 2 在发光二极管面板上显示数据 3 指示每小时英里数 mph 行驶的英里数 mpg 总里程等等 4 指示加速或减速 5 超速报警 14 04 2020 58 前一页 面向数据流的设计方法 变换流分析设计 第1步复查基本系统模型 第2步复查并精化数据流图 14 04 2020 59 前一页 数字仪表板数据流图 14 04 2020 60 变换流分析设计 第3步确定数据流图具有变换特性还是事务特性 上图中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化遗产数字化保护与利用的数字文化遗产保护技术政策创新实施效果分析
- 宁夏党建面试题库及答案
- 2025年教师招聘之《幼儿教师招聘》测试卷附有答案详解附参考答案详解【研优卷】
- 教师招聘之《小学教师招聘》综合检测题型汇编(巩固)附答案详解
- 2025年教师招聘之《小学教师招聘》通关提分题库含答案详解(预热题)
- 教师招聘之《幼儿教师招聘》能力检测试卷附参考答案详解【培优b卷】
- 教师招聘之《小学教师招聘》考前冲刺分析含答案详解(黄金题型)
- 教师招聘之《小学教师招聘》能力提升B卷题库含答案详解【基础题】
- 子宫肌瘤术后体位真题试题(含答案)
- 道路运输执法规范流程
- 学校食堂员工培训方案
- 教学查房流程
- 《建筑材料与构造》课件-3.建筑材料的基本要求与选用
- 《员工行为准则培训》课件
- 仓管员晋升组长述职报告
- 《慢性乙型肝炎防治指南(2022年版)-》解读
- 《厨房安全操作培训》课件
- 第七讲推动构建新时代的大国关系格局-2024年形势与政策(课件)
- 机场安检突发事件应急预案
- IATF-16949质量管理体系标准培训课件
- 2024-2025学年小学科学二年级上册(2024)教科版(2024)教学设计合集
评论
0/150
提交评论