软件工程 习题及答案 第九章

合集下载

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。

课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。

下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。

第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。

2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。

3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。

每个模型都有其独特的特点和适用场景。

4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。

5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。

第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。

2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。

3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。

4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。

第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。

2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。

3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。

软件工程 第九章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

软件工程 第九章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

第九章测验一、单选题(共40.00分)1. 以下哪项不是选择面向对象程序设计语言时需着重考察的技术特点?()A. 支持类与对象概念的机制B. 实现整体-部分结构的机制C. 实现一般-特殊结构的机制D. 实现单入口-单出口结构的机制正确答案:D2. 设计模型中的一条由类A的某个实例向类B的某个实例发送的同步消息,在实现时一般映射为()。

A. 类A的一个方法B. 类B的一个方法C. 类A的某个方法实现中对类B对象某方法的一次调用D. 类B的某个方法实现中对类A对象某方法的一次调用正确答案:C3. 在用C++语言进行面向对象编程时,为了重用使用C语言编写的已有代码,比较好的办法是()。

A. 将已有代码封装在类中B. 将已有代码作为全局函数调用C. 将已有代码用C++重新实现D. 先将C++程序转换为C程序,再修改生成的C程序调用已有代码正确答案:A4. 解决名字冲突,指的是处理在()中可能出现的重名问题。

A. 类定义B. 派生类和基类C. 多个基类正确答案:C二、多选题(共33.00分)1. 常用的面向对象集成测试策略包括()。

A. 自顶向下测试B. 基于线程的测试C. 基于使用的测试D. 集群测试正确答案:B C D2. 面向对象编程时,采用的程序设计语言的特点和程序设计风格将对程序的()产生深远的影响。

A. 可维护性B. 可靠性C. 可重用性D. 规模正确答案:A B C3. 面向对象语言中常用的对象内存管理方法包括()。

A. “垃圾收集”机制B. 程序员自行编写释放内存的代码C. 内存换入/换出D. 虚拟内存正确答案:A B三、判断题(共27.00分)1. 所谓参数化类,就是一个类的构造方法具有参数。

()A. 正确B. 错误2. C++语言中没有接口类型,因此无法实现“接口与实现相分离”。

()A. 正确B. 错误正确答案:B3. 使用面向对象语言编写的程序,其执行效率一定低于使用非面向对象语言编写的程序。

《软件工程导论》课后习题答案

《软件工程导论》课后习题答案
23:59:38
作业及解答(第3章)
• 数据结构的描述 符 号
= +
含 义
x = a+b


被定义为 与 或
[...,...] 或 [...|...] { ... }或 m{...}n (...) “...” ..
23:59:38
x = [a , b],x = [a | b] 重复 x = {a}, x = 3{a}8 可选 x = (a) 基本数据元素 x = “a” 连结符 x = 1..9
P1 记录存款信息
P2 打印存单 F5存款信息 F3存单 E1 储户 F4利息
F5存款信息 D1存款信息 F7密码 F2取款单
F5存款信息 P3 核算密码
F4利息 F4利息 F6取款信息 P6 设置利率 P4 计算利息
P5 打印利息清单 F8储蓄利率
E2 业务员
23:59:38
F8储蓄利率
F8储蓄利率
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
• 3-6 复印机的工作过程大致如下:未接到复印 命令时处于闲置状态,一旦接到复印命令则进 入复印状态,完成一个复印命令规定的工作后 又回到闲置状态,等待下一个复印命令;如果 执行复印命令时发现没纸,则进入缺纸状态, 发出警告,等待装纸,装满纸后进入闲置状态, 准备接收复印命令;如果复印时发生卡纸故障, 则进入卡纸状态,发出警告等待维修人员来排 除故障,故障排除后回到闲置状态。 • 请用状态转换图描绘复印机的行为。

南京工程学院软件工程复习题答案

南京工程学院软件工程复习题答案

复习题第一章选择题:1,2,3,4,6,7,8,9 判断题:1,2,3,4,5第二章选择题:1,2,3,4,5,7,8 判断题:1,2,3,4,5,6第三章选择题:1,2,3, 5,6 ,7 判断题:1,2,3,4,5第四章选择题:5,6,7 ,8,9 判断题:5,6,7,8, 9,10第五章选择题:4,5,6,7,8,9,10 判断题:1,2,3,4,5,6,7,8第八章选择题:1,2,3,4,5第九章选择题:1,2,3,4第十二章选择题:1,2,3简答题:1.什么是软件危机其产生的主要原因是什么2.结构化程序设计的指导原则是什么它有哪三种基本控制结构红色为没有答案的3.什么是软件生存周期模型软件生命周期分为哪六个阶段并对每个阶段作简要说明.4.如何画分层数据流图5.简述UML.实际建模过程.6.在UML中的状态图、协作图、活动图、序列图在系统分析中各起到了什么作用7.什么是软件复用8.单元测试的功能是什么主要采用什么方法列举一个常用单元测试的工具. 9.什么是α测试和β测试10.自顶而下增值与自底而上增值各有何优、缺点11.请简单的谈一下安全测试12.为什么要进行软件维护13.提高软件可维护性的方法有哪些14.影响软件质量的因素有哪些15.什么是CMMCMM将软件过程的成熟度分为哪几个级别案例分析题1.画出给定实例的数据流图.并能给出其数据流条目,及对其中某一文件给出文件条目,对某数据项给出数据项条目,对某加工加工给出加工条目.2.画出某系统的用例图,及子用例图,对用例图作简要说明;用UML状态图说明状态的变迁情况及说明.习题答案习题一答案一、选择题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 CA 螺旋模型B 循环模型C 瀑布模型D 专家模型8. 软件工程的目标有A B C.A 易于维护B 低的开发成本C 高性能D 短的开发期9. 软件工程学的目的和意义是A D.A 应用科学的方法和工程化的规范管理来指导软件开发B 克服软件危机C 作好软件开发的培训工作D 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序.×2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰.×3. 结构化方法的工作模型是使用螺旋模型进行开发.×4. 结构化方法和OO方法都是一种面向过程的软件开发方法.×5. 原型化开发方法包括生成原型和实现原型两个步骤.×习题二答案一、选择题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 数据流封闭的原则7. 画DFD图的主要目的是A D.A 作为需求分析阶段用户与开发者之间交流信息的工具B 对系统的数据结构进行描述C 对目标系统的层次结构进行描述D 作为分析和设计的工具8. 数据字典是数据流图中所有元素的定义的集合,一般由 C 四类条目组成.A 数据说明条目、控制流条目、加工条目、数据存储条目B)数据流条目、数据项条目、文件条目、加工条目C 数据源条目、数据流条目、数据处理条目、数据文件条目D 数据流条目、数据文件条目、数据池条目、加工条目二、判断题1. 在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案.×2. SA法是面向数据流,建立在数据封闭原则上的需求分析方法.√3. 需求管理主要是对需求变化的管理,即如何有效控制和适应需求的变化.√4. 在面向对象的需求分析方法中,建立动态模型是最主要的任务.×5. 加工小说明是对系统流程图中的加工进行说明.×6. 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件.×习题三答案一、选择题1. 模块的基本特征是A C.A 外部特征输入/输出、功能B 内部特征输入/输出、功能C 内部特征局部数据、代码D 外部特征局部数据、代码2. SD方法的设计总则是C D.A 程序简洁、操作方便B 结构清晰、合理C 模块内聚性强D 模块之间耦合度低3. 软件设计的主要任务是A B D.A 将分析阶段获得的需求说明转换为计算机中可实现的系统;B 完成系统的数据结构和程序结构设计C 完成模块的编码和测试D 对模块内部的过程进行设计5. 从工程管理的角度来看,软件设计分D两步完成.A 系统分析、模块设计B 详细设计、总体设计C 模块设计、详细设计D 总体设计、详细设计6. 模块独立性准则定性指标B D来衡量.A 分解度B 耦合度C 屏蔽性D 内聚性7. 用户界面设计的任务包括A B C.A 确定用户界面类型B 建立任务模型C 建立用户模型D 建立功能模型二、判断题1. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好.×2. 在网状结构中任何两个模块都是平等的,没有从属关系,所以在软件开发过程中常常被使用.×3. 信息隐蔽原则有利于提高模块的内聚性.√4. 中心变换型的DFD图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图.×5. SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应. ×习题四答案一、选择题5. 一个类属性依其特征划分,其类型有ABCD.A 描述型B 定义型C 派生型D 参考型6. 在进行面向对象分析时,所采用的模型有ABC.A 对象模型B 动态模型C 静态模型D 功能模型7. 状态是对象属性的值的一种抽象,它的性质有AB.A 时间性B 持续性C 有序性D 有穷性8. 数据流图中的处理必须用对象中的操作来实现,常见的操作有ABCD.A 查询B 动作C 活动D 访问9. 建立继承关系时所采用的方式有AC.A 自顶向下B 从内到外C 自底向上D 从复杂到简单二、判断题5. 面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程.√6. 面向对象设计的主要目标是提高生产效率,提高质量和提高可维护性.√7. 对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系.√8. 面向对象的分析是用面向对象的方法对目标系统的问题域空间进行理解、分析和反映.通过对象层次结构的组织确定解空间中应存在的对象和对象层次结构.√9. 类的设计过程包括:确定类,确定关联类,确定属性,识别继承关系.√10. 复用也叫重用或再用,面向对象技术中的“类”是比较理想的可重用软构件,它有三种重用方式:实例重用、继承重用、多态重用.√习题五答案一、选择题4. 下列各种图可用于动态建模的有ACD.A 状态图B 类图C 序列图D 活动图5. 下列属于状态的组成部分的有AB.A 名称B 活动C 条件D 事件6. UML中包括的事件有ABCD.A 条件为真B 收到另一对象的信号C 收到操作调用D 时间表达式7. 属性的可见性有ABD.A 公有的B 私有的C 私有保护的D 保护的8. 用例之间的关系有BCD.A 友元B 扩展C 使用D 组合9. 应用于通用化约束的方式有ABCD.A 完整B 不相交C 不完整D 覆盖10. 消息的类型有ABCA 同步B 异步C 简单D 复杂二、判断题1. UML建模语言是由视图、图、模型元素和通用机制构成的层次关系来描述的. √2. UML是一种建模语言,是一种标准的表示,是一种方法. ×3. 泳道是一种分组机制,它描述了状态图中对象所执行的活动. ×4. 同步消息和异步消息的主要区别是:同步消息的发送对象在消息发送后,不必等待消息处理,可立即继续执行,而异步消息则发送对象必须等待接收对象完成消息处理后,才能继续执行.×5. 类图中的角色是用于描述该类在关联中所扮演的角色和职责的. √6. 类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述.×7. 用例模型的基本组成部件是用例、角色和用例之间的联系. √8. 用例之间有扩展、使用、组合等几种关系. √习题七答案5.什么是软件复用答:软件复用是指重复使用已有的软件产品来开发新的软件系统,以达到提高软件系统的开发质量与效率、降低开发成本的目的.在软件复用中重复使用的软件产品不仅仅局限于程序代码,而是包含了在软件生产的各个阶段所得到的各种软件产品,这些软件产品包括:领域知识、体系结构、需求分析、设计文档、程序代码、测试用例和测试数据等.将这些已有的软件产品在软件系统开发的各个阶段重复使用,这就是软件复用的原理.习题八答案一、选择题1. 软件测试的主要特点是A C.A 软件测试的开销大B 软件测试要依靠工具C 软件不能进行“穷举”测试D 软件测试要依靠人工2. 整体测试又称为组装测试,其主要内容包括C D.A 对整体的性能进行测试B 用白盒法设计测试用例进行测试C 确定组装策略和次序D 对组装过程进行测试3. 渐增式是将模块一个一个地连入系统,每连入一个模块C.A 只需要对新连入的模块进行测试B 都不需要再进行测试C 要对新子系统进行测试D 都要进行回归测试4. 静态测试是以人工的、非形式化的方法对程序进行分析和测试.常用的静态测试方法有 B C D.A 运行程序并分析运行结果B 桌前检查与代码会审C 数据流分析图D 调用图5. 集成过程的原则是B C.A 按照模块的大小集成B 尽早测试包含I/O的模块C 尽早测试关键模块D 按照“输入—处理—输出”的次序进行集成习题九答案一、选择题1. 软件维护的类型有A B C D.A 完善性维护B 纠错性维护C 适应性维护D 预防性维护2. 各种软件维护的类型中最重要的是A B.A 完善性维护B 纠错性维护C 适应性维护D 预防性维护3. 以下属于完善性维护的有B D.A 解决开发时未能测试各种可能条件带来的问题B 增加联机求助命令C 缩短系统的应答时间,使其达到特定要求D 为软件的运行增加监控设施4. 进行系统修改时可能会产生维护的副作用,它们可能有A B C.A 修改数据的副作用B 修改错误后,又引入了新的错误C 修改代码的副作用D 文档资料的副作用习题十二答案一、选择题1. CMM表示 A .A 软件能力成熟度模型B 软件过程工业化控制C 国际软件质量认证D 软件统一性标准2. 软件过程和产品质量有详细的度量标准,并且得到了定量的认识和控制.以下具有上述特征.A 可重复级B 已定义级C 已管理级D 优化级3. CMM是开发高效率、高质量和低成本软件时,普遍采用的软件生产过程标准,它的主要用途不包括 C .A 软件过程评估B 软件过程改进C 软件过程控制D 软件能力评价简答题1.什么是软件危机其产生的原因是什么答:“软件危机”Software Crisis的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大.而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要.致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折.软件危机主要表现在两个方面:1 软件产品质量低劣,甚至开发过程就夭折.2 软件生产率低,不能满足需要.2. 如何画分层数据流图有哪些基本原则答:总的原则是:至顶而下,逐层分解画分层数据流图.逐层分解的画法可以控制每一层的复杂度.顶层:将整个系统作为一个加工,描述系统边界输入与输出.中间层:将某个加工分解为一组子加工,其中的子加工还需进一步分解.底层:由不再进行分解的基本加工组成.画分层数据流图的基本原则有:①数据守恒与数据封闭原则.②加工分解的原则.③子图与父图“平衡”的原则.④合理使用文件的原则.3. 简述UML实际建模过程.答:UML建模过程是一个迭代过程.每次迭代都建立相应的模型.分为以下几个阶段:①分析阶段.建模的目的是捕捉系统的功能需求,分析、提取所开发系统的“客观世界”领域的类以及描述它们的合作关系.常以用例图为首选模型.②设计阶段.建模的目的是通过考虑实现环境,将分析阶段的模型扩展和转化为可行的技术实现方案.常建立以类图为主的静态模型,及包括状态模型、顺序模型、活动模型和合作模型等动态模型.③实现阶段.主要工作就是进行编码,同时对已构造的模型作相应的修正.④配置阶段.通过模型描述所开发系统的软硬件配置情况建立配置模型.⑤测试阶段.使用前几个阶段所构造的模型来指导和协助测试工作.4. 在UML中,状态图、协作图、活动图、顺序图在系统分析中各起到了什么作用答:状态图State Diagram用来描述一个特定对象在其生存周期或在某段时间内的所有可能的状态及其引起状态转移的事件.一个状态图包括一系列的状态以及状态之间的改变.例如订单的状态变化等,在实时系统中用得较多,还可以用于辅助设计用户界面.顺序图Sequence Diagram 清晰地描述一组对象之间动态的交互关系、时间的约束关系,着重描述对象间消息传递的时间顺序,所以顺序图在实时系统中被大量使用.当参与交互的对象数目增加,交互关系复杂时用顺序图描述会显得杂乱,协作图Collaboration Diagram从另一个角度来更好地描述相互协作的对象间的交互关系和链接Link关系.着重体现交互对象间的静态链接关系和协作关系.协作图也可以从顺序图生成.活动图Activity Diagram是由状态图变化而来的,从系统任务的观点来看,系统的执行过程是由一系列有序活动组成的.活动图可以有效地描述整个系统的流程,描述了系统的全局的动态行为,且只有活动图是唯一能够描述并发活动的UML 图.5. 什么是软件复用答:软件复用是指重复使用已有的软件产品来开发新的软件系统,以达到提高软件系统的开发质量与效率、降低开发成本的目的.在软件复用中重复使用的软件产品不仅仅局限于程序代码,而是包含了在软件生产的各个阶段所得到的各种软件产品,这些软件产品包括:领域知识、体系结构、需求分析、设计文档、程序代码、测试用例和测试数据等.将这些已有的软件产品在软件系统开发的各个阶段重复使用,这就是软件复用的原理.6. 什么是α测试和β测试答:α测试是在开发机构的监督下,在确认测试阶段后期由个别用户对软件进行测试,目的是评价软件的FLURPS功能、局域化、可使用性、可靠性、性能和支持性,注重界面和特色.β测试是在进行了α测试的基础上,由支持软件预发行的客户对FLURPS进行测试,主要目的是测试系统的可支持性,是在软件产品正式发布前的测试.7.单元测试的功能是什么主要采取什么方法例举一个常用单元测试的工具单元测试.完成每个模块的测试,尽可能发现模块内部的错误.单元测试主要采用白盒测试法.工具:自己看下书呢8. 为什么要进行软件维护答:软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程.一个中等规模的软件,如果其开发过程需要一两年时间,则它投入使用以后,其运行时间可能持续5~10年之久.在这个维护阶段中,人们需要着手解决开发阶段尚未解决的问题,同时,还解决维护工作本身所产生的问题.做好软件的维护工作不仅能够排除软件中存在的错误,使它能够正常工作,而且还可以使它扩充功能,提高性能,为用户带来新的效益.维护阶段的花费约占整个软件生存周期花费的67%.因此,应充分认识到维护现有软件的重要意义.9. . 提高可维护性的方法有哪些答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审.在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明.在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面.在软件设计的复审中,应从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备.在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素.在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示.在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审.为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件 ,同时也在大力发展软件重用技术.10. 影响软件质量的因素有哪些答:影响软件质量的因素如下表所示.11.什么是CMMCMM将软件过程的成熟度分为哪几个级别答:1看下书.2初始级、可重复级、已定义级、已管理级和优化级.12. 自顶向下渐增与自底而上渐增各有何优、缺点答:①自顶向下渐增优点:能够尽早发现系统主控方面的问题,并尽早测试系统结构的问题.缺点:需要编写桩模块,由于下属模块往往不止一个,也不止一层,加之模块接口的复杂性,桩模块很难模拟各下层模块之间的调用关系,也无法验证桩模块是否完全模拟了下属模块的功能.因此很难尽早查出底层容易出错的复杂模块中的错误,所以导致过多的回归测试.②自底向上渐增优点:需要编写驱动模块.驱动模块是模拟主程序或者调用模块的功能,处于被测试模块的上层,所以驱动模块只需模拟向被测模块传递数据,接收或打印从被测模块返回的数据等功能,比编写桩模块容易.还能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误.缺点:只有当系统所有模块全部组装完成,才能看到系统完整的结构,才能测试系统的主控功能.。

软件工程(习题与参考答案)

软件工程(习题与参考答案)

第1章概述(习题与参考答案)[判断题]1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。

(×)2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。

(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵。

(×)4. 大多数软件产品在其生命周期中不需要增强功能。

(×)5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。

(√)6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。

(×)[选择题]1. ()因素促使计算机系统越来越复杂。

(D)A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系结构方面的深刻变化D. 以上所有选项2. 下面的()不再是现代软件工程师关注的问题。

(A)A. 为什么计算机硬件的成本这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的成本这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于()。

(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于()。

(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的()说法是正确的。

(C)A. 软件危机在20世纪70年代末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的基本目标是()。

(B)A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

软件工程(第四版)习题及解答9-8

软件工程(第四版)习题及解答9-8
(3)系统流程图
第3章
一、判断题
1√ 2 × 3√ 4 × 5√ 6× 7× 8√
二、选择题
1-5 BACDB 6-10 ABDAA 11-15 BABDB 16-20 ADCDB
三、简答题
1、需求分析的基本任务是要准确地理解旧系统、定义新系统的目标,为了满足用户需要,回答“系统必须做什么”的问题,即确定系统必须完成哪些工作,对新系统提出完整、准确、清晰、具体的要求。
数据流图的主要成分有四种:数据流、数据存储、加工、数据流的源点和终点。
4、
数据词典是数据的集合,它对数据流图中的各个元素作完整的定义和说明,是数据流图的补充工具。数据流图和数据词典共同构成系统的逻辑模型,两者缺一不可。
其内容包括:数据流、数据项、数据结构、数据存储、加工逻辑、外部实体6类元素。
四、应用题
2、软件危机的产生有两方面因素,一方面与软件本身的抽象性和复杂性有关;另一方面则与软件开发和维护过程中使用的技术和方法有关,这是主观原因。
为了解决软件危机,既要有技术措施(好的方法和工具),也要有组织管理措施。(1)使用好的软件开发技术和方法。(2)使用好的软件开发工具,提高软件生产率。(3)有良好的组织、严密的管理,各方面人员相互配合共同完成任务。
专业=”01”...”99”注:专业代号2位数字
班级=”01”...”99”注:班级代号2位数字
学分=0..99
2、数据流图如下:
3、
顶层图:
顶层图
0层图:
0层图
4、
判定表如下:
设:性别:男:M女:F
学历:初中:A高中B大专:C
年龄:小于25: C25至40:Y40以上:L
1
2
3
4

(完整版)软件工程课后习题答案

(完整版)软件工程课后习题答案

第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。

●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

●软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。

例如:编译软件、操作系统。

2.支撑软件支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境。

3.应用软件应用软件是特定应用领域专用的软件。

例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.3简述软件语言的分类,并举例说明。

1.需求定义语言是用于书写软件需求定义的语言。

例如:PSL/PSA。

2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。

例如:广谱语言、Z 语言。

3.设计性语言是用于书写软件设计规约的语言。

例如:PDL。

4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。

例如:C、java、PROLOG、FORTRAN、COBOL、Modula。

5.文档语言是用于书写软件文档的语言。

通常用自然语言或半形式化语言书写。

1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。

1.5简述软件工程的基本原则。

软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。

1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。

2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

软件工程(习题与参考答案)

软件工程(习题与参考答案)

第1章概述〔习题与参考答案〕[判断题]1. 由于今天个人计算机不断开展壮大,人们不再采用软件团队的开发方式。

〔×〕2. 由于软件是产品,因此可以应用其他工程制品所用的技术进展生产。

〔×〕3. 购置大多数计算机系统所需的硬件比软件更昂贵。

〔×〕4. 大多数软件产品在其生命周期中不需要增强功能。

〔×〕5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。

〔√〕6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。

〔×〕[选择题]1. 〔〕因素促使计算机系统越来越复杂。

〔D〕A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系构造方面的深刻变化D. 以上所有选项2. 下面的〔〕不再是现代软件工程师关注的问题。

〔A〕A. 为什么计算机硬件的本钱这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的本钱这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于〔〕。

〔C〕A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于〔〕。

〔C〕A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的〔〕说法是正确的。

〔C〕A. 软件危机在20世纪70年代末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的根本目标是〔〕。

〔B〕A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. 〔〕是将系统化的、标准的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

软件工程(习题与参考答案)

软件工程(习题与参考答案)

第1章概述(习题与参考答案)[判断题]1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。

(×)2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。

(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵。

(×)4. 大多数软件产品在其生命周期中不需要增强功能。

(×)5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。

(√)6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。

(×)[选择题]1. ()因素促使计算机系统越来越复杂。

(D)A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系结构方面的深刻变化D. 以上所有选项2. 下面的()不再是现代软件工程师关注的问题。

(A)A. 为什么计算机硬件的成本这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的成本这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于()。

(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于()。

(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的()说法是正确的。

(C)A. 软件危机在20世纪70年代末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的基本目标是()。

(B)A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

软件工程第九章课后题

软件工程第九章课后题

1.以下哪一项最能表现某个项目的特征()A. 运用进度计划技巧B. 整合范围与成本C. 确定期限D. 利用网络进行跟踪2. 项目管理需要在相互间有冲突的要求中寻找平衡,除了()A. 甲方和乙方的利益B. 范围,时间,成本,质量C. 有不同需求和期望的项目干系人D. 明确的和未明确表达的需求3. 以下都是日常运作和项目的共同之处,除了()A. 由人来作B. 受制于有限的资源C. 需要规划、执行和控制D. 都是重复性工作4. 有效的项目管理要求项目管理团队理解和利用以下专业知识领域的知识和技能,除了()A. 项目管理知识体系B. 应用领域知识、标准与规章制度C. 以项目为手段对日常运作进行管理D. 处理人际关系技能二、填空题1.项目目标成功实现的制约因素有:(),成本,进度计划,客户满意度。

2.项目管理的五要素:(),方法,团队建设,信息,沟通答案。

3.软件项目管理分为(),项目计划,项目执行控制,项目结束。

4.对于一个组织的管理而言,主要包括战略管理,运作管理,()。

1.软件项目的特点主要表现为哪几个方面?2.软件管理的主要功能包括哪些方面?答案:一、1.C 2.A 3.D 4.C二、1.项目范围2.技术3.项目初始4.项目管理三、1.(1)智力密集,可见性差。

软件工程过程充满了大量高强度的脑力劳动。

软件开发的成果是不可见的逻辑实体,软件产品的质量难以用简单的尺度加以度量。

对于不深入掌握软件知识或缺乏软件开发实践经验的人员,是不可能做好软件管理工作的。

(2)单件生产。

在特定机型上,利用特定硬件配置,由特定的系统软件或支撑软件的支持,形成了特定的开发环境。

这种建立在内容、形式各异的基础上的研制或生产方式,与其他领域中大规模现代化生产有很大的差别,也自然会给管理工作造成许多实际困难。

(3)劳动密集,自动化程度低。

软件项目经历的各个阶段都渗透了大量的手工劳动,这些劳动十分细致、复杂和容易出错,使得软件的正确性难以保证。

软件工程答案

软件工程答案

第3章软件项目管理(习题与参考答案)[选择题]1. 软件项目管理的“4P”是()。

(C)A. people,performance,payoff,productB. people,product,performance,processC. people,product,process,projectD. people,process,payoff,product2. ()项目管理在现代软件开发中是不太重要的,因为大多数项目能够及时完成并成功交付。

(B)A. 真B. 假3. 在软件开发的各种资源中,()是最重要的资源。

(C)A. 开发工具B. 方法C. 硬件环境D. 人员4. 软件项目规划的第一步是()。

(D)A. 确定项目预算B. 选择团队的组织模型C. 确定项目的约束D. 建立项目的目标和范围5. 下面的()方法最不适合你向团队成员解释他或她为什么表现不合格。

(B)A. 个人谈话B. 项目团队会议C. 正式报告D. 电子邮件6. 功能点估算技术需要以()为基础进行问题分解。

(A)A. 信息域B. 项目进度C. 软件功能D. 过程活动7. 软件开发团队的每一个成员都应该参与计划活动,以便()。

(C)A. 降低计划的粒度B. 深入地分析需求C. 所有成员同意该计划D. 开始设计8. 在攻克技术难题时,最佳的开发团队组织模型是()。

(A)A. 民主式结构B. 主程序员式结构C. 技术管理混合式结构D. 以上所有选项都不是9. 在选择开发团队组织结构时应考虑()因素。

(E)A. 沟通的复杂程度B. 最终程序的规模大小C. 发布日期的严格程度D. 项目预算的多少E. 选项A,B和C10. 在软件开发过程中避免受挫的最佳方法之一是()。

(A)A. 给予团队成员对于过程和技术决策的更多控制权B. 给予团队成员对于过程和技术决策的更少控制权C. 向团队成员隐瞒坏消息直到事情有所改善D. 根据生产效率奖励团队成员11. 下面的()软件特性不是引起项目协调困难的一个因素。

第9章习题参考答案

第9章习题参考答案

第9章习题参考答案9.1 答案(1)事务是构成数据库应用中一个独立逻辑工作单元的操作的集合,也是访问并可能更新数据库中各种数据项的一个程序执行单元。

(2)定义在多个事务上的调度是这些事务的所有操作的一个执行序列,代表了这些操作的执行顺序。

(3)事务T i的操作I i与事务T j的操作I j是冲突的,当且仅当I i和I j访问数据库中同一个数据项Q,并且I i和I j中至少有一个是写操作write(Q)。

(4)如果一个并发调度冲突等价于某个串行调度,则称该并发调度是冲突可串行的。

(5)死锁是指数据库系统中部分或全部事务由于无法获得对需要访问的数据项的控制权而处于等待状态,并且将一直等待下去的一种系统状态。

9.2 答案原子性指事务对数据库的所有操作是一个不可分割的工作单元。

这些操作要么全部执行,要么一个也不执行。

一致性指当事务独立执行时,其执行结果应维护数据库的一致性,即数据库不会因事务执行而遭受破坏。

事务应使数据库从一个一致性状态转到另外一个一致性状态。

隔离性指当多个事务并发执行时,系统应保证一个事务的执行结果不受其它事务的干扰,事务并发执行结果与这些事务串行执行时的结果是一样的。

持久性指一个事务一旦成功完成全部操作,则它对数据库的所有更新就永久地反映在数据库中。

即使以后系统发生了故障。

9.3题目:简述1级,2级,3级加锁协议的基本原则答案:1级加锁协议要求事务T在修改数据项Q之前必须先对Q加X锁,直到事务结束才释放该锁。

事务结束包括正常结束(commit)和非正常结束(rollback)。

但事务如果只是读Q而不对其进行修改,是不需要对Q加锁的。

2级加锁协议是在1级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S 锁,读完Q后可以立即释放S锁。

3级加锁协议则是在1级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,但是需要等到事务结束时才释放该S锁。

9.4 答案2阶段锁协议将每个事务的执行过程分为加锁阶段和解锁阶段。

《软件工程》(第五版)习题参考答案

《软件工程》(第五版)习题参考答案
把整个软件生命周期划分为若干个较小的阶段每个阶段都有相对独立的任务和完成任务的步骤和方法然后逐步完成各个阶段的任务这有利于软件开发过程的组织和管理从而降低了整个软件开发过程的困难程度从而使规模庞大结构复杂和管理复杂的软件开发变得容易控制和管理
《软件工程》(第五版)习题参考答案
第1章 一、判断题 1、(×)软件的维护与硬件维护本质上是相同的。 2、(√)软件在运行和使用中也存在退化问题。 3、(×)软件危机的产生主要是因为程序设计人员使用了不适 当的程序设计语言。 4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和 衰亡的生存过程。 5、(×)文字处理软件 Word 属于系统软件。应用软件 6、(√)原型是软件的一个早期可运行的版本,它反映最终系 统的部分重要特性。 7、(√)软件开发过程中,一个错误发现得越晚,为改正它所 付出的代价就越大。 8、(×)快速原型模型对软件开发人员的水平要求不高。 9、(√)喷泉模型适合于面向对象的软件开发。 10、(×)面向对象开发方法的主要缺点是在适应需求变化方面 不够灵活。 二、选择题 1、软件是一种(C)。 A、程序 B、数据
D、合同文档 14、结构化分析方法是以数据流图、(D)和加工说明等描述工 具,即用直观的图和简洁的语言来描述软件系统模型。 A、DFD 图 B、PAD 图 C、IPO 图 D、DD 15、软件需求分析阶段的工作,可以分为四个方面:需求获取、 需求分析、编写需求规格说明书以及(B)。 A、阶段性报告 B、需求评估 C、总结 D、都不正确 16、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一 些特定的图符构成。下面图符名称标识的图符不属于数据流图合 法图符的是(A)。 A、控制流 B、加工 C、数据存储 D、源点和终点 17、DFD 用于描述系统的(D)。 A、数据结构

软件工程习题解答

软件工程习题解答

第一章软件工程概论一、填空题⑴ 软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)、及(C)的完整集合。

其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序员能够正确操纵信息的数据结构,(C)是与程序开发、维护和使用有关的图文材料。

①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表⑵ 开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。

软件工程中描述软件生存周期的瀑布类型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。

其中,设计阶段在管理上可以依次分成(C)和(D)两个步骤。

A:① 程序开发环境② 操作系统的资源管理功能③ 开发程序人员数量④ 计算机的并行处理能力B:① 需求分析②需求调查③可行性分析④问题定义C、D:① 方案设计② 代码设计③ 概要设计④ 数据设计⑤ 运行设计⑥ 详细设计⑦ 故障处理设计⑧ 软件体系结构设计⑶ 有人将软件的发展过程划分为四个阶段,第一阶段(20世纪50年代),称为程序设计的“原始时期”。

这时既没有(A),也没有(B),程序员只能用机器指令编写程序。

第二阶段(20世纪60年代),称为“基本软件期”。

出现了(A),并逐渐普及。

随着(B)的发展,编译技术也有较大的发展。

第三阶段(20世纪60年代末至70年代中期)称为“程序设计方法时代”。

这一时期,与硬件价格下降相反,软件开发费用急剧上升。

人们提出了(C)和(D)等程序设计方法,设法降低软件的开发费用。

第四阶段(20世纪70年代中期至今),称为“软件工程”时期。

软件开发技术不再仅仅是程序设计技术,而是包括了软件开发的各个阶段。

如(E)、(F)、编码、单元测试、综合测试、(G)及其整体有关的各种管理技术。

A、B、C、D:① 汇编语言② 操作系统③ 虚拟存储器概念④ 高级语言⑤ 结构化程序设计⑥ 数据库概念⑦ 固件⑧ 模块化程序设计E、F、G:① 使用和维护② 兼容性的确认③ 完整性的确认④ 设计⑤ 需求定义⑥ 图像处理二、简答题⑴ 软件工程过程有哪几种基本活动,试加以说明。

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案

第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程(第四版)习题及解答9-8

软件工程(第四版)习题及解答9-8
《软件工程》(第四版)习题参考答案
第1章
一、判断题
1× 2 √ 3× 4√ 5× 6√ 7√ 8× 9√10×
二、选择题
1-5CADDD6-10ADAAD11-15AAADA
三、简答题
1、软件包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。软件包括程序,程序只是软件的一部分。
1、
“学生管理系统”的顶层图案={学号+姓名+性别+年龄+专业+班级}
成绩库=学号+课程号+分数
课程库=课程号+课程名+学分
学生信息=学号+姓名+性别+年龄+专业+班级
考试成绩=学号+课程号+分数
学号=”00001”...”99999”
姓名=2{汉字}4
系统目标和范围说明书
1.项目名称:X航运公司机票预订系统。
2.背景:目前,由旅客人工到航运公司排队购票,费时、费力、管理工作量大、手续繁琐效率低,制约了公司业务的发展。
3.项目目标:建立一个网络化的机票预订系统。
4.项目范围:软件开发费用不超过X万元。
5.初步设想:建议在系统中完成安排航班、打印取票通知、打印票务账单、打印机票等主要功能。
(3)系统流程图
第3章
一、判断题
1√ 2 × 3√ 4 × 5√ 6× 7× 8√
二、选择题
1-5 BACDB 6-10 ABDAA 11-15 BABDB 16-20 ADCDB
三、简答题
1、需求分析的基本任务是要准确地理解旧系统、定义新系统的目标,为了满足用户需要,回答“系统必须做什么”的问题,即确定系统必须完成哪些工作,对新系统提出完整、准确、清晰、具体的要求。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、判断题
1、(×)测试是为了验证该软件以正确地实现了用户的需求。

2、(√)发现错误多的程序模块,残留在模块中的错误也多。

3、(×)白盒测试法是根据程序的功能来设计测试用例的。

4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。

5、(√)确定测试计划是在需求分析阶段制定的。

6、(√)集成测试计划是在概要设计阶段制定的。

7、(√)单元测试是在编码阶段完成的。

8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。

9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。

10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。

二、选择题
1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组成。

A、测试输入数据
B、预期的测试输出数据
C、测试输入与预期的输出数据
D、按照测试用例设计方法设计出的数据
2、测试和调试最大的不同在于(A)。

A、操作者的心理状态不同
B、它们的行为取向不同
D 、运用的方法不同 C、使用的工具不同
3、一个成功的测试是(B)。

A、发现错误
B、发现至今尚未发现的错误
D、证明发现不了错误 C 、没有发现错误
4、白盒法和黑盒法最大的不同在于(A)。

A、测试用例设计方法不同
B、测试的任务不同
、基于的知识集不同D 、应用的测试阶段不同C.
5、单元测试阶段主要涉及(D)的文档。

A、需求设计
B、编码和详细设计
C、详细设计 D 、概要设计
6、检查软件产品是否符合需求定义的过程称为(A)。

A、确认测试
B、集成测试
D C、验证测试、验收测试
7、软件调试的目的是(B)。

A、发现错误
B、改正错误
D、挖掘软件的潜能 C 、改善软件的性能
8、进行软件测试的目的是(A)。

A、尽可能多地找出软件中的错误
B、缩短软件的开发时间
C、减少软件的维护成本
D、证明程序没有缺陷
9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。

A、 B、
A B
BA TrueFalse TrueFalse
、 D C、 FalseTrue
BA
False FalseA B
TrueTrue False True
True False
True True
A OR BFalseTrue语句
10、在进行单元测试时,常用的方法是(A)。

A、采用白盒测试,辅之以黑盒测试
B、采用黑盒测试,辅之以白盒测试
C、只使用白盒测试
D、只使用黑盒测试
11、白盒测试方法一般适合于(A)测试。

A、单元
B、系统
C、集成
D、确认
12、为了提高测试的效率,应该(D)。

A、随机地选取测试数据
B、取一切可能的输入数据作为测试数据
C、在完成编码以后制定软件的测试计划
D、选择发现错误可能性大的数据作为测试数据
13、不属于白盒测试的技术是(D)。

A、语句覆盖
B、判定覆盖
、边界值分析 D C、条件覆盖14、下列逻辑覆盖标准中,差错能力最强的是(D)。

A、语句覆盖
B、判定覆盖
D 、条件组合覆盖C、条件覆盖
15、在黑盒法中,着重检查输入条件组合的测试方法是(D)。

A、等价类划分法
B、边界值分析法
、因果图法D 、错误推测法C.
三、简答题
1、为什么要进行软件测试?软件测试要以什么目标和原则?
答:软件测试的目的是为了发现软件产品中存在的软件缺陷,进而保证软件产品的质量。

软件测试是软件开发过程中的一个重要阶段,是软件产品正式投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。

软件测试的结果也是分析软件可靠性的重
要依据。

在软件测试中,应注意以下指导原则:
(1)所有测试都应追溯到需求
(2)坚持“尽早地和不断地进行软件测试”。

(3)测试用例应由输入数据和预期的输出结果两部分组成。

(4)程序员应避免测试自己的程序。

(5)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。

(6)充分注意测试中的群集现象。

(7)严格执行测试计划,排除测试的随意性。

(8)应当对每个测试结果做全面检查。

(9)在测试程序时,不仅要检验程序是否做了该做的事,还要检验程序是否做了不该做的事。

(10)应长期保留所有测试用例。

保留测试用例有助于以后修改程序后的回归测试。

2、软件测试包括哪几个过程?测试过程中包括哪些数据源?
答:测试过程分为4个步骤,即单元测试、组装测试、确认测试和系统测试。

数据源有:
(1)软件配置:包括软件需求规格说明、软件设计规格说明、源代码等。

(2)测试配置:包括测试计划、测试用例、测试驱动程序等。

(3)测试工具:测试工具为测试的实施提供某种服务,以减轻测试过程中的手工劳动,提高测试效率。

3、黑盒测试法与白盒测试法的本质区别是什么?它们的使用场合有何不同。


答:黑盒测试法与白盒测试法的根本区别是设计测试用例的方法不同。

前者是测试产品的功能,后者是测试产品的内部结构和处理过程。

通过黑盒测试主要发现以下错误:
(1)是否有不正确或遗漏了的功能。

(2)界面是否有错,能否正确地接受输入数据,能否产生正确的输出信息。

(3)是否有数据结构或外部数据库访问错误。

(4)性能是否满足要求。

(5)是否有初始化或终止性错误。

白盒测试法是一种程序级的微观上的测试,不适合于大单元、大系统的测试,主要用于很小单元的测试,以及从事软件底层工作、生产构件的测试人员使用。

4、试比较测试与调试的异同。

答:软件测试的目的是尽可能多地发现程序中的错误,而调试的目的是根据测试时发现的错误,找出错误的原因和具体位置,并改正错误。

测试与调试的不同如下表所示。

测试与调试的不同
测试 (test) 调试 (debug)
目的是找出错误位置并排除目的是发现错误被动的有计划
有预知的结,使用预先定义的程序,以已知条件开始结果一般不可预见,以不可知内部条件开始果谁开发的程序就由谁来调由程序作者进行,由独立的测试组,在不了解软件设计的条件下完成试 5、试叙述面向对象的单元测试、组装测试、确定测试的内涵。

(1)面向对象的单元测试
面向对象的单元测试是进行面向对象集成测试的基础。

面向对象的单元测试以类或对象为单位。

由于类包含一组不同的操作,并且某些特殊的操作可能被多个类共享,因此,单元测试不能孤立地测试某个操作,而是将操作作为类的一部分来测试。

(2)面向对象的集成测试
因为在面向对象的软件中没有层次的控制结构,并且构成类的成分彼此之间存在着直.
接或间接的交互作用,所以,传统意义上的自顶向下和自底向上的集成策略将不再适用。

(3)面向对象的确认测试
在确认测试层次,不需要再考虑类的实现和交互的具体细节,只要验证交互过程及功能,包括提供的用户界面,用户可见的操作,软件的反应和输出的结果等情况,其中测试用例的选择主要是依据动态模型和系统的脚本描述。

四、应用题
1、使用等价类划分方法,为一元二次方程求解程序设计足够的测试用例。

该程序要求分别打印出:不是一元二次方程,有实数根和有复数根三种信息。

测试用例表
测试内测试数期望结
x1=2 x2=a=1 b=-5 c=是一元二次方程且有实
x1=+a=1 b=1 c=是一元二次方程且有复根x2=
不是一元二次方程a=0 b=1 c=1x=-1
2、早期DOS操作系统对文件名的命名要求如下:文件名由基本文件名和扩展名组成,扩展名可以省略,两部分文件名以小数点分隔。

基本文件名至少为1位,至多为8位长度,且首字符必须为非数字字符(如字母或部分特殊符号,文件名中不能包括空格、+号、?号、*号、圆点符号。

大小写字母无区别);扩展名最多为3位长度。

请用等价类划分法设计对文件名命名要求的测试用例。

等价类划分表
输入条件合理等价类不合理等价类
(5)少于11件基本文名()1-8个字符个字符
(6)多于长度8个字符
3、对于例9-2,仿照表9-5,请重新设计六种逻辑覆盖的测试用例,并重新填写表格内容,要求测试数据要尽量少。

逻辑覆盖测试用例
预期
输入数据条件条件条件条件判定判定测试结果覆盖类型路径或A=2X>1A且A>1B=0XB=0XA=2B A>1X>1 T T2语句覆盖①②④303
F T①②⑤0003判定覆盖433T1①③④F T0F T F F F④①030条件覆盖2①③④TF21FF 2TT TT T T①②④430TT2条判定/件覆盖F F F F F F①③⑤1021.。

相关文档
最新文档