软件测试教程课后答案-材料分析测试技术课后答案 周玉
《软件工程——理论与实践》(第 2 版) 习题答案习 题 答 案习题一答案 一、选择题1. 软件的主要特性是(A B C) 。A) 无形B ) 高成本C) 包括程序和文档D ) 可独立构成计算机系统2. 软件工程三要素是(B) 。A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D ) 过程、模型、方法3. 包含风险分析的软件工程模型是(A).A) 螺旋模型B ) 瀑布模型C) 增量模型D) 喷泉模型4. 软件工程的主要目标是(C) 。A ) 软件需求B ) 软件设计C ) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D) 。A ) BoochB ) UMLC) CoadD) OMT6。 软件危机的主要表现是(B D) 。A) 软件成本太高B ) 软件产品的质量低劣C) 软件开发人员明显不足D ) 软件生产率低下7。 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D ) 专家模型8。 软件工程的目标有(A B C) 。A) 易于维护B) 低的开发成本C) 高性能D ) 短的开发期9。
软件工程学的目的和意义是(A D) 。A ) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件 二、 判断题1。 软件就是程序,编写软件就是编写程序。(×)2 。 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。( ×)3. 结构化方法的工作模型是使用螺旋模型进行开发。(×)4 。 结构化方法和 OO 方法都是一种面向过程的软件开发方法.( ×)5 。 原型化开发方法包括生成原型和实现原型两个步骤。(×)6 。 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。(×)8. 软件工具的作用是为了延长软件产品的寿命. (×)9 。 软件工程过程应该以软件设计为中心,关键是编写程序。( ×)10 。 RCP 法与 RSP 法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而后者原型将被废弃。( √)1《软件工程——理论与实践》(第 2 版) 习题答案 三、简答题1。
软件产品的特性是什么?答: ● 软件是一种逻辑产品,具有无形性;● 软件产品的生产主要是研制;主要是脑力劳动;● 软件不存在磨损和老化问题,但存在退化问题;● 软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;● 软件具有 “复杂性 ”,其开发和运行常受到计算机系统的限制。2. 软件发展有几个阶段?各有何特征?答:① 程序设计阶段。硬件特征:价格贵、存储容量小、运行可靠性差。软件特征 :只有程序、程序设计概念,不重视程序设计方法。② 程序系统阶段。硬件特征 :速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长.软件特征 :程序员数量猛增,开发人员素质低。③ 软件工程阶段。硬件特征 :向超高速、大容量、微型化及网络化方向发展。软件特征:开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软 件危机。3. 什么是软件危机?其产生的原因是什么?答:“软件危机 " (Software Crisis )的出现是由于软件的规模越来越大,复杂度不断增加,软件需 求量增大 .而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的 需要 .致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折.软件危机 主要表现在两个方面:(1) 软件产品质量低劣,甚至开发过程就夭折。
(2) 软件生产率低,不能满足需要。4. 什么是软件过程?有哪些主要的软件过程模型?它们各有哪些特点?答 :软件过程是指在软件工具的支持下,所进行的一系列软件开发和进化的活动.软件过程模型是 对软件开发实际过程的抽象和简化,是描述软件开发过程中各种活动如何执行的模型,因此又称为软 件开发模型 .主要的软件过程模型有:瀑布模型、增量模型、螺旋模型、喷泉模型和基于知识的模型等.⑴瀑布模型是经典的软件开发模型,将软件开发活动中的各项活动规定为依线性顺序连接的若 干阶段,它简单易用,在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很 大的作用。但在软件开发实践中也逐渐暴露出它的缺点.它将一个充满回溯的软件开发过程硬性分割 为几个阶段 ,无法解决软件需求不明确或者变动的问题。⑵增量模型是一种非整体开发的模型。根据增量的方式和形式的不同,分为基于瀑布模型的渐 增模型和基于原型的快速原型模型.该模型具有较大的灵活性,适合于软件需求不明确、设计方案有 一定风险的软件项目。⑶螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。螺旋模型将开发过程分为几 个螺旋周期,每个螺旋周期可分为4 个工作步骤:制定计划、风险分析、实施工程、客户评估。
⑷喷泉模型用于采用对象技术的软件开发项目.它克服了瀑布模型不支持软件重用和多项开发 活动集成的局限性.喷泉模型使开发过程具有迭代性和无间隙性。软件开发过程有4 个阶段, 即分析、 系统设计、软件设计和实现。各阶段相互重叠,以分析为基础,资源消耗成塔形,从高层返回低层 无资源消耗。强调增量开发,是对象驱动的过程,反映了对象的开发和重用过程。⑸基于知识的模型也称为智能模型。通过领域的专家系统,可使需求说明更加完整、准确和无 二义性。通过软件工程知识和特定应用领域的知识和规则的应用来提供开发的帮助.2《软件工程——理论与实践》(第 2 版) 习题答案5 。 有哪些主要的软件开发方法?答:主要的软件开发方法有:结构化开发方法、原型化开发方法和面向对象的开发方法。6. 软件生存周期各阶段的主要任务是什么?答:软件生存周期按瀑布模型分为6 个阶段 :● 可行性研究与计划(确定系统的目标和规模,分析项目的可行性);● 需求分析与规格说明(明确系统的规格和要求);● 设计 (包括概要设计和详细设计,将系统分解为模块);● 编程 (用程序语言实现每个模块,简单容易);● 测试(发现并改正错误,分为模块测试、集成测试和系统联调三级);● 运行维护 (扩充功能、纠错等) 。
7. 原型化方法的核心是什么?它具有哪些特点?答:原型化方法的核心是,花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。 强调软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求。它是一个循 环的模型。速成原型法按以下步骤循环执行:① 快速分析。 ② 构造原型。 ③ 运行和评价原型。④ 修改与改进。习题二答案 一、 选择题1. 需求分析的主要目的是(B C )。A ) 系统开发的具体方案B ) 进一步确定用户的需求C) 解决系统是“做什么”的问题D) 解决系统是“如何做”的问题2. 需求分析的主要方法有(C D).A) 形式化分析方法B ) PAD 图描述C) 结构化分析 (SA) 方法D) OOA 法3. 面向对象的分析方法主要是建立三类模型,即(D )。A ) 系统模型、 E— R 模型、应用模型B ) 对象模型、动态模型、应用模型C ) E—R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型4 。 SA 法的主要描述手段有(B )。A) 系统流程图和模块图B) DFD 图、数据词典、加工说明C) 软件结构图、加工说明D ) 功能结构图、加工说明5. 画分层 DFD 图的基本原则有(A C D) 。
A ) 数据守恒原则B ) 分解的可靠性原则C ) 子、父图平衡的原则D) 数据流封闭的原则6. 在 E-R 模型中,包含的基本成分是(C).A ) 数据、对象、实体B) 控制、联系、对象3《软件工程——理论与实践》(第 2 版) 习题答案C ) 实体、联系、属性D ) 实体、属性、联系7. 画 DFD 图的主要目的是( A D) 。A) 作为需求分析阶段用户与开发者之间交流信息的工具B) 对系统的数据结构进行描述C ) 对目标系统的层次结构进行描述D) 作为分析和设计的工具8。 数据字典是数据流图中所有元素的定义的集合,一般由 (C) 四类条目组成。A) 数据说明条目、控制流条目、加工条目、数据存储条目B) 数据流条目、数据项条目、文件条目、加工条目C ) 数据源条目、数据流条目、数据处理条目、数据文件条目D) 数据流条目、数据文件条目、数据池条目、加工条目9. 在需求分析阶段主要采用图形工具来描述的原因是(B C )。A ) 图形的信息量大,便于描述规模大的软件系统B ) 图形工具能够极好地概括描述一个系统的信息,比文字叙述能够更好地表达重要的细节C ) 图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用户之间达成一致的需求D) 图形比文字描述简单、形象 二、 判断题1。
在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×)2. SA 法是面向数据流,建立在数据封闭原则上的需求分析方法。( √)3. 需求管理主要是对需求变化的管理,即如何有效控制和适应需求的变化。(√)4. 在面向对象的需求分析方法中,建立动态模型是最主要的任务.( ×)5。 加工小说明是对系统流程图中的加工进行说明。(×)6。 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。( ×)7。 需求分析的主要方法有SD 法、OOA 法及 HIPO 法等 .(×)8. 分层的 DFD 图可以用于可行性分析阶段,描述系统的物理结构.(×)9. 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E— R 图。( √)10. 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性.(√) 三、 简答题1。 需求工程包括哪些基本活动?各项基本活动的主要任务是什么?答:需求工程过程包括如下主要活动:⑴ 获取需求。深入实际,在充分理解用户需求的基础上,获取足够多的问题领域的知识,积极与 用户交流, 捕捉、 分析和修订用户对目标系统的需求,并提炼出符合解决领域问题的用户需求.需求获 取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等。
⑵ 需求分析与建模。 对已获取的需求进行分析和提炼,进行抽象描述, 建立目标系统的概念模型, 需求概念模型的要求包括实现的独立性:不模拟数据的表示和内部组织等;需求模拟技术又分为企业模 拟、功能需求模拟和非功能需求模拟等。进一步对所建立的模型(原型)进行分析。需求模型的表现 形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。⑶ 需求规格说明。对需求模型进行精确的、形式化的描述,为计算机系统的实现提供基础。⑷ 确认需求。以需求规格说明为基础输入,通过符号执行、模拟或快速原型等方法,分析和验证 需求规格说明的正确性和可行性,确保需求说明准确、完整地表达系统的主要特性,就是对需求规格4《软件工程——理论与实践》(第 2 版) 习题答案 说明与用户达成一致。其主要任务是冲突求解,包括定义冲突和冲突求解两方面。常用的冲突求解方 法有 :协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制.⑸ 需求管理。在整个需求工程过程中,贯穿了需求管理活动。需求管理主要包括跟踪和管理需求 变化, 支持系统的需求演进。由于客户的需要总是不断(连续)增长的,但一般的软件开发又总是落后 于客户需求的增长,如何管理需求的进化(变化)就成为软件管理的首要问题。
对于传统的变化管理 过程来说, 其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法,即产品线 方法 .多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。 进化需求是十分必要的。2 .简述抽取需求的主要方法,并比较它们的特点.⑴面谈法。这是一种重要而直接简单,随时可使用的发现和获取需求的方法。面谈的对象主要有 用户和领域专家:与用户面谈主要了解和提取需求,与领域专家面谈,是一个对领域知识的学习和转 换过程。使用该方法时应注意面谈前要充分准备,面谈后认真分析总结,同时注意掌握面谈的人际交 流技巧 ,才能取得好的效果.⑵问卷法调查法。通过采用向用户发问卷调查表的方式,达到彻底弄清项目需求的一种需求获 取方法。这是一种从多个用户处收集需求信息的有效方式,是对面谈法的补充。⑶会议讨论法。所谓会议讨论法,是指开发方和用户方召开若干次需求讨论会议,达到彻底弄 清项目需求的一种需求获取方法。这种方法适合于开发方不清楚项目需求的情况.⑷原型法。对于某些试验性、探索性的项目,更是难于得到一个准确、无二义性的需求.而原型 化方法 (Prototyping Method )是获取这一类项目需求的有效方法。
⑸面向用例的方法。分析建立“用例”的过程,也就是提取需求的过程.在实际应用中,常常将以上方法进行综合应用。3 。 客户的需要总是不断地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理 需求的进化就成为软件进化的首要问题。请说明需求变更的管理过程。答 :需求变更的管理是需求管理的核心内容.其主要任务是对系统需求变更进行跟踪和控制。对传 统的变化管理过程来说,其基本内容包括软件配置、软件基线和变更审查等。目前推出的新的管理方 法有软件家族法,即软件产品线方法及多视点方法等。下图描述了需求变更的管理过程。识别出修正后的问题问题分析和变更分析和的需求变更实现变更描述成本计算4. M 公司的软件产品以实验型的新软件为主.用瀑布模型进行软件开发已经有近十年了,并取得 了一些成功。 若你作为一名管理人员刚加入M 公司,你认为快速原型法对公司的软件开发更加优越, 请向公司副总裁写一份报告阐明你的理由.切记:副总裁不喜欢报告长度超过一页。参考答案提示:应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。根据快速原型法的特点,说明它特 别适合于开发探索型、实验型的软件。5。 如何画分层数据流图?有哪些基本原则?答:总的原则是:至顶而下,逐层分解 (画分层数据流图) 。
逐层分解的画法可以控制每一层的复 杂度。顶层:将整个系统作为一个加工,描述系统边界(输入与输出) 。中间层:将某个加工分解为一组子加工,其中的子加工还需进一步分解。底层:由不再进行分解的基本加工组成.5《软件工程——理论与实践》(第 2 版) 习题答案画分层数据流图的基本原则有:①数据守恒与数据封闭原则。② 加工分解的原则。③ 子图与 父图 平衡“ " 的原则。 ④ 合理使用文件的原则。6 。 加工小说明有哪些描述方法?它们各有何优缺点?为什么不采用自然语言进行描述?答 :主要的描述方法有三种;结构化语言、判定表和判定树。● 结构化语言: 介于自然语言和形式语言(如谓词逻辑) 之间的的一种半形式语言,它是自然 语言的一个受限制的子集。是在自然语言的基础上加上一些约束,一般分为两层结构:外层语法较 具体,为控制结构(顺序、选择、循环);内层较灵活,表达“做什么”.常用结构化英语或结构化汉语表示,精确、简明扼要、文体灵活。结构化语言特点:简单软件测试教程课后答案,易学, 少二义性,但不好处理组合条件。● 判定表:适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作.判定表是一种二维 的表格,常用于较复杂的组合条件。
通常由四部分组成,如教材表2— 2 所示 .对用结构化语言不易 处理的较复杂的组合条件问题软件测试教程课后答案,可使用判定表。● 判定树:本质上与判定表相同,图形表示更易于理解.描述一般组合条件较清晰,但不易输入 计算机 .7. 考察下图中子图、父图的平衡关系.图 1图 2参考答案:⑴ 显然,图 1 中子图与父图不平衡。⑵ 图 2 中,如果有如下数据条目:订货单 =客户 +账号 +数量则子、父图平衡.8. 画出银行取款过程的用例图。问题描述为 :储户用存折取款,首先填写取款单,根据 “ 银行卡” 中的信息检验取款单与存折,如有问题 ,将问题反馈给储户,否则, 登录 “储户存款数据库”,修改相应数 据,并更新“银行卡”,同时发出付款通知,出纳向储户付款。参考答案:分析所给出的需求,确定角色为:储户、存款数据库、存折、出纳。用例为:填写取款单、验证 取款单与存折、银行卡管理、数据库管理、付款。6《软件工程——理论与实践》(第 2 版) 习题答案付款填写取款单储户出纳验证取款单与存折数据库管理