




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LOGO 1 总体设计 第第3章课程回顾章课程回顾 v 知识点回顾知识点回顾 软件客户包括提出要求、支付款项、选择、 具体说明或使用软件产品的项目风险承担者 (stakeholder)或是获得产品所产生结果的人 模型对对象系统的形式化的特征抽象,概括 性或近似地表示 结构化分析方法(Structured Analysis,SA) 70年代中期提出的一种面向数据流、自顶向 下、逐步求精进行需求分析的方法 2 第第3章课程回顾章课程回顾 v各种需求分析方法所应遵循的准则包括各种需求分析方法所应遵循的准则包括 必须理解并描述问题的信息域,建立数据模型 必须定义软件应完成的功能,建立功能模型 必须描述
2、作为外部事件结果的软件行为,建立 行为模型 必须对描述信息、功能和行为的模型进行分解, 用层次的方式展开细节 3 第第3章课程回顾章课程回顾 v需求分析的具体任务包括:需求分析的具体任务包括: 1. 确定软件系统的综合需求 2. 分析系统的数据需求 用E-R图、层次方框图等工具建立数据模型 3. 导出软件系统的逻辑模型: 用数据流图、ER图、状态转换图等工具建立逻辑 模型 4. 修正系统的开发计划 5. 验证软件需求分析的正确性 6. 编写软件需求规格说明书 4 第第3章课程回顾章课程回顾 v软软件的综合要求件的综合要求一般包括内容一般包括内容 1. 功能需求:系统必须提供的服务 2. 性能要
3、求:系统必须满足的定时约束或容量 约束等 3. 可靠性和可用性需求 4. 出错处理需求:系统对环境错误应该怎样响 应 5. 接口需求:系统与其他的环境通信格式要求 6. 约束:设计约束或实现约束描述在设计或实 现应用系统时应遵守的限制条件:精度工 具语言设计标准平台 5 第第3章课程回顾章课程回顾 7. 逆向需求:说明软件系统不应该做什么 8. 将来可能提出的要求 v 需求获取的常用方法需求获取的常用方法 访谈 面向数据流自顶向下求精 简易的应用规格说明技术 6 第第3章课程回顾章课程回顾 v需求分析阶段中常用的模型主要有:需求分析阶段中常用的模型主要有: 数据流图(DFD):用于建立功能模型
4、 实体联系图(ERD):用于建立数据模型 类图:用于建立结构模型 时序图:用于建立行为模型 状态图:用于建立行为模型 协作图:用于建立行为模型 7 第第3章课程回顾章课程回顾 v结构化分析方法中使用的主要建模工具结构化分析方法中使用的主要建模工具 结构化分析方法中使用的建模工具主要包括: 数据流图、数据字典、结构化语言、判定标和 判定树 v数据模型的画法数据模型的画法 数据模型也称ER模型,它包括三要素:数据 对象、数据属性和数据联系 数据对象:存在且可区分的事物,用矩形框表 示 数据对象是指具有一系列不同性质或属性的事 物,仅具有单个值的事物不是数据对象 8 第第3章课程回顾章课程回顾 属性
5、定义了实体或联系所具有的性质。用圆角 矩形椭圆形表示 联系表示数据对象彼此之间相互连接的方式 联系可以是一对一、一对多、多对多。用菱形 框表示 联系也可以有属性 v状态转换图的画法状态转换图的画法 简称状态图 通过描绘系统的状态及引起系统状态转换的事 件,来表示系统的行为 9 第第3章课程回顾章课程回顾 状态图包括3个主要状态,即 初态初始状态:仅1个,用实心圆表示 终态最终状态:0-N个,用一对同心圆(内圆为 实心圆)表示 中间状态用圆角矩形表示 状态图可以表示系统循环运行过程,这时不关 心如何启动该状态 状态图可以表示系统单程生命期,这时需标明 初始状态和最终状态 10 第第4章章 总体设
6、计总体设计 v4.1 设计过程设计过程 v4.2 设计原理设计原理 v4.3 启发规则启发规则 v4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v4.5 面向数据流的设计方法面向数据流的设计方法 v4.6 体系结构设计优化体系结构设计优化 v4.7 总体设计报告书写总体设计报告书写 11 第第4章总体设计章总体设计 v总体设计总体设计又称为又称为概要设计概要设计或或初步设计初步设计 v开发阶段的开始:开发阶段的开始:“怎么做怎么做?” v基本目的:基本目的:“概括地说,系统如何实现?概括地说,系统如何实现?” v确定系统中每个程序由哪些模块组成以及这些模确定系统中每个程序由哪些模块组成
7、以及这些模 块相互间的关系块相互间的关系 12 第第4章总体设计章总体设计 v在总体设计阶段,主要任务:在总体设计阶段,主要任务: 划分物理元素: 物理元素内容包括:程序文件数据库人工过 程和文档等 物理元素分解程度:黑盒子级 确定软件结构: 整个软件的程序组成 13 4.1 设计过程设计过程 每个程序的模块组成 模块之间的关系 v总体设计的必要性总体设计的必要性 全局性分析,选最佳方案和最合理的软件结构 v总体设计过程分两个阶段总体设计过程分两个阶段 系统设计:确定系统的具体实现方案 结构设计:确定软件结构 14 4.1 设计过程设计过程 v实施总体设计的过程包括实施总体设计的过程包括9个步
8、骤个步骤: 1. 设想供选择的方案: 从数据流图(DFD)出发 区分各种处理、并分组 考虑各种处理的实现策略 设想、列出方案,但不评价 15 4.1 设计过程设计过程 v实际例讲评:实际例讲评:口算高手口算高手部分方案选择部分方案选择 16 4.1 设计过程设计过程 v1输入数据类型的选择输入数据类型的选择 unsigned para1, para2, output; unsigned para1, para2, int output; int para1, para2, output; int para1, para2, long int outpout; v2试题数据保存方法的选择 选用数
9、组临时保存st_para1100, st_para2100, st_output100 选用Delphi自带数据库 选FoxproOracle数据库SQL server等 17 4.1 设计过程设计过程 v实例讲评:实例讲评:客房管理系统客房管理系统局部方案选择局部方案选择 18 4.1 设计过程设计过程 v1预定请求类型的选择预定请求类型的选择 只接受电话预定 只接受网上预定 只接受上门预定 接受上述三种方案的任意组合预定 v2夜审时间与餐费列入方法的确定夜审时间与餐费列入方法的确定 中午12点 早晨8点 餐费列入住宿费 19 4.1 设计过程设计过程 v2. 选取合理的方案选取合理的方案
10、分析员应提供的相关资料 系统流程图 物理元素清单 成本效益分析 进度计划 考虑需求规格说明书要求,并征求用户意见 20 4.1 设计过程设计过程 v实例讲评:实例讲评: 口算高手口算高手 系统流程图系统流程图 21 4.1 设计过程设计过程 v实例讲评:实例讲评:口算高手口算高手物理元素清单物理元素清单 一个程序 六个模块:输入模块、校验模块、退出模块、 计算模块、打印模块、显示模块 v实例讲评:实例讲评:口算高手口算高手成本效益分析:略成本效益分析:略 v实例讲评:实例讲评:口算高手口算高手实现进度计划实现进度计划 可行性分析:0.5天,需求分析:0.5天 总体设计:1天,详细设计与编码:1
11、天 软件测试:3天,文档资料编写、审议:1天 22 4.1 设计过程设计过程 v3. 推荐最佳方案推荐最佳方案 系统分析员推荐最佳方案 用户和专家审查通过 使用部门负责人认可 完成系统设计,进入结构设计 以上为总体设计过程的系统设计阶段 23 4.1 设计过程设计过程 v4. 功能分解功能分解 先结构设计:确定模块组成、相互关系。属于 总体设计 确定软件有哪些模块组成 模块之间的关系 后过程设计:确定每个模块的处理过程。属于 详细设计 分解后的每个功能对于程序员而言,是明显易 懂的 24 4.1 设计过程设计过程 v实例讲评:实例讲评:口算高手口算高手模块组成模块组成 25 4.1 设计过程设
12、计过程 v5 设计软件结构:用设计软件结构:用层次图层次图或结构图来描述或结构图来描述 v6. 设计设计数据库数据库: 模式设计: 确定物理数据库结构 满足第三范式 关系数据库模型 解决数据库管理系统的结构约束 26 4.1 设计过程设计过程 v实例讲评:实例讲评:路灯管理系统路灯管理系统部分层次图部分层次图 27 4.1 设计过程设计过程 v实例讲评:实例讲评:路灯管理系统路灯管理系统数据库结构实例数据库结构实例 28 4.1 设计过程设计过程 子模式设计:用户使用的数据视图:非物理数 据直接反映的数据 完整性和安全性设计 内容完整性 使用安全性 操作安全性 优化:模式和子模式的优化:利于存
13、取 29 4.1 设计过程设计过程 v实例讲评:国家标准实例讲评:国家标准数据库设计说明书数据库设计说明书 v1 引言引言 1.1 编写目的 说明编写这份数据库设计说明书的目的,指出预期 的读者 1.2 背景说明 说明待开发的数据库的名称和使用此数据库的软件 系统的名称 列出该软件系统开发项目的任务提出者、用户以及 将安装该软件和这个数据库的计算站(中心) 30 补充:数据库设计说明书(补充:数据库设计说明书(GB8567-88)主要内)主要内 容容 1.3定义 列出本文件中用到的专门术语的定义、外文首字母 组词的原词组 1.4 参考资料 列出有关的参考资料 本项目的经核准的计划任务书或合同、
14、上级机 关批文 属于本项目的其他已发表的文件 本文件中各处引用到的文件资料,包括所要用 到的软件开发标准 列出这些文件的标题、文件编号、发表日期和 出版单位,说明能够取得这些文件的来源 31 补充:数据库设计说明书(补充:数据库设计说明书(GB8567-88)主要内)主要内 容容 v2 外部设计外部设计 2.1 标识符和状态 联系用途,详细说明用于唯一地标识该数据库的代 码、名称或标识符,附加的描述性信息亦要给出。 如果该数据库属于尚在实验中、尚在测试中或暂时 使用的,则要说明这一特点及其有效时间范围 2.2 使用它的程序 列出将要使用或访问此数据库的所有应用程序,对 于这些应用程序的每一个,
15、给出它的名称和版本号 32 补充:数据库设计说明书(补充:数据库设计说明书(GB8567-88)主要内)主要内 容容 2.3 约定 陈述一个程序员或一个系统分析员为了能使用此数 据库而需要了解的建立标号、标识的约定,例如用 于标识数据库的不同版本的约定和用于标识库内各 个问卷、纪录、数据项的命名约定等 2.4 专门指导 向准备从事此数据库的生成、从事此数据库的测试、 维护人员提供专门的指导,例如将被送入数据库的 数据的格式和标准、送入数据库的操作规程和步骤, 用于产生、修改、更新或使用这些数据文卷的操作 指导。如果这些指导的内容篇幅很长,列出可参阅 的文件资料的名称和章条 33 补充:数据库设
16、计说明书(补充:数据库设计说明书(GB8567-88)主要内)主要内 容容 2.5 支持软件 简单介绍同此数据库直接有关的支持软件,如数据 库管理系统、存储定位程序和用于装入、生成、修 改、更新数据库的程序等 说明这些软件的名称、版本号和主要功能特性,如 所用数据模型的类型、允许的数据容量等 列出这些支持软件的技术文件的标题、编号及来源 34 补充:数据库设计说明书(补充:数据库设计说明书(GB8567-88)主要内)主要内 容容 v3. 结构设计结构设计 3.1 概念结构设计 说明本数据库将反映的显示世界中的实体、属性和 它们之间的关系等的原始数据形式,包括各数据项、 纪录、系、文卷的标识符
17、、定义、类型、度量单位 和值域,建立本数据库的每一幅用户视图 3.2 逻辑结构设计 说明把上述原始数据进行分解、合并后重新组织起 来的数据库全逻辑结构,包括所确定的关键字和属 性、重新确定的纪录结构和文卷结构、所建立的各 个文卷之间的相互关系,形成本数据库的数据库管 理员视图 35 补充:数据库设计说明书(补充:数据库设计说明书(GB8567-88)主要内)主要内 容容 3.3 物理结构设计 建立系统程序员视图,包括: 数据在内存中的安排,包括对索引区、缓冲区的设计 所使用的外存设备及外存空间的组织,包括索引区、数据 块的组织与划分 访问数据的方式方法 36 补充:数据库设计说明书(补充:数据
18、库设计说明书(GB8567-88)主要内)主要内 容容 v4. 运用设计运用设计 4.1 数据字典设计 对数据库设计中涉及到的各种项目,如数据项、纪 录、系、文卷、模式、子模式等一般要建立起数据 字典,以说明它们的标识符、同义名及有关信息。 在本节中要说明对此数据字典设计的基本考虑 4.2 安全保密设计 说明在数据库的设计中,将如何通过区分不同的访 问者、不同的访问类型和不同的数据对象,进行分 别对待而获得的数据库安全保密的设计考虑 37 4.1 设计过程设计过程 v7 制定测试计划制定测试计划 测试方法选择:白盒测试黑盒测试 测试内容设计:模块测试功能测试性能测 试 测试条件:人员设备。 测
19、试用例设计 测试人员安排 测试时间进度 v实例讲评:国家标准实例讲评:国家标准测试计划测试计划 38 补充:测试计划(补充:测试计划(GB8567-88)主要内容)主要内容 v1. 引言引言 1.1 编写目的 本测试计划的具体编写目的,指出预期的读者范围 1.2 背景 说明 测试计划所从属的软件系统的名称 该开发项目的历史,列出用户和执行此项目测 试的计算中心,说明在开始执行本测试计划之 前必须完成的各项工作 39 补充:测试计划(补充:测试计划(GB8567-88)主要内容)主要内容 1.3 定义 列出本文件中用到的专门术语的定义和外文首字母 组词的原词组 1.4 参考资料 列出要用到的参考
20、资料,如: 本项目的经核准的计划任务书或合同、上级机 关的批文; 属于本项目的其他已发表的文件 本文件中各处引用的文件、资料,包括所要用 到的软件开发标准。列出这些文件的标题、文 件编号、发表日期和出版单位,说明能够得到 这些文件资料的来源。 40 补充:测试计划(补充:测试计划(GB8567-88)主要内容)主要内容 v2. 计划计划 2.1 软件说明 提供一份图表,并逐项说明被测软件的功能、输入 和输出等质量指标,作为叙述测试计划的提纲 2.2 测试内容 列出组装测试和确认测试中的每一项测试内容的名 称标识符、这些测试的进度安排以及这些测试的内 容和目的,例如模块功能测试、接口正确性测试、
21、 数据文卷存取的测试、运行时间的测试、设计约束 和极限的测试等 41 补充:测试计划(补充:测试计划(GB8567-88)主要内容)主要内容 2.3 测试1(标识符) 给出这项测试内容的参与单位及被测试的部位 2.3.1 进度安排:包括进行测试的日期和工作内容 (如熟悉环境、培训、准备输入数据等) 2.3.2 条件 陈述本项测试工作对资源的要求,包括: 设备所用到的设备类型、数量和预定使用时 间 软件列出将被用来支持本项测试过程而本身 又并不是被测软件的组成部分的软件,如测 试驱动程序、测试监控程序、仿真程序、桩 模块等等 42 补充:测试计划(补充:测试计划(GB8567-88)主要内容)主
22、要内容 人员列出在测试工作期间可由用户和开发任务 组提供的工作人员的人数。技术水平及有关的 预备只是,包括一些特殊要求,如倒班操作和 数据键入人员 2.3.3 测试资料 列出本项测试所需的资料,如: 有关本项任务的文件 被测试程序及其所在的媒体 测试的输入和输出举例 有关控制此项测试的方法、过程的图表 43 补充:测试计划(补充:测试计划(GB8567-88)主要内容)主要内容 2.3.4 测试培训 说明或引用资料说明为被测软件的使用提供培 训的计划。规定培训的内容、受训人员及从事 培训的工作人员 2.4 测试2(标识符) 用与本测试计划2.3条相类似的方式说明用于另一项 及其后各项测试内容的
23、测试工作计划 44 补充:测试计划(补充:测试计划(GB8567-88)主要内容)主要内容 v3. 测试设计说明测试设计说明 3.1 测试1(标识符) 说明对第一项测试内容的测试设计考虑 3.1.1 控制 说明本测试的控制方式,如输入是人工、半自 动或自动引入、控制操作的顺序以及结果的纪 录方法 3.1.2 输入 说明本项测试中所使用的输入数据及选择这些 输入数据策略 45 补充:测试计划(补充:测试计划(GB8567-88)主要内容)主要内容 3.1.3 输出 说明预期的输出数据,如测试结果及可能产生 的中间结果或运行信息 3.1.4 过程 说明完成此项测试的一个个步骤和控制命令, 包括测试
24、的准备、初始化、中间步骤和运行结 束方式 3.2 测试2 (标识符) 用与本测试计划3.1 条相类似的方式说明第2项及其 后各项测试工作的设计考虑 46 补充:测试计划(补充:测试计划(GB8567-88)主要内容)主要内容 v4. 评价准则评价准则 4.1 范围 说明所选择的测试用例能够检查的范围及其局限性 4.2 数据整理 陈述为了把测试数据加工成便于评价的适当形式, 使得测试结果可以用同已知结果进行比较而要用到 的转换处理技术,如手工方式或自动方式;如果是 用自动方式整理数据,还要说明为进行处理而要用 到的硬件、软件资源 47 补充:测试计划(补充:测试计划(GB8567-88)主要内容
25、)主要内容 4.3 尺度 说明用来判断测试工作是否能通过的评价尺度,如 合理的输出结果的类型、测试输出结果与预期输出 之间的允许偏离范围、允许中断或停机的最大次数 48 4.1 设计过程设计过程 v8. 书写文档:书写文档: 1. 系统说明: 系统流程图:系统构成方案 组成的物理元素清单 成本效益分析 最佳方案概述 精化的数据流程图 软件结构:层次图或结构图 模块算法:IPO等工具 49 4.1 设计过程设计过程 2. 用户手册:修改更正初步用户手册 3. 测试计划: 测试策略 测试方案 预期测试结果 测试进度计划 4. 详细的实现计划 5. 数据库设计结果 50 4.1 设计过程设计过程 v
26、9. 检查和复审检查和复审 v实例讲评:国家标准实例讲评:国家标准用户手册用户手册 v实例奖评:国家标准实例奖评:国家标准概要设计说明书概要设计说明书 51 4.2 设计原理设计原理 v1. 模块化模块化 模块(module)是数据说明和可执行语句等程 序对象的集合,每个模块单独命名并且可以通 过名字对模块进行访问 把大型软件按照规定的原则划分为一个个较小 的、相对独立但又相关的模块的设计方法,叫 做模块化设计(modular design) 实现模块化设计的重要指导思想是功能分解、 信息隐藏和模块独立性 52 4.2 设计原理设计原理 模块是由一定功能的可以用名词调用的程序语 句集合,如:
27、C语言的子程序 独立的汇编程序 COBOL的段和节 Pascal的过程 FORTRAN的子程序 汇编的宏 面向对象方法学中的对象等 53 4.2 设计原理设计原理 分解 设函数C(x)定义问题x的复杂程度,函数E(x)确 定解决问题x所需要的工作量(时间)。对于两个 问题P1和P2,如果C(P1)C(P2), 显然 E(P1)E(P2) 根据人类解决一般问题的经验,如果一 个问题由P1和P2两个问题组合而成,那么它 的复杂程序大于分别考虑每个问题时的复杂程 度之和,即: C(P1+P2)C(P1)+C(P2) 综上所述 E(P1+P2)E(P1)+E(P2) 54 4.2 设计原理设计原理 v
28、模块化和软件成本模块化和软件成本 55 4.2 设计原理设计原理 v控制结构(程序结构)控制结构(程序结构) 控制结构是软件模块间关系的表示 控制结构图示 56 4.2 设计原理设计原理 v控制结构的层次规则控制结构的层次规则 只有一个顶层(0层)模块 除0层外任一模块都会在它的邻层存在一模块 与它有关 同层模块间不发生联系 57 4.2 设计原理设计原理 v软件结构度量术语软件结构度量术语 58 4.2 设计原理设计原理 v宽度:软件结构内同一个层次伤的模块总数的最宽度:软件结构内同一个层次伤的模块总数的最 大值大值 v扇出:一个模块直接控制调用的模块数。平均扇出:一个模块直接控制调用的模块
29、数。平均 扇出为扇出为3或或4 v扇入:一个模块扇入表明有多少个上级模块直接扇入:一个模块扇入表明有多少个上级模块直接 调用它调用它 v深度:一个模块包含自身及其它模块的层数深度:一个模块包含自身及其它模块的层数 59 4.2 设计原理设计原理 v实例奖评:软件结构度量术语实例实例奖评:软件结构度量术语实例 60 4.2 设计原理设计原理 v2. 抽象抽象 抽象的含义:反映本质特征,忽略细节 多层次抽象 最高层:使用问题环境语言,概括问题解法 较低抽象层:更过程化的方法,面向问题,面向实 现的解法 最底层:直接实现的方式,叙述问题解法 61 4.2 设计原理设计原理 v3. 信息隐藏(信息隐藏
30、(Information Hiding) 模块内部的数据与过程,应该对不需要了解这 些数据与过程的模块隐藏起来。只有那些为了 完成软件的总体功能而必须在模块间交换的信 息,才允许在模块间进行传递 信息隐蔽原理:使一个模块内部包含的信息对 于不需要这些信息的模块来说,是不能访问的 62 4.2 设计原理设计原理 “隐藏”意味着有效的模块化可以通过定义一组 独立的模块而实现,这些独立的模块彼此间仅 仅交换那些为了完成系统功能而必须交换的信 息。这一指导思想的目的是为了提高模块的独 立性,即当修改或维护模块时减少把一个模块 的错误扩散到其他模块中的机会 局部化:指把一些关系紧密地软件元素物理地 放得
31、彼此靠近。例:局部变量 63 4.2 设计原理设计原理 v实例奖评:隐藏与局部化实例奖评:隐藏与局部化 64 4.2 设计原理设计原理 v4. 模块独立性(模块独立性(module independence) 概括了把软件划分为模块时要遵守的准则,也 是判断模块构造是否合理的标准。一般地,坚 持模块独立性是获得良好设计的关键 两个定性度量标准内聚和耦合 耦合用于衡量不同模块彼此之间相互依赖(连 接)的紧密程度 65 4.2 设计原理设计原理 内聚用于衡量一个模块内部各个元素间彼此结 合的紧密程度 模块独立的概念:模块化、信息隐蔽和局部化 的直接结果 完成特定功能 模块之间关系简单 需要模块独立
32、的原因 易开发 易测试 66 4.2 设计原理设计原理 耦合强度取决于模块接口的复杂程度、通过接 口的数据等 应该追求尽可能松散耦合的系统:影响系统的 可理解性、可测试性、可靠性和可维护性 耦合的七种类型 67 4.2 设计原理设计原理 v耦合强度耦合强度 非直接耦合无耦合:最低 数据耦合:低耦合可以只包括该耦合 控制耦合:中耦合通常模块分解可以用数据 耦合 公共环境耦合:全程变量、共享通信区、内存 公共覆盖区、存储介质上文件或设备等;复杂 程度随耦合模块个数变化;一读一取;属松 散耦合;既读又取;介于数据耦合与控制耦合 之间 68 4.2 设计原理设计原理 内容耦合:最高程度耦合 v无直接耦
33、合:两个模块没有直接关系(模块无直接耦合:两个模块没有直接关系(模块1和和 模块模块2),模块独立性最强),模块独立性最强 69 4.2 设计原理设计原理 v实例讲评:无直接耦合示例实例讲评:无直接耦合示例 70 4.2 设计原理设计原理 数据耦合:一模块调用另一模块时,被调用模 块的输入、输出都是简单的数据(若干参数)。 属松散耦合 实例讲评:数据耦合示例 71 4.2 设计原理设计原理 v实例讲评:数据耦合程序示例实例讲评:数据耦合程序示例 72 4.2 设计原理设计原理 特征耦合 也称标记耦合(复合型耦合) 如两个模块通过传递数据结构(不是简单数 据,而是纪录、数组等)加以联系,或都与
34、一个数据结构有关系,则称这两个模块之间 存在标记耦合 73 4.2 设计原理设计原理 v实例讲评:特征耦合示例实例讲评:特征耦合示例 74 4.2 设计原理设计原理 v实例讲评:特征耦合示例实例讲评:特征耦合示例 75 4.2 设计原理设计原理 v实例讲评:特征耦合示例实例讲评:特征耦合示例 76 4.2 设计原理设计原理 v将特征耦合修改为数据耦合举例将特征耦合修改为数据耦合举例 77 4.2 设计原理设计原理 v实例讲评:将特征耦合修改为数据耦合示例实例讲评:将特征耦合修改为数据耦合示例 78 4.2 设计原理设计原理 v控制耦合控制耦合 模块向下属模块传递的信息(开关量、标志等 控制被调
35、用模块决策的变量)控制了被调用模 块的内部逻辑 79 4.2 设计原理设计原理 v实例讲评:控制耦合示例实例讲评:控制耦合示例 80 4.2 设计原理设计原理 v去除模块间控制耦合的方法去除模块间控制耦合的方法 控制耦合增加了理解和编程的复杂性,调用模 块必须知道被调模块的内部逻辑,增加了相互 依赖 将被调用模块内的判定上移到调用模块中进行 被调用模块分解成若干单一功能模块 81 4.2 设计原理设计原理 v改控制耦合为数据耦合举例改控制耦合为数据耦合举例 82 4.2 设计原理设计原理 v实例讲评:改控制耦合为数据耦合示例实例讲评:改控制耦合为数据耦合示例 83 4.2 设计原理设计原理 v
36、外部耦合外部耦合 一组模块与同一外部环境关联(例如,I/O模 块与特定的设备、格式和通信协议相关联), 它们之间便存在外部耦合 外部耦合必不可少,但这种模块数目应尽量少 v公共耦合(公共数据区耦合)公共耦合(公共数据区耦合) 一组模块引用同一个公用数据区(也称全局数 据区、公共数据环境) 公共数据区指:全局数据结构、共享通讯区, 内存公共覆盖区等 84 4.2 设计原理设计原理 v实例讲评:公共耦合实例实例讲评:公共耦合实例 85 4.2 设计原理设计原理 v实例讲评:公共耦合示例实例讲评:公共耦合示例 86 4.2 设计原理设计原理 v公共耦合存在的问题公共耦合存在的问题 1. 软件可理解性
37、降低 2. 诊断错误困难 3. 软件可维护性差 4. 软件可靠性差 (公共数据及全程变量无保护措施) 慎用公共数据区和全程变量! 87 4.2 设计原理设计原理 v内容耦合内容耦合 88 4.2 设计原理设计原理 v耦合设计耦合设计原则原则 尽量使用数据耦合 少用控制耦合 限制公共环境耦合范围 完全不用内容耦合 89 4.2 设计原理设计原理 v内聚内聚概念:衡量一个模块内部各元素彼此结合的概念:衡量一个模块内部各元素彼此结合的 紧密程度紧密程度 v简单地说,理想内聚的模块只做简单地说,理想内聚的模块只做一件事情一件事情。设计。设计 时应该力求做到时应该力求做到高内聚高内聚,通常中等程度的内聚
38、也,通常中等程度的内聚也 是可以采用的,而且效果和高内聚相差不多。但是可以采用的,而且效果和高内聚相差不多。但 是,是,坚决不要使用低内聚坚决不要使用低内聚 90 4.2 设计原理设计原理 v内聚类型:七种类型内聚类型:七种类型 v低内聚:偶然内聚:出现错误的概率比其他类型低内聚:偶然内聚:出现错误的概率比其他类型 的模块要高的模块要高0分;分; 91 4.2 设计原理设计原理 v偶然内聚(巧合内聚)偶然内聚(巧合内聚) v实例讲评:偶然内聚示例实例讲评:偶然内聚示例 92 4.2 设计原理设计原理 v逻辑内聚:逻辑内聚: 把几种相关功能(逻辑上相似的功能)组合在 一模块内,每次调用由传给模块
39、的参数确定执 行哪种功能 修改困难1分 93 4.2 设计原理设计原理 v实例讲评:逻辑内聚示例实例讲评:逻辑内聚示例 94 4.2 设计原理设计原理 v时间内聚时间内聚 时间内聚,比逻辑内聚好一些3分。模块完 成的功能必须在同一时间内执行,这些功能只 因时间因素关联在一起 v实例讲评:时间内聚示例实例讲评:时间内聚示例 例如:初始化系统模块、系统结束模块、紧急 故障处理模块等均是时间性聚合模块 95 4.2 设计原理设计原理 v实例讲评:时间内聚:初始化模块实例讲评:时间内聚:初始化模块 96 4.2 设计原理设计原理 v过程内聚(顺序性组合)过程内聚(顺序性组合) 过程内聚:程序流程图作为
40、工具设计软件时得 到模块5分 模块内各处理成分相关,且必须以特定次序执 行 属中内聚 97 4.2 设计原理设计原理 v实例讲评:过程内聚:定时器与中断标志实例讲评:过程内聚:定时器与中断标志 98 4.2 设计原理设计原理 v实例讲评:过程内聚实例讲评:过程内聚 99 4.2 设计原理设计原理 v通信内聚通信内聚 模块内各部分使用相同的输入数据,或产生相 同的输出结果 通信内聚:7分 属中内聚 100 4.2 设计原理设计原理 v实例讲评:通信内聚示例实例讲评:通信内聚示例 101 4.2 设计原理设计原理 v实例讲评:通信内聚示例实例讲评:通信内聚示例 102 4.2 设计原理设计原理 v
41、顺序内聚顺序内聚 数据流图作为工具设计软件时得到的模块9 分 信息内聚 模块完成多个功能,各功能都在同一数据结构 上操作,每一功能有唯一入口 属高内聚 103 4.2 设计原理设计原理 v实例讲评:顺序内聚示例实例讲评:顺序内聚示例 104 4.2 设计原理设计原理 v功能内聚功能内聚 最高内聚理想内聚只做一件事10分 模块仅包括为完成某个功能所必须的所有成分 模块所有成分共同完成一个功能,缺一不可 内聚性最强 属高内聚 105 4.2 设计原理设计原理 v实例讲评:功能内聚示例实例讲评:功能内聚示例 106 4.2 设计原理设计原理 v内聚设计原则:内聚设计原则: 力求高内聚 中等内聚也可以
42、采用 低内聚不要用 v与耦合关系:高内聚意味松耦合与耦合关系:高内聚意味松耦合 v实践表明,内聚更重要,应该把更多注意力集中实践表明,内聚更重要,应该把更多注意力集中 到提高模块的内聚程度上到提高模块的内聚程度上 107 4.3 启发规则启发规则 v常用启发规则常用启发规则 (1)改进软件结构,提高模块独立性 降低耦合,提高内聚 (2)模块规模适中 模块过大,分解不充分 模块过小,接口过于复杂,通信开销过大 (3)深度、宽度、扇出和扇入应适中 108 4.3 启发规则启发规则 宽度:软件结构内同一个层次上的模块总数的最大 值 扇出:一个模块直接控制调用的模块数。平均扇 出为3或4 宽度越大,系
43、统越复杂 扇入:一个模块扇入表明有多少个上级模块直接调 用它 深度:一个模块包含自身及其他模块的层数 深度表示软件结构中控制的层数,能粗略地标志一 个系统的大小和复杂程度 通常顶层扇出比较高,中层扇出比较小,底层扇入 比较高 109 4.3 启发规则启发规则 实例讲评:深度为3的示例 110 4.3 启发规则启发规则 实例讲评:深度为1的示例 111 4.3 启发规则启发规则 实例讲评:深度为4的示例 112 4.3 启发规则启发规则 (4)模块的作用域应该在控制域之内 作用域:收该模块内一个判断影响的所有模块集合 控制域:该模块本身以及所有直接或间接从属于它 的模块的集合 作用域应是控制域的
44、子集 改变作用域与控制域的方法:判断点上移作用域 对象下移 113 4.3 启发规则启发规则 实例讲评:A2的作用域为B1,B2,C1,C2,BM; A2的控制域应小于上述集合 114 4.3 启发规则启发规则 (5)力争降低模块接口的复杂程度 实例讲评:一元二次方程求解函数 接口复杂或不一致:紧耦合或低内聚重新分析模 块独立性 (6)设计单入口、单出口的模块:易理解 (7)模块功能应该可以预测 115 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v层次图层次图 层次图(也称H图)是总体设计阶段最常使用 的图形工具之一,它用于描绘软件的层次结构 矩形代表一个模块 连线表示调用关系 适
45、于在自顶向下设计软件的过程中使用 与层次方框图类似 116 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v实例讲评:层次图举例实例讲评:层次图举例 117 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 vHIPO图图 HIPO:是IBM公司发明的“层次图加输入处 理输出图”的缩写 为了能使HIPO图具有课跟踪性,在H图里除了 最顶层的方框之外,每个方框都加了编号 和H图中的每个方框相对应,有一张IPO图描 述这个方框代表的模块的处理过程。IPO图能 够方便地描述数据输入、数据处理和数据输出 之间的关系 118 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v实例讲评:
46、实例讲评:HIPO层次图举例层次图举例 119 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v结构图结构图 Yourdon提出的一种软件结构设计工具 一个方框矩形代表一个模块 箭头连线直线表示调用关系 带有注释的箭头表示模块调用过程中来回传递 的信息 120 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v实例讲评:产生最佳解功能结构图实例讲评:产生最佳解功能结构图SC实例实例 121 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v结构化设计(结构化设计(SD)方法概述)方法概述 1. 首先研究、分析和审查数据流图,从软件的需首先研究、分析和审查数据流图,从软件的需
47、 求规格说明中弄清数据流加工的过程求规格说明中弄清数据流加工的过程 2. 然后根据数据流图决定问题的类型,即确定是然后根据数据流图决定问题的类型,即确定是 变换型还是事务型。针对两种不同的类型分别变换型还是事务型。针对两种不同的类型分别 进行分析处理进行分析处理 3. 由数据流图推导出系统的初始结构图由数据流图推导出系统的初始结构图 4. 利用一些试探性原则来改进系统的初始结构图,利用一些试探性原则来改进系统的初始结构图, 直到得到符合要求的结构图为止直到得到符合要求的结构图为止 5. 修改和补充数据词典修改和补充数据词典 6. 制定测试计划制定测试计划 122 4.4 描绘软件结构的图形工具
48、描绘软件结构的图形工具 vSD方法在概要设计中的主要表达方法在概要设计中的主要表达工具约定工具约定: 123 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v结构图(结构图(SC,Structure Chart):四种模块):四种模块 124 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 vSC中的选择调用中的选择调用 125 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 vSC中的循环调用中的循环调用 126 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 vSC设计优化设计优化 1. 在不考虑时间因素的前提下开发并精化软件结在不考虑时间因素的前提下开发并精化软
49、件结 构构 2. 在详细设计阶段选出最耗费时间的那些模块,在详细设计阶段选出最耗费时间的那些模块, 仔细地设计它们的处理过程,以求提高效率仔细地设计它们的处理过程,以求提高效率 3. 使用高级程序设计语言编写程序使用高级程序设计语言编写程序 4. 必要时重新设计或用依赖于机器的语言重写上必要时重新设计或用依赖于机器的语言重写上 述大量占用资源的模块的代码,以求提高效率述大量占用资源的模块的代码,以求提高效率 5. 在软件中孤立出那些大量占用处理机资源的模在软件中孤立出那些大量占用处理机资源的模 块块 127 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v实例讲评:医院管理系统实例讲评
50、:医院管理系统SC实例实例 128 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v实例讲评:酒店管理信息系统功能结构图实例实例讲评:酒店管理信息系统功能结构图实例 129 4.4 描绘软件结构的图形工具描绘软件结构的图形工具 v实例讲评:零售管理信息系统功能结构图实例实例讲评:零售管理信息系统功能结构图实例 130 回顾设计过程、设计原理、启发规则与图形工具回顾设计过程、设计原理、启发规则与图形工具 131 4.5 面向数据流的设计方法面向数据流的设计方法 v结构化设计方法是基于数据流的设计方法结构化设计方法是基于数据流的设计方法 vSD以数据流图为基础,它定义了把以数据流图为基础,
51、它定义了把DFD变换成变换成 软件结构的不同映射方法软件结构的不同映射方法 132 4.5 面向数据流的设计方法面向数据流的设计方法 v系统结构特征可归纳为两种典型形式系统结构特征可归纳为两种典型形式 变换型结构 事务型结构 v数据流图可分为两种类型数据流图可分为两种类型 变换型数据流 事务型数据流 133 4.5 面向数据流的设计方法面向数据流的设计方法 134 4.5 面向数据流的设计方法面向数据流的设计方法 v数据流图基本模型数据流图基本模型 135 4.5 面向数据流的设计方法面向数据流的设计方法 v变换型数据流举例变换型数据流举例 136 4.5 面向数据流的设计方法面向数据流的设计
52、方法 v事务型数据流图举例事务型数据流图举例 137 4.5 面向数据流的设计方法面向数据流的设计方法 v大型系统大型系统DFD中,变换型和事务型结构往往共存中,变换型和事务型结构往往共存 138 4.5 面向数据流的设计方法面向数据流的设计方法 v面向数据流设计方法的设计步骤面向数据流设计方法的设计步骤 (1)精化DFD (2)确定DFD类型 (3)把DFD映射导系统模块结构,设计出模 块结构的上层 (4)基于DFD,逐步分解高层模块,设计出 下层模块 (5)根据模块独立性原理,精化模块结构 (6)模块接口描述 139 4.5 面向数据流面向数据流的的设计方法设计方法 140 4.5 面向数
53、据流的设计方法面向数据流的设计方法 vSD方方法的两种映射过渡方法法的两种映射过渡方法 141 4.5 面向数据流的设计方法面向数据流的设计方法 v初始的初始的SC 142 4.5 面向数据流的设计方法面向数据流的设计方法 v变换分析设计方法变换分析设计方法 (1)区分传入、变换中心、传出部分,在 DFD上标明分界线 (2)第一级分解(建立初始SC框架),设计 顶层和第一层模块 (3)第二级分解(分解SC各分支),自顶向 下分解,设计出每个分支的中、下层模块 143 4.5 面向数据流的设计方法面向数据流的设计方法 144 4.5 面向数据流的设计方法面向数据流的设计方法 145 4.5 面向
54、数据流的设计方法面向数据流的设计方法 146 4.5 面向数据流的设计方法面向数据流的设计方法 v传入分支的分解(传入分支的分解(1) 147 4.5 面向数据流的设计方法面向数据流的设计方法 v传入分支的分解(传入分支的分解(2) 148 4.5 面向数据流的设计方法面向数据流的设计方法 v传出分支的分解传出分支的分解 149 4.5 面向数据流的设计方法面向数据流的设计方法 v加工中心分支的分解加工中心分支的分解 150 4.5 面向数据流的设计方法面向数据流的设计方法 v事务分析设计方法事务分析设计方法 任何情况下都可使用变换分析方法设计软件结 构,但如数据流具有明显的事务特点时(有一
55、个明显的事务中心),以采用事务分析方法为 宜 151 4.5 面向数据流的设计方法面向数据流的设计方法 步骤 1. 在DFD上确定事务中心、接收部分和发送部 分 2. 画出SC框架,把DFD上的三部分分别映射为 事务控制模块、接收模块和动作发送模块 3. 分解细化接收分支和发送分支,完成初始SC 152 4.5 面向数据流的设计方法面向数据流的设计方法 v实例讲评:用户命令交互子系统实例讲评:用户命令交互子系统DFD 153 4.5 面向数据流的设计方法面向数据流的设计方法 v事务分析的映射方法事务分析的映射方法 154 4.5 面向数据流的设计方法面向数据流的设计方法 v用户命令交互子系统初
56、始用户命令交互子系统初始SC 155 4.5 面向数据流的设计方法面向数据流的设计方法 v实例讲评:用户命令子系统实例讲评:用户命令子系统DFD 156 4.5 面向数据流的设计方法面向数据流的设计方法 v用户命令子系统的用户命令子系统的SC 157 4.5 面向数据流的设计方法面向数据流的设计方法 v实例讲评:用户命令子交互子系统实例讲评:用户命令子交互子系统 158 4.5 面向数据流的设计方法面向数据流的设计方法 159 4.5 面向数据流的设计方法面向数据流的设计方法 v事务流设计举例事务流设计举例 160 4.5 面向数据流的设计方法面向数据流的设计方法 161 4.5 面向数据流的
57、设计方法面向数据流的设计方法 v动作分支的典型结构动作分支的典型结构 162 4.5 面向数据流的设计方法面向数据流的设计方法 163 4.5 面向数据流的设计方法面向数据流的设计方法 v事务流设计举例(另一种画法)事务流设计举例(另一种画法) 164 4.5 面向数据流的设计方法面向数据流的设计方法 v混合流设计举例混合流设计举例 165 4.5 面向数据流的设计方法面向数据流的设计方法 166 4.6 体系结构设计优化体系结构设计优化 v体系结构设计优化体系结构设计优化 将初始SC根据模块独立性原则进行精化 将模块进行合并、分解修改、调整,得到高内 聚、低耦合模块,得到易于实现、易于测试和
58、 易于维护的软件结构 产生设计文档的最终SC 167 4.6 体系结构设计优化体系结构设计优化 v改进软件结构设计的指导原则改进软件结构设计的指导原则 1. 模块功能的完善化模块功能的完善化 2. 消除重复功能消除重复功能 3. 将模块的影响限制在模块的控制范围内将模块的影响限制在模块的控制范围内 4. 深度深度、宽度宽度、扇出和扇入适中扇出和扇入适中 5. 模块大小适中模块大小适中 6. 降低模块接口的复杂性降低模块接口的复杂性 7. 模块功能可预测模块功能可预测 8. 避免模块的病态连接避免模块的病态连接 9. 根据设计约束和可移植性要对软件打包根据设计约束和可移植性要对软件打包 168 4.6 体系结构设计优化体系结构设计优化 v(1)模块功能的完善化)模块功能的完善化 v完整的模块应该包括三部分:完整的模块应该包括三部分: 执行规定功能部分 出错处理部分 需返回给调用者数据时,返回是否正确结束标 志 169 4.6 体系结构设计优化体系结构设计优化 v(2)消除重复功能)消除重复功能 170 4.6 体系结构设计优化体系结构设计优化 v(3)将模块影响限制在模块的控制范围内)将模块影响限制在模块的控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络管理员职业素养及试题及答案
- 供应链管理中的风险考题及答案
- 在实践中加深对知识的理解2025年计算机二级VB考试试题及答案
- 行政管理考试防范的知识盲点:试题及答案
- 关于网络管理员考试的新探讨及试题答案
- 2025玉米买卖合同
- 弘扬学生团结互助的精神计划
- 行政法理论创新的路径选择试题及答案
- 代码抽象与接口设计试题及答案
- 2025年软件设计师复习全账本及试题及答案
- 商标与品牌课件
- 工程造价司法鉴定实施方案
- 人工智能标准化白皮书
- 2021译林版高中英语选择性必修一课文翻译
- 0720小罐茶品牌介绍
- 二级、三级电箱接线图
- 2022年食品卫生通则第三版(中文版)
- 颈椎功能障碍指数,Neck Disabilitv Index,NDI
- 名著导读《红楼梦》PPT课件(完整版)
- 吉林省办学基本标准手册
- 4车道高速公路30米预应力混凝土简支T梁桥上部结构设计_论文
评论
0/150
提交评论