第章软件工程基础PPT课件.ppt_第1页
第章软件工程基础PPT课件.ppt_第2页
第章软件工程基础PPT课件.ppt_第3页
第章软件工程基础PPT课件.ppt_第4页
第章软件工程基础PPT课件.ppt_第5页
已阅读5页,还剩182页未读 继续免费阅读

下载本文档

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

文档简介

第3章软件工程基础 1 主要内容3 1软件工程的基本概念3 2结构化分析方法3 3结构化设计方法3 4软件测试3 5程序的调试 全国等级考试考试大纲要求软件工程基本概念 软件工具与软件开发环境 结构化分析方法 数据流图 数据字典 软件需求规格说明书 结构化设计方法 总体设计与详细设计 软件测试的方法 白盒测试与黑盒测试 测试用例设计 软件测试的实施 单元测试 集成测试和系统测试 程序的调试 静态调试与动态调试 2 知识类型 理论二级所占分值 约6分课时 4学时参考书目 软件工程导论 第4版 张海藩编著清华大学出版社 3 软件 Software 是指包括程序 数据以及相关文档的完整组合 国标定义 与计算机系统的操作有关的计算机程序 规程 规则以及可能有的文件 文档及数据 4 软件工程 SoftwareEngineering 是在20世纪60年代末期提出的 这一概念的提出 其目的是倡导以工程的原理 原则和方法进行软件开发 以期解决当时出现的 软件危机 5 表现 软件需求的增长得不到满足 软件开发成本和进度无法控制 软件质量难以保证 软件不可维护或维护程度非常低 软件成本不断提高 软件开发生产效率的提高赶不上硬件的发展和应用需求的增长 7 软件通常缺少适当的文档资料 总之 可以将软件危机归结为成本 质量和生产率等问题 实际上几乎所有软件都在不同程度上存在软件危机 软件危机 SoftwareCrisis 下一节 6 软件危机 软件开发进度难以预测 拖延工期几个月甚至几年的现象并不罕见 这种现象降低了软件开发组织的信誉 以丹佛新国际机场为例该机场规模是曼哈顿机场的两倍 宽为希思机场的10倍 可以全天侯同时起降三架喷气式客机 投资1 93亿美元建立了一个地下行李传送系统 总长21英里 有4 000台遥控车 可按不同线路在20家不同航空公司柜台 登机门和行李领取处之间发送和传递行李 支持该系统的是5 000个电子眼 400台无线电接受机 56台条形码扫描仪和100台计算机 按原定计划要在1993年万圣节前启用 但一直到1994年6月 该系统还无法正常运行 据研究结果统计 只有15 的项目是按计划完成的 略过 7 软件危机 软件开发成本难以控制 投资一再追加 令人难于置信 据同样的研究统计结果表明 仅有10 的项目是按费用计划完成的 例如 20世纪80年代初 美国国内税收服务处 IRS 让Sperry公司开发一套联邦税收表格自动处理系统 结果是 系统被证明不适合当前的工作量 花费几乎是预算的两倍 必须立即更换 华盛顿邮报的报道 到1985年 还需要再追加9千万美元来改进Sperry公司最初价值1 03亿美元的设备 另外 因为出现的问题阻碍了IRS按时返还纳税者的税款 IRS还被迫偿还4 02亿美元的利息以及2 23千万美元的工资给加班职员 略过 8 软件危机 软件产品质量无法保证 开发人员和用户之间很难沟通 矛盾很难统一 往往是软件开发人员不能真正了解用户的需求 而用户又不了解计算机求解问题的模式和能力 双方无法用共同熟悉的语言进行交流和描述 在双方互不充分了解的情况下 就仓促上阵设计系统 匆忙着手编写程序 这种 闭门造车 的开发方式必然导致最终的产品不符合用户的实际需要 略过 9 软件危机 用户对产品功能难以满足 系统中的错误难以消除 软件是逻辑产品 质量问题很难以统一的标准度量 因而造成质量控制困难 例如 一次美国在肯尼迪角发射一枚阿脱拉斯火箭 预定将用这种火箭运载飞往金星的宇宙飞船 火箭飞离地面几十英里高空开始翻转 地面控制中心被迫下令自爆炸毁 后经检查发现是飞行计划程序中漏掉一个连字符 就是这样一个连字符的疏漏造成这枚价值1850万美元的火箭实验失败 据统计数字表明 在大型系统中 约3 4的系统有问题 略过 10 软件危机 软件产品难以维护 软件产品本质上是开发人员的代码化的逻辑思维活动 他人难以替代 除非是开发者本人 否则很难及时检测 排除系统故障 为使系统适应新的硬件环境 或根据用户的需要在原系统中增加一些新的功能 又有可能增加系统中的错误 略过 11 软件危机 软件缺少适当的文档资料 文档资料是软件必不可少的重要组成部分 实际上 软件的文档资料是开发组织和用户的之间权利和义务的合同书 是系统管理者 总体设计者向开发人员下达的任务书 是系统维护人员的技术指导手册 是用户的操作说明书 缺乏必要的文档资料或者文档资料不合格 将给软件开发和维护带来许多严重的困难和问题 略过 12 软件危机 软件开发供不应求 软件开发生产率的提高速度 难以满足社会需求的增长率 软件产品 供不应求 的现象致使不能充分利用现代计算机硬件提供的巨大潜力 13 3 1软件工程的基本概念 形成 为了摆脱软件危机 北大西洋软件组织成员国软件工作者于1968 1969年 两次召开会议 认识早期软件开发中所存在的问题和产生问题的原因 提出软件工程的概念 目的 软件工程是指导计算机软件开发和维护的一门学科 它应用计算机科学 数学和管理科学等原理 以及借鉴传统工程的原则和方法 来创建软件 从而达到提高质量 降低成本的目的 软件工程 是研究和应用如何以系统化的 规范的 可度量的方法去开发 运行和维护软件 即把工程化应用到软件上 14 软件工程是一门交叉学科 软件工程的主要研究内容软件开发技术 软件开发方法学软件开发过程软件工具和软件工程环境软件工程管理 软件管理学软件经济学软件心理学软件工程所包含的内容不是一成不变的 随着人们对软件系统的研制开发和生产的理解 应用发展的眼光看待它 15 软件工程 一种层次化技术 工具 方法 过程 质量焦点 Softwareengineeringlayers 软件工程三个要素 方法 工具 过程 16 软件工程必须以有组织的质量保证为基础 全面质量管理和过程改进使得更加成熟的软件工程方法不断出现 三要素 质量焦点 软件工程过程是进行一系列有组织的活动 从而能够合理和及时地开发出计算机软件 过程定义了技术方法的采用 工程产品 包括模型 文档 数据 报告 表格等 的产生 里程碑的建立 质量的保证和变更的管理 软件工程方法为软件开发提供 如何做 的技术 它包括了项目计划 需求分析 系统设计 程序实现 测试与维护等一系列的任务 软件工程工具为过程和方法提供自动的或半自动的支持 这些软件工具被集成起来 建立起一个支持软件开发的系统 称之为计算机辅助软件工程 CASE ComputerAidedSoftwareEngineering CASE集成了软件 硬件和一个存放开发过程信息的软件工程数据库 形成了一个软件工程环境 过程 方法 工具 17 软件工程框架 可 用 性 性 性 确 正 合 算 选取适宜的开发模型 采用合适的设计方法 提供高质量的工程支持 重视软件工程的管理 基本过程 原则 目标 过 程 支持过程 组织过程 18 软件工程与一般工程的差异 软件是逻辑产品而不是实物产品软件的功能依赖于硬件和软件的运行环境以及人们对它的操作软件设计的复杂性软件特征 功能的多样性实现的多样性能见度低软件结构合理性差智力密集及知识产权保护 19 软件工程知识结构 2001年5月ISO IECJTC1 ISO和IEC的第一联合技术委员会 发布了 SWEBOK指南V0 95 试用版 GuidetotheSoftwareEngineeringBodyofKnowledge 简称SWEBOK SWEBOK把软件工程学科的主体知识分为10个知识领域 20 软件工程知识结构 软件需求软件设计软件构造软件测试软件维护软件配置管理软件工程管理软件工程过程软件工程工具和方法软件质量 21 软件工程 课程与其它软件专业课的区别 1 立足于系统的整体 2 讲授系统分析 系统设计 测试及维护的理论和方法 3 构筑一个软件系统 实践软件开发全过程 22 软件工程 课程教学的目标 转变对软件的认识 上升程序系统转变思维定式 上升程序员系统工程师 系统分析员 工程化训练 23 系统分析员的地位 用户 分析员 程序员 24 一个好的工业 应有一套良好的标准来配套 软件的工业化生产过程应具备的特点 明确的工作步骤详细具体的规范化文档明确的质量评价标准 25 软件产品的标准化 软件开发过程的标准化 26 软件工程技术的两个明显特点 强调规范化强调文档化 27 3 1 2软件生命周期 一 定义 SoftwareLifeCycle 软件产品从提出 实现 使用维护到停止使用的过程称为软件生命周期 软件生命周期可以划分为软件定义 软件开发和软件运行维护三个时期 每个时期又进一步划分成若干个阶段 28 概要设计 可行性研究与计划制定 需求分析 定义阶段 详细设计 实现 测试 使用 开发阶段 维护 运行维护阶段 退役 确定开发目标和总的要求 给出功能 可靠性等可能方案 制定实施计划 对软件需求进行分析并给出详细定义 编写软件规格说明书及初步的用户手册 提交评审 给出软件的结构 模块和功能的划分等 确定算法 编写概要设计 详细设计说明书和测试计划初稿 源程序编码 把软件设计转换成计算机可以接受的程序代码 编写用户手册 操作手册和单元测试计划 将已交付的软件投入运行 并在运行使用中不断地维护 根据新提出的需求进行必要而且可能的扩充和删改 29 只考虑编写程序 涉及整个软件生存周期 扩展到 软件工作的范围 30 在实践中 软件开发并不总是按照计划 分析 设计 实现 测试 集成 交付 维护等顺序来执行的 即各个阶段是可以重叠交叉的 整个开发周期经常不是明显地划分为这些阶段 而是分析 设计 实现 再分析 再设计 再实现等迭代执行 注意 31 32 软件开发的基本策略 一 复用复用就是利用某些已开发的 对建立新系统有用的软件元素来生成新的软件系统 软构件 SoftwareComponent 具有一定集成度并可以重复使用的软件组成单元 软件复用就是直接使用已有的软构件 即可组装 或加以合理修改 成新的系统 而可以不必每次从零做起 33 可重用部件组装模型 系统A的软件构成 系统C的软件构成 系统B的软件构成 可重用部件 可重用部件 34 复用优点 降低了软件的成本 提高了生产率而且新系统也具有较高的质量 使用构件开发软件的过程 35 二 分而治之 分而治之是指把大而复杂的问题分解成若干个简单的小问题 然后逐个解决 诸如软件的体系结构设计 模块化设计都是分而治之的具体表现 软件开发的基本策略 36 优化工作是十分复杂的 有时很难实现所有目标的优化 这时就需要 折中 策略 软件的折衷策略是指通过协调各个质量因素 实现整体质量的最优 软件折中的重要原则是不能使某一方损失关键的职能 更不可以象 舍鱼而取熊掌 那样抛弃一方 优化 为了提高软件质量 程序员会不断改进软件中的算法 数据结构和程序组织 三 优化与折中 软件开发的基本策略 37 软件开发的各阶段的成本比例 38 软件工程基本概念补充习题讲解 1 软件开发的结构化生命周期方法将软件生命周期划分成 A 定义 开发 运行维护B 设计阶段 编程阶段 测试阶段C 总体设计 详细设计 编程调试D 需求分析 功能定义 系统设计2 在软件生命周期中 能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 A 概要设计B 详细设计C 可行性分析D 需求分析3 下面不属于软件工程的3个要素的是 A 工具B 过程C 方法D 环境4 软件是一种 A 程序B 数据C 逻辑产品D 物理产品5 下列描述中正确的是 等级考试题 A 软件工程只是解决软件项目的管理问题 B 软件工程主要解决软件产品的生产率问题 C 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D 软件工程只是解决软件开发中的技术问题 39 3 2结构化分析方法 3 2 1需求分析与需求分析方法 需求阶段是软件开发的关键阶段 需求分析的任务 准确地定义未来系统的目标 确定为了满足用户的需求系统必须做什么 用规范的形式准确地表达用户的需求 40 需求分析阶段的工作 四方面 需求获取 确定系统各方面需求 全面地提炼出系统的功能性与非功能性需求 需求分析 编写需求规格说明书 需求审评 对获取的需求分析和综合 给出系统解决方案和逻辑模型 为用户 设计人员的交流提供方便 还可作为控制软件开发进程的依据 复审需求分析阶段的工作 验证需求文档的一致性 可行性等 41 思考 涉及的几个问题 如何定义系统需求 如何识别 获取需求 你能够采取何种手段与用户进行交流沟通 何为需求建模 你如何理解模型与建模 42 清楚地理解所要解决的问题完整地获取用户需求 需求获取的目的 43 需求获取面临的挑战 1 问题空间理解 2 人与人之间的通信 3 需求的不断变化 44 某出版社系统调查表 45 某出版社系统调查表 46 需求获取的内容 用户需求分类 1 功能性需求 定义了系统做什么 描述系统必须支持的功能和过程 2 非功能性需求 技术需求 定义了系统工作时的特性 描述操作环境和性能目标 47 需求分析的步骤 当前系统 目标系统 物理模型 逻辑模型 逻辑模型 物理模型 模型化 抽象化 具体化 实例化 怎么做 做什么 当前系统 目标系统 需求定义 48 需求分析过程示意 学生 1 通过对现实环境的调查 获得当前系统的物理模型 学生 购书申请 购书单 发票 领书单 书 107张 教务科 206王 会计室 206李 出纳员 303赵 教材科 学生购买教材的物理模型 49 需求分析过程示意 2 去掉具体模型中的非本质因素 抽象出当前系统的逻辑模型 学生购买教材的逻辑模型 学生 学生 购书申请 购书单 发票 领书单 书 审查有效性 开发票 开领书单 发书 50 需求分析过程示意 3 分析当前系统与目标系统的差别 建立目标系统的逻辑模型 计算机售书系统的逻辑模型 学生 学生 购书单 发票 领书单 审查并开发票 开领 书单 无效书单 51 需求分析的方法 结构化分析 传统建模方法 面向对象分析 52 计算机世界 现实世界 影射 53 计算机世界 现实世界 结构化开发方法 结构化分析 结构化设计 结构化编程 OOA OOD OOP 面向对象开发方法 54 3 2 2结构化分析方法 一 结构化分析方法 StructureAnalysis SA 1 定义 是面向数据流进行需求分析的方法 采用自顶向下 逐层分解 建立系统的处理流程 以数据流图和数据字典为主要工具 建立系统的逻辑模型 办理取款手续的数据流图 55 通过对用户的调查 以软件的需求为线索 获取当前系统的具体模型 去掉具体模型中非本质因素 抽象出当前系统的逻辑模型 根据计算机的特点分析当前系统与目标系统的差别 建立目标系统的逻辑模型 完善目标系统并补充细节 写出目标系统的软件需求规格说明 结构化分析的主要步骤 56 二 结构化分析方法使用的常用工具 数据流图 DFD DataFlowDiagram 数据字典 DD DataDictionary 判定树判定表 3 2 2结构化分析方法 1 数据流图 DFD DataFlowDiagram 1 作用 从数据传递和加工的角度 在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程 为系统建立逻辑模型 57 储户 检验 付款 登录 存折 帐卡 取款信息 办理取款手续的DFD图 检验不合格 现款 付款信息 取款单 存折 58 注意 数据流图与程序流程图中的箭头表示的内容相同么 数据流图中的箭头表示的是数据流 程序流程图中的箭头表示的是控制流 两者有本质不同 不要混淆 59 1 数据流图 DFD DataFlowDiagram 1 作用 二 结构化分析方法使用的常用工具 3 2 2结构化分析方法 2 数据流图中的基本图形符号意义 60 可以是数据库文件或任何形式的数据组织 数据加工 转换数据流的处理过程 外部实体 表示数据的源点或终点 即系统外部的实体 数据流 在转换之间有向流动的数据项或数据集合 数据存储文件 箭头向内则表示写入文件或查询文件 箭头向外则表示从文件中读取数据或得到查询结果 61 数据流与数据加工之间的关系 62 数据流图的层次结构 为了表达数据处理过程的数据加工情况 需要采用层次结构的数据流图 按照系统的层次结构进行逐步分解 并以分层的数据流图反映这种结构关系 能清楚地表达和容易理解整个系统 在多层数据流图中 顶层流图仅包含一个加工 它代表被开发系统 它的输入流是该系统的输入数据 输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图 它处在最底层中间层流图则表示对其上层父图的细化 它的每一加工可能继续细化 形成子图 63 分层的数据流图 64 输入信息 输出信息 输入信息 输出信息 输出信息 65 结构化分析方法步骤示例 商店业务处理系统 首先确定系统的输入和输出根据商店业务 画出顶层数据流图 以反映最主要业务处理流程 66 结构化分析方法步骤示例 商店业务处理系统 顶层数据流图 67 结构化分析方法步骤示例 商店业务处理系统 经过分析 商店业务处理的主要功能应当有销售 采购 会计三大项 主要数据流输入的源点和输出终点是顾客和供应商 然后从输入端开始 根据商店业务工作流程 画出数据流流经的各加工框 逐步画到输出端 得到第一层数据流图 68 第一层数据流图 69 加细每一个加工框销售细化 70 采购细化 71 考务处理系统功能 1 对考生送来的报名单进行检查 2 对合格的报名单编好准考证号后将准考证送给考生 并将汇总后的考生名单送给阅卷站 3 对阅卷站送来的成绩单进行检查 并根据考试中心制定的合格标准审定合格者 4 制作考生通知单 含成绩及合格 不合格标志 送给考生 5 按地区进行成绩分类统计和试题难度分析 产生统计分析表 72 考务处理系统的分层DFD 略过 73 顶层数据流图 不合格报名单 报名单 准考证 考生通知单 成绩清单 合格标准 错误成绩清单 考生名单 统计分析表 略过 74 报名单 准考证 不合格报名单 考生通知单 统计分析表 1层数据流图 合格标准 考生名单 略过 75 2层数据流图 a 报名单 准考证 不合格报名单 考生名单 合格报名单 略过 76 2层数据流图 b 检查成绩清单 2 1 审定合格者 2 2 考生名册 正确成绩清单 制作通知单 2 3 分析统计成绩 2 4 分析试题难度 2 5 试题得分清单 考生通知单 难度分析表 合格标准 分类统计表 成绩清单 错误成绩清单 经审定的成绩清单 略过 77 2 数据字典 1 定义是所有与系统相关的数据元素的一个有组织的列表 以及精确 严格的详细定义 2 作用对DFD中出现的被命名的图形元素的确切解释 数据词典与数据流图配合 能清楚地表达数据处理的要求 二 结构化分析方法使用的常用工具 3 2 2结构化分析方法 78 2 数据字典 二 结构化分析方法使用的常用工具 3 2 2结构化分析方法 3 数据字典的组成数据项 是数据的最小单位 数据结构 是若干数据项的有意义的集合 数据流 可以是数据项 也可以是数据结构 表示某一个处理过程的输入或输出 数据存储 处理过程中存取的数据 常常是手工凭证 手工文档或计算机文件 处理过程 79 4 数据字典定义符号 与 x a b 则表示x由a和b组成 x a b 则表示x由a或由b组成 或 x a 则表示x由0个或多个a组成 表示在两个 之间的内容为词条的注释 m n 重复 x 3 a 8 则表示x中至少出现3次a 最多出现8次 注释符 x a 则表示a在x中出现 也可不出现 x 1 9 x可取1到9中任意一个值 连接符 80 某程序设计语言规定 用户说明的标识符是长度不超过8个字符的字符串 其中第一个字符必须是字母字符 随后的字符既可以是字母字符也可以是数字字符 标识符 字母字符 字母数字串字母数字串 0 字母或数字 7字母或数字 字母字符 数字字符 数据字典中定义数据例 81 例 若数据流图中有 员工登记单 数据存储文件 则在数据字典中此条目可描述为 员工登记单 员工编号 姓名 职务 聘用日期员工编号 0001 9999 姓名 1 字母 8职务 5 字母 20聘用日期 年 月 日年 00 99 月 01 12 日 01 31 82 存折格式 83 存折 户名 所号 帐号 开户日 性质 印密 1 存取行 50户名 2 字母 24所号 001 999 帐号 00000001 99999999 开户日 年 月 日性质 1 6 注 1 表示普通户 5 表示工资户等印密 0 注 印密在存折上不显示存取行 日期 摘要 支出 存入 余额 操作 复核 84 购书单 发票 领书单 审查并开发票 开领书单 无效书单 学生 1 2 各班学生用书表 举例 学生 教材存量表 85 数据流条目说明举例 数据流名 购书单别名 无简述 学生购书时填写的项目来源 学生去向 加工1 审查并开发票 组成 学号 姓名 书号 数量 数据流量 1000次 周高峰值 开学期间1000次 天 86 3 判定树使用判定树进行描述时 应分清哪些是判定的条件 哪些是判定的结论 并找出判定条件之间的从属关系 并列关系 选择关系 根据它们构造判定树 优点 更加直观 易于理解和使用 二 结构化分析方法使用的常用工具 3 2 2结构化分析方法 87 检查发货单 金额 500 金额 500 欠款 60天 不发出批准书 欠款 60天 发货单 发出批准书 欠款 60天 发出批准书 发货单及赊欠报告 欠款 60天 发出批准书 发货单 以 检查发货单 为例 88 用判定树表示计算行李费的算法 89 4 判定表 1 使用条件 当数据流图中的加工要依赖于多个逻辑条件的取值时 该加工的一组动作是由于某一组条件取值的组合而引发的 使用判定表描述比较适宜 2 判定表的组成 四部分 基本条件 各种可能的条件条件项 各种可能的条件组合基本动作 所有的操作动作项 对应的条件组合下所选的操作 二 结构化分析方法使用的常用工具 3 2 2结构化分析方法 90 91 以 检查发货单 为例 92 某学校对教职工拟定奖励策略如下 1 高级职称且教学评估优秀的奖励1000元 教学效果评估合格的奖励800元 2 中级职称且教学评估优秀的奖励800元 教学效果评估合格的奖励500元 3 初级职称且教学评估优秀的奖励500元 要求画出奖励策略的判断表 举例 93 2020 3 20 94 3 2 2结构化分析方法补充习题讲解 1 在软件生命周期中 能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 A 概要设计B 详细设计C 可行性研究D 需求分析2 需求分析阶段的任务是确定 A 软件开发方法B 软件开发工具C 软件开发费用D 软件系统功能3 软件需求分析阶段的工作 可以分为四个方面 需求获取 需求分析 编写需求规格说明书以及 A 阶段性报告B 需求评审C 总结D 都不正确4 在结构化方法中 用数据流程图 DFD 作为描述工具的软件开发阶段是 A 可行性分析B 需求分析C 详细设计D 程序编码 95 5 数据流图用于抽象描述一个软件的逻辑模型 数据流图由一些特定的图符构成 下列图符名标识的图符不属于数据流图合法图符的是 A 控制流B 加工C 数据存储D 源和潭6 下列工具中属于需求分析常用工具的是 A PADB PFDC N SD DFD7 数据字典是对数据定义信息的集合 它所定义的对象都包含在 A 程序框图B 数据流图C 软件结构D 方框图8下列不属于结构化分析的常用工具的是 A 数据流图B 数据字典C 判定树D PAD图9 在数据流图 DFD 中 带有名字的箭头表示 A 控制程序的执行顺序B 模块之间的调用关系C 数据的流向D 程序的组成成分10 结构化分析方法的一个重要思想是 A 自顶向下 逐层抽象B 自底向上 逐层抽象C 自顶向下 逐层分解D 自底向上 逐层分解 96 11 数据字典是各类数据描述的集合 它通常包括5个部分 即 数据项 数据结构 数据流 和处理过程 97 1 定义 软件需求规格说明书 SRS SoftwareRequirementSpecification 是需求分析阶段的最后成果 软件开发的重要文档之一 它对所开发的软件的功能 性能 用户界面及运行环境等进行详细说明 2 作用 便于用户与开发人员进行理解与交流 反映出问题的结构 可以作为软件开发的基础和依据 作为测试和验收的依据 3 特点 正确而无歧义性 简明易懂 可修改性 可验证性等 3 2 3软件需求规格说明书 98 主要包括以下的内容 SRS 对软件系统所必须解决的问题作出详细说明 描述为解决用户问题所需要的每一项功能的过程细节 说明系统应达到的性能 运行时间 内存容量等 包括与该软件有关的全部参考文献 列表数据 算法的详细说明 框图 图表和其他材料 从系统的角度描述软件的目标和任务 99 1 下列叙述中 不属于软件需求规格说明书的作用是 便于用户与开发人员进行理解与交流 B 反映出问题的结构 可以作为软件开发的基础和依据 C 作为测试和验收的依据 便于开发人员进行需求分析2 需求分析阶段的最后成果是 是软件开发的重要文档之一 3 软件需求规格说明书缩写是 100 3 3结构化设计方法 3 3 1软件设计过程及原则 软件需求 解决 做什么 软件设计 解决 怎么做 软件设计的任务 映射 问题结构 软件需求 软件结构 从软件需求规格说明书出发 形成软件的具体设计方案 101 3 3结构化设计方法 一 软件设计内容软件设计定义 软件设计是把软件需求 定义阶段 转换为软件的具体设计方案 即划分模块结构的过程 是软件开发阶段最重要的步骤 3 3 1软件设计过程及原则 102 软件设计划分 3 3结构化设计方法 3 3 1软件设计过程及原则 一般过程 是一个迭代过程 先进行高层次结构设计 再进行低层次过程设计 穿插数据设计和接口设计 103 软件设计过程 编码 测试 设计 软件开发阶段的信息流 3 3结构化设计方法 3 3 1软件设计过程及原则 104 3 3结构化设计方法 二 软件设计原则 3 3 1软件设计过程及原则 为了开发出高质量低成本的软件 在软件开发过程中必须遵循下列软件工程原则 1 抽象 abstraction 抽取事物最基本的特性和行为 忽略非基本的细节 采用分层次抽象的办法可以控制软件开发过程的复杂性 有利于软件的可理解性和开发过程的管理 105 2 信息隐藏 informationhiding 将模块中的软件设计决策封装起来的技术 按照信息隐藏的原则 系统中的模块应设计成 黑箱 模块外部只能使用模块接口说明中给出的信息 如操作 数据类型等等 由于对象或操作的实现细节被隐藏 软件开发人员便能够将注意力集中于更高层次的抽象上 3 模块化 modularity 使程序有许多个逻辑上相对独立的模块组成 模块 module 是程序中逻辑上相对独立的单元 模块的大小要适中 高内聚 低耦合 106 学生成绩管理 系统的模块化设计 抽象出的本质特征是录入 抽象出的本质特征是统计 底层模块 完成具体的功能 自顶向下 107 4 一致性 consistency 整个软件系统 包括文档和程序 的各个模块均应使用一致的概念 符号和术语 程序内部接口应保持一致 软件与硬件接口应保持一致 系统规格说明与系统行为应保持一致 实现一致性需要良好的软件设计工具 如数据字典 数据库 文档自动生成与一致性检查工具等等 设计方法和编码风格的支持 108 1 信息隐蔽的概念与下述哪一种概念直接相关 A 软件结构定义B 模块独立性C 模块类型划分D 模拟耦合度2 下面不属于软件设计原则的是 A 抽象B 模块化C 自底向上D 信息隐蔽3 为了使模块尽可能独立 要求 05年4月等级考试 A 模块的内聚程度要尽量高 且各模块间的耦合程度要尽量强B 模块的内聚程度要尽量高 且各模块间的耦合程度要尽量弱C 模块的内聚程度要尽量低 且各模块间的耦合程度要尽量弱D 模块的内聚程度要尽量低 且各模块间的耦合程度要尽量强4 下列描述中正确的是 05年4月等级考试 A 程序就是软件B 软件开发不受计算机系统的限制C 软件既是逻辑实体 又是物理实体 D 软件是程序 数据与相关文档的集合5 两个或两个以上模块之间关联的紧密程度称为A 耦合度B 内聚度C 复杂度D 数据传输特性 109 3 3 2结构化设计方法 1 软件设计的方法 开发阶段设计软件时所使用的方法 2 软件设计的方法的种类 110 3 3 2结构化设计方法 3 结构化设计方法 SD StructuredDesign 结构化设计方法是基于模块化 自顶向下细化 结构化程序设计等程序设计技术基础发展起来的 基本思想 将软件设计成由相对独立且具有单一功能的模块组成的结构 分为概要设计和详细设计两个阶段 结构化设计过程的概要设计阶段的描述工具是 结构图 SC StructureChart 111 概要设计也称为结构设计或总体设计 主要任务是把系统的功能需求分配给软件结构 形成软件的模块结构图 如图 3 3 2结构化设计方法 112 3 3 2结构化设计方法 概要设计的基本任务设计软件系统结构 划分功能模块 确定模块间调用关系 数据结构及数据库设计 实现需求定义和规格说明过程中提出的数据对象的逻辑表示 编写概要设计文档包括概要设计说明书 数据库设计说明书 集成测试计划等 概要设计文档评审 对设计方案是否完整实现需求分析中规定的功能 性能的要求 设计方案的可行性等进行评审 113 使程序的结构尽可能反映要解决的问题的结构 把需求分析得到的数据流图DFD变换为系统结构图 SC 结构化设计的目的与任务 3 3 2结构化设计方法 114 1 在结构化方法中 软件功能分解属于下列软件开发中的阶段是 A 详细设计B 需求分析C 总体设计D 编程调试2 从工程管理角度 软件设计一般分为两步完成 它们是 06 9月等级 A 概要设计与详细设计B 数据设计与接口设计C 软件结构设计与数据设计D 过程设计与数据设计3 下列选项中不属于软件生命周期开发阶段任务的是 软件测试 概要设计 软件维护 详细设计 115 4 概要设计工具 结构图 SC StructureChart 作用 软件结构设计工具 反映系统的功能实现以及模块与模块之间的联系与通信 即反映了系统的总体结构 3 3 2结构化设计方法 目标系统的DFD 目标系统的SC 概要设计或结构设计SD 116 结构图基本组成成分 模块 数据和调用 结构图基本图符 结构图基本形式 117 A 模块调用关系 B 被调用模块 A 查询学生 B 查找学生记录 数据信号 学号 查找成功信号 模块间接口的表示 结构图示例 118 软件结构度量术语 深度 宽度 扇出 扇入 模块的层数 同一层最大模块数 一个模块直接调用的模块数 调用一个给定模块的模块个数 119 结构图的基本术语 深度 5 宽度 8 宽度 同一层模块的最大模块数 扇出 一个模块直接调用的其他模块数目 扇入 调用一个给定模块的模块个数 被调用的次数 好的软件结构应该是顶层扇出比较多 中层扇出较少 底层扇入多 深度 模块结构的层次数 控制的层数 120 基本术语 121 以下是一个软件系统的分层模块结构图 请分析后将正确的答案填入空白处 1 该结构图的深度为 2 该结构图的宽度为 3 扇入为2的模块有 4 扇入为3的模块有 5 扇出为1的模块有 6 扇出为2的模块有 7 扇出为3的模块有 122 5 数据流图到结构图的变换 结构化设计方法任务 把需求分析得到的数据流图变换为结构图 典型的数据流类型 变换型和事务型 变换型 信息沿输入通路进入系统 同时由外部形式变换成内部形式 进入系统的信息通过变换中心 经加工处理以后再沿输出通路变换成外部形式离开软件系统 关键词 输入 变换 输出 123 例图 取得数据C 变换数据C D 输出数据D 输入 中心变换 输出 变换型数据流结构的组成 主控模块 输入数据 输出数据 C D C D 交换中心 变换型数据流系统结构图 124 举例 125 举例 126 5 数据流图到结构图的变换 事务型 关键词 接受 分派 输出 127 映射 逻辑结构 系统结构 128 举例 129 举例 130 一般说来 如果数据流不具有显著的事务特点 最好使用变换分析 变换型 事务型 131 面向数据流设计方法的实施要点与设计过程 分析 确认数据图的类型 区分是事务型还是变换型 说明数据流的边界 将数据流图映射为程序结构图 事务流 区分事务中心和数据接收通路 映射成事务结构变换流 区分输出和输入分支 映射成变换结构 对产生的结构细化和求精 132 6 详细设计及工具 详细设计的目的 为软件结构图 SC 中的每一个模块确定采用的算法 模块内数据结构 用某种选定的表达工具 如N S图等 给出清晰的描述 133 详细设计工具 详细设计的设计工具种类图形工具 程序流程图 PFD N S图 问题分析图 PAD图 表格工具 类似于判定表语言工具 过程设计语言 PDL 6 详细设计及工具 134 程序流程图 PFD ProgramFlowDiagram 特点 直观 清晰 易于掌握 用流程图来表示1 2 3 4 5 135 程序流程图的标准符号 136 程序流程图缺点 137 示例 138 盒图 N S图 为避免流程图在描述程序逻辑时的随意性与灵活性 1973提出用方框代替传统的程序流程图 通常也把这种图称为N S图 有5种的控制结构 139 盒图 N S图 为避免流程图在描述程序逻辑时的随意性与灵活性 1973提出用方框代替传统的程序流程图 通常也把这种图称为N S图 有5种的控制结构 用N S图来表示1 2 3 4 5 140 盒图具有以下特点 过程的作用域明确 盒图没有箭头 不能随意转移控制 容易区分全局变量和局部变量 容易表示嵌套关系和层次关系 强烈的结构化特征 141 问题分析图 PAD ProblemAnalysisDiagram 是继流程图和方框图之后 又一种描述详细设计的工具 有5种结构 选择 IFCThenP1ElseP2 双分支 多分支选择 Case型多分支While循环 当型循环Until循环 直到型循环 142 过程设计语言 PDL 用PDL表示的基本结构的常用词汇如下 顺序 无条件 IF THEN ELSE ENDIF循环 DOWHILW ENDDO循环 REPEATUNTIL ENDREPEAT分支 CASEOF WHEN SELECT WHEN SELECT ENDCASE PDL ProcedureDesignLanguage 143 示例 拼词检查程序 PROCEDUREspellcheckISBEGINsplitdocumentintosinglewordsloodupwordsindictionarydisplaywordswhicharenotindictionarycreateanewdictionaryENDspellcheck 144 1 在结构化方法中 软件功能分解属于下列软件开发中的阶段是 A 详细设计B 需求分析C 总体设计D 编程调试2 从工程管理角度 软件设计一般分为两步完成 它们是 06 9月等级 A 概要设计与详细设计B 数据设计与接口设计C 软件结构设计与数据设计D 过程设计与数据设计3 下列选项中不属于软件生命周期开发阶段任务的是 软件测试 概要设计 软件维护 详细设计4 信息隐蔽的概念与下述哪一种概念直接相关 A 软件结构定义B 模块独立性C 模块类型划分D 模拟耦合度 习题 145 5 下面不属于软件设计原则的是 A 抽象B 模块化C 自底向上D 信息隐蔽6 为了使模块尽可能独立 要求 05年4月等级考试 A 模块的内聚程度要尽量高 且各模块间的耦合程度要尽量强B 模块的内聚程度要尽量高 且各模块间的耦合程度要尽量弱C 模块的内聚程度要尽量低 且各模块间的耦合程度要尽量弱D 模块的内聚程度要尽量低 且各模块间的耦合程度要尽量强7 下列描述中正确的是 05年4月等级考试 A 程序就是软件B 软件开发不受计算机系统的限制C 软件既是逻辑实体 又是物理实体 D 软件是程序 数据与相关文档的集合8 两个或两个以上模块之间关联的紧密程度称为A 耦合度B 内聚度C 复杂度D 数据传输特性 146 9 在软件开发中 下面任务不属于设计阶段的是 A 数据结构设计B 给出系统模块结构C 定义模块算法D 定义需求并建立系统模型10 程序流程图 PFD 中的箭头代表的是 A 数据流B 控制流C 调用关系D 组成关系11 软件设计包括软件的结构 数据接口和过程设计 其中软件的过程设计是指 A 模块间的关系B 系统结构部件转换成软件的过程描述C 软件层次结构D 软件开发过程12 为了避免流程图在描述程序逻辑时的灵活性 提出了用方框图来代替传统的程序流程图 通常也把这种图称为 A PAD图B N S图C 结构图D 数据流图 147 13 在软件设计中 不属于过程设计工具的是 05 4 A PDLB PAD图 C N S图D DFD14 在程序结构图中 矩形用来表示 A 模块B 模块间的调用关系C 加工D 存储15 下面关于PDL不正确的说法是 A PDL描述处理过程怎么做B PDL只描述加工做什么C PDL也称为伪码D PDL的外层语法应符合一般程序设计语言常用的语法规则 148 1 在软件开发中 下面任务不属于设计阶段的是 A 数据结构设计B 给出系统模块结构C 定义模块算法D 定义需求并建立系统模型2 程序流程图 PFD 中的箭头代表的是 A 数据流B 控制流C 调用关系D 组成关系3 软件设计包括软件的结构 数据接口和过程设计 其中软件的过程设计是指 A 模块间的关系B 系统结构部件转换成软件的过程描述C 软件层次结构D 软件开发过程4 为了避免流程图在描述程序逻辑时的灵活性 提出了用方框图来代替传统的程序流程图 通常也把这种图称为 A PAD图B N S图C 结构图D 数据流图 149 5 在软件设计中 不属于过程设计工具的是 05 4 A PDLB PAD图 C N S图D DFD6 在程序结构图中 矩形用来表示 A 模块B 模块间的调用关系C 加工D 存储7 下面关于PDL不正确的说法是 A PDL描述处理过程怎么做B PDL只描述加工做什么C PDL也称为伪码D PDL的外层语法应符合一般程序设计语言常用的语法规则 150 3 4软件测试 3 4 1软件测试的目的与原则 软件测试是为了发现错误而执行程序的过程 或者说 软件测试是根据软件开发各阶段的规格说明和程序内部结构而精心设计的一批测试用例 即输入数据及预期的输出结果 并利用这些测试用例去运行程序 以发现程序错误的过程 为了发现尽可能多的缺陷 不是为了说明软件中没有缺陷 151 测试目的 可能地多发现程序中的错误 测试用例的选择原则 选择发现错误可能性大的数据 3 4软件测试 3 4 1软件测试的目的与原则 152 软件测试准则 六点 1 所有测试都应追溯到需求 2 严格执行测试计划 排除测试的随意性 3 充分注意测试中的群集现象 80 的缺陷聚集在20 的模块中 4 程序员应避免检查自己的程序 5 穷举测试不现实 6 妥善保存测试计划 测试用例 和最终分析报告等 153 功能没有实现或与规格说明不一致的问题是bug 不能工作 死机 没反应 的部分是bug 不兼容的部分是bug 边界条件未做处理是bug 界面 消息 提示 帮助不够准确是bug 屏幕显示 打印结果不正确也是bug 有时把尚未完成的工作也作为一个bug 什么是Bug 154 3 4 2软件测试方法 研究内容 如何用最少的测试用例集合来测试出程序中更多的潜在错误 关键技术 如何进行彻底的测试 如何设计测试用例等 测试分类 根据软件是否需要被执行 按照功能划分 静态测试动态测试 黑盒测试白盒测试 155 1 静态测试与动态测试 1 静态测试 包括代码检查 静态结构分析 代码质量度量等 可以由人工进行或软件工具自动进行 2 动态测试 设计一批测试用例 利用它们去运行程序 以发现程序错误的过程 测试用例 为测试设计的数据 由测试输入数据和与之对应的预期输出结果组成 156 也叫玻璃盒测试 结构测试或逻辑驱动测试 对软件的过程性细节做细致的检查 这一方法是把测试对象看作一个打开的盒子 它允许测试人员利用程序内部的逻辑结构及有关信息 来设计或选择测试用例 对程序所有逻辑路径进行测试 白盒测试是在程序内部进行 主要用于完成软件内部操作的验证 2 白盒测试 通过在不同点检查程序的状态 确定实际的状态是否与预期的状态一致 因此白盒测试又称为结构测试或逻辑驱动测试 白盒测试 157 白盒测试局限性 是穷举路径测试 贯穿程序独立路径数是天文数字 即使每条路径都经过了测试 仍可能有未发现错误 白盒测试的主要方法 逻辑覆盖测试 基本路线测试 白盒测试原则及测试用例 158 白盒测试用例设计 逻辑覆盖测试 以程序内部的逻辑结构为基础的测试用例设计技术 程序中的逻辑表示有 判断 分支 条件等几种表示方式 逻辑覆盖测试的标准 159 问题 若AND错写为OR 或X 1错写为X 1 则错误无法由上例测出 Testcase A 2 B 0 X 4 a b c d e 语句覆盖 Statementcoverage 每个语句至少执行一次 160 判定覆盖 Branchcoverage 在 的基础上 每个判定的每个分支至少执行一次 Testcases A 3 B 0 X 3 A 2 B 1 X 1 问题 若X 1错写为X 1 仍然无法被测出 a c b e d 161 条件覆盖 Conditioncoverage 在 的基础上 使每个判定表达式的每个条件都取到各种可能的结果 Testcases A 2 B 0 X 4 满足A 1 B 0 A 2 X 1 d b a c e A 1 B 1 X 1 满足A 1 B 0 A 2 X 1 真 真 真 真 假 假 假 假 162 条件覆盖 Conditioncoverage 在 的基础上 使每个判定表达式的每个条件都取到各种可能的结果 Testcases A 2 B 0 X 4 满足A 1 B 0 A 2 X 1 d b a c e A 1 B 1 X 1 满足A 1 B 0 A 2 X 1 163 条件覆盖 Conditioncoverage 在 的基础上 使每个判定表达式的每个条件都取到各种可能的结果 Testcases A 2 B 0 X 4 满足A 1 B 0 A 2 X 1 A 1 B 1 X 1 满足A 1 B 0 A 2 X 1 问 条件覆盖 判定覆盖 答 不一定 反例 A 2 B 0 X 1 A 1 B 1 X 2 d b a c e 164 判定 条件覆盖 同时满足判定覆盖和条件覆盖的要求 Testcases A 2 B 0 X 4 满足A 1 B 0 A 2 X 1 A 1 B 1 X 1 满足A 1 B 0 A 2 X 1 d b a c e 165 条件组合覆盖 每个判定表达式中条件的各种可能组合都至少出现一次 全部可能的条件组合为 A 1 B 0 A 1 B 0 A 1 B 0 A 1 B 0 A 2 X 1 A 2 X 1 A 2 X 1 A 2 X 1 Testcases A 2 B 0 X 4 TT A 2 B 1 X 1 FT A 1 B 0 X 2 FT A 1 B 1 X

温馨提示

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

评论

0/150

提交评论