概要设计ppt课件.ppt_第1页
概要设计ppt课件.ppt_第2页
概要设计ppt课件.ppt_第3页
概要设计ppt课件.ppt_第4页
概要设计ppt课件.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

软件工程 1 第三章概要设计 软件设计的任务软件设计是一个把软件需求转换成软件表示的过程 软件设计的影响最终影响软件实现的成功与否影响软件维护的难易程度影响软件的质量 9 05 软件工程 2 包含的三个内容数据设计 把分析阶段的信息域模型变换为数据结构体系结构设计 程序结构构件之间的相互关系过程设计 变换结构构件为软件的过程描述与需求分析阶段相对独立在软件需求提供的信息 功能和行为模型上 设计阶段可以使用任何一种设计方法 第三章概要设计 软件工程 3 第三章概要设计 软件设计分两步 概要设计和详细设计两个阶段 概要设计 把需求转换为数据结构和软件体系结构设计和接口设计详细设计 又称过程设计 主要集中在体系结构表达式的细化 产生详细的数据结构和软件算法表达式 软件工程 4 3 1 1概要设计的任务 概要设计是将软件需求转换成软件结构和数据结构的阶段 概要设计的基本目的是概要地说明系统应该怎样实现 又称为初步设计或总体设计 其具体任务是 1 确定系统具体的实施方案2 设计软件结构和数据结构3 编写概要设计说明书 软件工程 5 3 1 2概要设计的过程 1 提供选择的方案2 选取一组合理的方案3 推荐最佳实施方案4 功能分解5 软件结构设计6 数据库设计 1 模式设计 2 子模式设计 3 完整性和安全性设计 4 优化 7 制定测试计划8 编写概要设计文档9 审查与复审概要设计文档 软件工程 6 3 2软件设计的概念与原则 模块化抽象与逐步求精信息隐蔽和局部化模块独立性耦合 表示软件结构内模块之间相互连接的紧密程度内聚 标志一个模块内各个元素彼此结合的紧密程度 软件工程 7 耦合 1 2 3 1 非直接耦合 两个模块没有直接的联系 它们中任何一个都能不依赖于对方而独立地工作 2 数据耦合 两个模块借助于参数表传递简单数据两模块只通过参数交换信息 且此信息仅为数据被调用模块的输入输出都是简单数据 3 标记耦合 一个数据结构的一部分 如记录的一部分 借助于模块接口被传递 软件工程 8 耦合 4 控制耦合 两个模块间传递的信息中包含用于控制模块内部逻辑的控制信息 A的逻辑判断是执行C还是D 取决于B传来的信息标志status 软件工程 9 耦合 5 外部耦合 一组模块都访问全局简单变量而不是同一全局数据结构 而且不是通过参数表传递该全局变量的信息 例如 在C语言程序中各个模块都访问被说明为external类型的外部变量 外部耦合不存在依赖于一个数据结构内部各项的物理安排 软件工程 10 耦合 6 公共耦合 多个模块都访问同一个公共的数据环境 公共数据环境可以是全局数据结构 共享的通信区 内存的公共覆盖区等 复杂程度随耦合模块个数增加而显著增加 B A C 全程数据区 D E 软件工程 11 耦合 7 内容耦合一个模块访问另一个模块的内部数据 一个模块不通过正常入口转到另一模块的内部 两个模块有一部分程序代码重叠 一个模块有多个入口 软件工程 12 耦合性与模块独立性的关系图 软件工程 13 内聚 内聚是标志一个模块内各个元素彼此结合的紧密程度它是信息隐蔽和局部化概念的自然扩展 软件工程 14 1 巧合内聚 偶然内聚 模块完成的一组任务关系松散 软件工程 15 2 逻辑内聚 该模块完成的任务在逻辑上属于相同或相似 软件工程 16 3 时间内聚 经典内聚 大多为多功能模块 但要求模块的各个功能必须在同一时间段内执行 软件工程 17 4 过程内聚 使用流程图作为工具设计程序的时候 常常通过流程图来确定模块划分 把流程图中的某一部分划分出来组成模块 就得到过程内聚模块 这类模块的内聚程度比时间内聚模块的内聚程度更强一些 软件工程 18 5 通信内聚该模块内各功能都使用了相同的输入数据 或产生了相同的输出数据 则称之为通信内聚模块 软件工程 19 6信息内聚 顺序内聚 这种模块完成多个功能 各个功能都在同一数据结构上操作 每项功能有唯一的入口点 软件工程 20 7 功能内聚 一个模块中各个部分都是为完成一项具体功能而协同工作 紧密联系 不可分割的 则该模块为功能内聚模块 功能内聚模块是内聚性最强的模块 软件工程 21 内聚性与模块独立性的关系图 软件工程 22 设计准则 目标产生一个模块化的程序结构 并明确模块间的控制关系 定义用户界面 说明程序所用的数据结构 1 改进软件结构 提高模块独立性2 模块规模应适中3 适当选择深度 宽度 扇出和扇入4 模块的作用域应该在控制域之内5 降低模块接口的复杂度6 设计单入口单出口的模块7 模块功能应该可以预测 软件工程 23 3 3面向数据流的设计方法 目标 提供软件结构设计的一个系统化的途径 面向数据流的设计方法定义了一些不同的 映射 利用这些映射可以把数据流图变换成软件结构 任何软件系统都可以用数据流图表示 我们通常所说的结构化设计方法 简称SD方法 也就是基于数据流的设计方法 软件工程 24 基本概念 数据流 变换流 事务流1 变换流特性数据沿输入通路进入系统 由外部形式变换成内部形式 然后通过变换中心 经过加工处理以后再沿输出通路变换成外部形式离开软件系统变换型数据流图一般可分为输入 加工 输出三部分 软件工程 25 变换流图转换成软件结构的映射方法 1 将数据流图的输入 加工和输出部分别转换为输入 加工和输出模块 2 增加总控模块 用于调度输入 加工和输出模块 协调完成任务 软件工程 26 2 事务流 把以 事务为中心 的数据流作为一类特殊的数据流 称为 事务流 事务型流图有一个明显的事务中心 它接受一项事务 根据该事务的特点和性质 选择分配一个适当的处理单元 然后输出结果 软件工程 27 事务中心的工作过程 1调用接受事务模块 接受一项事务 2调用调度模块选择分配处理单元 获取处理结果 3最后 调用输出模块输出结果 软件工程 28 3 设计过程 对变换型设计过程 区分输入 加工和输出的部分 映射成变换型软件结构 优化软件结构 事务型设计过程 区分事物中心 接受事务通路和各处理单元 映射成事务型软件结构 优化软件结构 最后 无论是变换型还是事务型均要导出各模块的接口描述和全局数据结构 软件工程 29 3 3 2系统结构图 在系统结构图 SC StructureChart 中 不能再分解的模块称为原子模块 1 传入模块 从下属模块取得数据 经过某些处理 再将其传送给上级模块 2 传出模块从上级模块中获取数据 进行某些处理 再将其传送给下属模块 3 变换模块从上级模块取得数据 进行特定的处理 转换成其他形式 再传送回上级模块 4 协调模块对所有的下属模块进行协调和管理的模块 在一个较好的系统结构图中 该模块应在较高层出现 软件工程 30 3 3 3变换分析 变换分析是一系统步骤的总称 经过这些步骤把变换型数据流图映射成软件结构 例3 1 某学校欲设计 成绩录入 程序 由录入员输入成绩信息 学号 课程代码 成绩 1 查询学生信息 确定是否有该学生 2 查询该学生的班级信息 3 查询课程信息 4 查询成绩是否重复录入 5 在核对了学生信息 班级信息 课程信息后 在成绩没有重复录入的情况下保存该成绩 软件工程 31 1 重画数据流图后进行复审精化 软件工程 32 2区分系统的输入 输出和加工部分 软件工程 33 3 一级分解 设计上层模块 软件工程 34 4进行二级分解 设计输入 加工 输出部分的中 下层模块 软件工程 35 3 3 4事务分析 在很多应用中 存在某种作业数据流 它可以引发一个或多个处理 这些处理能够完成该作业要求的功能 这种数据流就叫做事务 例3 2 某飞机售票处欲设计 飞机票查询 程序 该程序可为旅客服务 由录入员输入查询请求 即可查出所需要航班资料 要求程序做到 1 按班次查询 2 按航线查询 3 按日期查询 软件工程 36 1 精化数据流图 软件工程 37 2 事务分析得出程序结构图 软件工程 38 3 3 5设计优化 原则 1 在不考虑时间因素的前提下开发并精简软件结构 2 在细节设计的过程中挑选出那些可能占用时间过多的模块 并为这些模块精心设计出时间效率更高的算法 3 用高级程序设计语言编写代码程序 4 在软件中孤立那些大量占用处理机资源的模块 5 必要时用依赖于机器的语言重新设计或重新编码 以提高软件的效率 软件工程 39 3 4概要设计文档评审 在软件生存期每个阶段的工作中都可能引入人为的错误 在某一阶段的错误得不到及时纠正 就会传播到开发的后续阶段中去 并在后续阶段引出更多的错误 有效的评审可以显著地降低随后的开发阶段和维护阶段的费用 在概要设计阶段设计人员完成的主要文档是概要设计说明书 它主要规定软件的结构 概要设计文档评审中应着重评审软件需求是否得到满足 软件结构的质量 接口说明 数据结构说明 实现和测试的可行性和可维护性等 软件工程 40 3 5概要设计文档写作范例 引言本文是网上选课管理系统 MSSCN ManagementSystemForSelectCourseOnNetwork 的概要设计说明书 1 1编写目的本说明书用以说明对网上选课管理系统的功能及性能要求 该说明书向潜在用户说明该软件的功能和性能 是该系统设计人员 编程人员的开发依据 亦是用户对系统的验收依据 本说明书的使用者有 用户 管理人员 开发人员 软件工程 41 内聚 内聚是标志一个模块内各个元素彼此结合的紧密程度高内聚 功能内聚 顺序内聚中内聚 通信内聚 过程内聚低内聚 时间内聚 逻辑内聚 巧合内聚 软件工程 42 1 巧合内聚 偶然内聚 模块完成的一组任务关系松散 软件工程 43 2 逻辑内聚 该模块完成的任务在逻辑上属于相同或相似 右图 需要一个功能开关 由X Y Z给出 在ABC模块中执行某一个功能 软件工程 44 3 时间内聚 经典内聚 大多为多功能模块 但要求模块的各个功能必须在同一时间段内执行通常一个处理元素输出为另一个处理元素的输入 软件工程 45 4 过程内聚 把流程图中的某一部分划分出来组成模块 就得到过程内聚模块 补充 过程内聚模块的各组成功能由控制流连接在一起 是若干各处理功能的公共过程单元 顺序内聚和过程内聚的区别 顺序内聚 数据流从一个处理元流到另一个处理元过程内聚 控制流从一个动作流到另一个动作 软件工程 46 5 通信内聚该模块内各功能都使用了相同的输入数据 或产生了相同的输出数据 则称之为通信内聚模块 软件工程 47 6信息内聚 顺序内聚 这种模块完成多个功能 各个功能都在同一数据结构上操作 每项功能有唯一的入口点 软件工程 48 内聚 7 功能内聚如果一个模块内所有处理元素完成一个且仅完成一个功能 则为功能内聚 在软件结构中 并不是每一个模块都能归结为完成一个功能而设计的模块 软件工程 49 内聚性与模块独立性的关系图 类比 若干关系的比较家庭 班级 散客旅行团 亲人 同学 临时旅伴 软件工程 50 模块设计的一般准则 1 改进软件结构 提高模块独立性评价软件的初始结构 减少模块间的联系 耦合 增大模块内的联系 内聚 软件工程 51 模块设计的一般准则 2 模块规模应适中首先按照模块独立性来选取模块的规模不能用代码长度来判断模块大小和复杂程度3 适当选择深度 宽度 扇出和扇入扇出是影响宽度的重要因素扇入 扇出过多往往因为模块包含过多的功能 应恰当增加层次 软件工程 52 模块设计的一般准则 4 模块的作用域应该在控制域之内 软件工程 53 模块设计的一般准则 5 降低模块接口的复杂度QUAD ROOT TBL X TBL 1 A TBL 2 A TBL 3 AX 1 ROOT1 X 2 ROOT2QUAD ROOT A B C ROOT1 ROOT2 软件工程 54 模块设计的一般准则 6 设计单入口单出口的模块易理解 易维护可避免内容耦合 减少模块间联系7 模块功能应该可以预测 但要防止模块功能过分局限 软件工程 55 3 3面向数据流的设计方法 结构化设计目的是把数据流图映射为软件结构数据流图类型确定映射方法 因此必须研究数据流图的类型数据流可分为 变换流 事务流 软件工程 56 基本概念 1 变换流特性数据沿输入通路进入系统 由外部形式变换成内部形式 然后通过变换中心 经过加工处理以后再沿输出通路变换成外部形式离开软件系统变换型数据流图一般可分为输入 加工 输出三部分 软件工程 57 变换流图转换成软件结构的映射方法 1 将数据流图的输入 加工和输出部分别转换为输入 加工和输出模块 2 增加总控模块 用于调度输入 加工和输出模块 协调完成任务 软件工程 58 2 事务流 把以 事务为中心 的数据流作为一类特殊的数据流 称为 事务流 事务型流图有一个明显的事务中心 它接受一项事务 根据该事务的特点和性质 选择分配一个适当的处理单元 然后输出结果 软件工程 59 事务中心的工作过程 1调用接受事务模块 接受一项事务 2调用调度模块选择分配处理单元 获取处理结果 3最后 调用输出模块输出结果 软件工程 60 3 设计过程 对变换型设计过程 区分输入 加工和输出的部分 映射成变换型软件结构 优化软件结构 事务型设计过程 区分事物中心 接受事务通路和各处理单元 映射成事务型软件结构 优化软件结构 最后 无论是变换型还是事务型均要导出各模块的接口描述和全局数据结构 软件工程 61 3 3 2系统结构图 在系统结构图 SC StructureChart 中 不能再分解的模块称为原子模块 1 传入模块 从下属模块取得数据 经过某些处理 再将其传送给上级模块 2 传出模块从上级模块中获取数据 进行某些处理 再将其传送给下属模块 3 变换模块从上级模块取得数据 进行特定的处理 转换成其他形式 再传送回上级模块 4 协调模块对所有的下属模块进行协调和管理的模块 在一个较好的系统结构图中 该模块应在较高层出现 软件工程 62 3 3 3变换分析 变换分析是一系统步骤的总称 经过这些步骤把变换型数据流图映射成软件结构 例3 1 某学校欲设计 成绩录入 程序 由录入员输入成绩信息 学号 课程代码 成绩 1 查询学生信息 确定是否有该学生 2 查询该学生的班级信息 3 查询课程信息 4 查询成绩是否重复录入 5 在核对了学生信息 班级信息 课程信息后 在成绩没有重复录入的情况下保存该成绩 软件工程 63 1 重画数据流图后进行复审精化 软件工程 64 2区分系统的输入 输出和加工部分 软件工程 65 3 一级分解 设计上层模块 软件工程 66 4进行二级分解 设计输入 加工 输出部分的中 下层模块 软件工程 67 3 3 4事务分析 在很多应用中 存在某种作业数据流 它可以引发一个或多个处理 这些处理能够完成该作业要求的功能 这种数据流就叫做事务 例3 2 某飞机售票处欲设计 飞机

温馨提示

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

最新文档

评论

0/150

提交评论