软件工程题库.docx
《软件工程题库.docx》由会员分享,可在线阅读,更多相关《软件工程题库.docx(26页珍藏版)》请在冰豆网上搜索。
![软件工程题库.docx](https://file1.bdocx.com/fileroot1/2023-2/3/d002e41a-7059-4d0b-8747-58d3051858e3/d002e41a-7059-4d0b-8747-58d3051858e31.gif)
软件工程题库
第一章
一、名称解释
1.软件工程
是指导计算机软件开发和维护的工程科学。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
d7vUE。
2.软件生命周期
一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的整个时期被称为是软件生命周期
二、填空题
1.构成一个完整计算机系统的两部分是硬件与(软件)。
2.程序设计时代的生产方式是(个体手工劳动)。
3.软件工程涉及到若干个学科,它是一门(综合性交叉)学科。
4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能(相同)。
5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是(瀑布)模型。
6.喷泉模型是一种以用户需求为动力,以(对象)为驱动的模型。
7.结构化方法是一种面向数据流的开发方法。
由结构化分析、(结构化设计)、结构化程序设计构成。
8.软件工程研究的主要内容是软件开发管理和(软件开发技术)两个方面。
9.软件工具是支持软件开发人员的开发和维护活动而使用的(软件)。
10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种(开发方法),使用相应的工具来进行。
11.瀑布模型本质上是一种(线性顺序)模型。
12.瀑布模型不适应需求可变的软件开发,只有到开发结束时才能见到(整个软件系统)。
13.增量模型在开发过程中以一系列增量方式开发系统,忽略某阶段的细节,从而尽早产生(工作软件)。
14.增量构造模型在分析和设计阶段按整体方式开发,按增量方式开发的是(编码和测试)阶段。
15.演化提交模型中,项目开发各阶段都是按(增量方式)开发的。
16.软件原型是软件的早期可运行版本,反映最终系统的(重要特性)。
17.用原型过程来代替需求分析,使需求说明完整、一致、准确,该原型是(探索型)原型。
18.用原型过程来代替全部开发阶段,这种快速原型是(演化型)原型。
19.若原型不满足需求说明,则根据明确的要求修改(原型)
三、选择题
1.软件是一种()产品。
A.物质B.逻辑C.有形D.消耗
2.软件产品的开发主要是()。
A.复制B.再生产C.拷贝D.研制
3.个体手工劳动生产方式的时代是()。
A.程序设计B.软件生产自动化C.程序系统D.软件工程
4.与计算机科学的理论研究不同,软件工程是一门()学科。
A理论性B.原理性C.工程性D.心理性
5.软件重用的单位是()。
A.软件模块B.性能C.系统D.功能
6.软件开发费用只占整个软件系统费用的()。
A.1/2B.1/3C.1/4D.2/3
7.软件开发中大约要付出()%的工作量进行测试和排错。
A.20B.30C.40D.50
8.准确地解决“软件系统必须做什么”是()阶段的任务。
A.可行性研究B.需求分析C.详细设计D.编码
9.软件生存周期中最长的是()阶段。
A.需求分析B.概要设计C.测试D.维护
10.瀑布模型的问题是()。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求
11.增量模型是一种()模型。
A整体开发B.非整体开发C.灵活性差D较晚产生工作软件
12.用于设计阶段,考核实现方案是否可行的是()原型。
A探索型B.演化型C.实验型D.增量型
13.用于整个开发阶段,及早提交一个原型系统的是()原型
A.实验型B.探索型C.提交型D演化型
14.快速原型思想是研究()阶段的方法技术中产生的。
A测试B.设计C.编码D.需求分析
15.构造原型时,主要考虑()。
A.全部功能B.原型要体现的特征C.全部细节D.全部需求
第二章
一、填空题
1.可行性研究的目的是用最小的代价,在尽可能短的时间内,确定(项目值得开发否)。
2.可行性研究在进行简要需求分析和设计时,要在高层次上以(较抽象形式)进行。
3.系统流程图用图形符号表示系统中各个元素,表达了系统中各个元素之间的(信息流动)。
4.软件工程有两种效益,它们是无形效益和(有形效益)。
5.若年利率为i,不计复利,n年后能收入F元的现在价值P=(F/(1+n*i))。
6.纯收入是软件生存周期内两项值之差,这两项是(经济效益与投资)
7.项目开发计划是一种(管理性)文档。
8.可行性研究具体步骤的最后一步是(编写可行性报告)。
二、选择题
1.研究硬软件资源的有效性是进行()研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.操作可行性
2.可行性研究要进行的需求分析和设计应是()。
A.详细的B.全面的C.简化、压缩的D.彻底的
3.可行性分析中,系统流程图用于描述()。
A.当前运行系统B.当前逻辑模型C.目标系统D.新系统
4.系统流程图是一种工具,它用来描述()。
A.逻辑系统B.程序系统C.体系结构D.物理系统
5.年利率为i,现存入P元不计复利,n年后本金利息为()。
A.P*(1+i)nB.P*(1–i*n)C.P*(I+i*n)D.P*(1+i)*nGR1Pt。
三、简答题
1.软件的可靠性和可用性的定义和区别是什么?
可靠性:
是程序在给定的时间间隔内,按照规格说明书的规定,成功地运行的概率。
可用型:
是程序在给定的时间点,按照规格说明书的规定,成功运行的概率。
区别:
可靠性意味着在0到t这段时间间隔内系统没有失效,而可用性只意味着在时刻t,系统是正常运行的。
第三章
一、填空题
1,需求分析阶段产生的最重要的文档是(需求规格说明书)。
2,为解决一个复杂问题,往往采取的策略是(自顶向下逐步分解)。
3.SA方法中使用半形式化的描述方式表达需求,采用的主要描述工具是(数据流图和数据词典)。
4.数据流图中有四种符号元素,它们是(数据流、加工、数据存储、数据源点和终点)
5.数据词典中有四类条目,分别是(数据流、数据项、数据存储、基本加工)
6.在画分层的DFD图,父图与子图的输入输出数据流要(平衡)
二、选择题
I.分层DFD是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的()。
A.细节B.输入与输出C.软件的作者D.绘制的时间
2.需求规格说明书的内容还应包括对()的描述:
A.主要功能B.算法的详细过程C.用户界面及运行环境D.软件的性能
3.需求规格说明书的作用不应包括()。
A.软件设计的依据B.用户与开发人员对软件要做什么的共同理解
C.软件验收的依据D.软件可行性研究的依据
4.SA方法用DFD描述()
A.系统的控制流程B系统的数据结构C.系统的基本加工D.系统的功能
5.一个局部数据存储只有当它作为()时,就把它画出来。
A.某些加工的数据接口B.某个加工的特定输入
C.某个加工的特定输出D.某些加工的数据接口或某个加工的特定输入/输出
6.对于分层的DFD,父图与子图的平衡指子图的输入、输出数据流同父图相应加工的输入、输出数据流()。
RJJ4R。
A.必须一致B.数目必须相等C.名字必须相同D.数目必须不等
7.需求分析阶段不适用于描述加工逻辑的工具是()
A.结构化语言B.判定表C.判定树D.流程图
8.SA方法的分析步骤是首先调查了解当前系统的工作流程,然后()。
A.获得当前系统的物理模型,抽象出当前系统的逻辑模型,建立目标系统的逻辑模型
B.获得当前系统的物理模型,抽象出当标系统的逻辑模型,建立目标系统的物理模型
C.获得当前系统的物理模型,建立当前系统的物理模型,抽象出目标系统的逻辑模型
D.获得当前系统的物理模型,建立当前系统的物理模型,建立目标系统的物理模型
9.SA方法的基本思想是()
A.自底向上逐步抽象B.自底向上逐步分解C.自顶向下逐步分解D.自顶向下逐步抽象
10.初步用户手册在()阶段编写。
A.可行性研究B.需求分析c.软件概要设计D.软件详细设计
三、应用题
1.某电器集团公司下属一个成套厂(产品组装〕和若干零件厂等单位,成套厂下设技术科、生产科、供应科等基层单位。
现要建立一个计算机辅助企业管理系统,其中:
TXjM1。
生产科的任务是:
1)根据销售公司转来的内部合同(产品型号、规格、数呆、交货日期)制定车间月生产计划:
2)根据车间实际生产日报表、周报表调整月生产计划:
3)以月生产计划为依据,制定产品设计(结构、工艺)及产品组装月计划;
4)将产品的组装计划传达到技术科,将组装月计划分解为周计划,下达给车间:
技术科的任务是:
1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制件物料清单;cNSpu。
2)根据组装计划进行产品工艺设计(冲压、喷漆、焊接等),根据产品自制件物料清单产生工艺流程图给零件厂。
Ym5Ep。
供应科的任务是:
1)根据技术科的外购需求计划和仓库的缺货通知单及月盘存表制定采购计划给采购员;
2)对采购来的材料进行库存管理(登录、查询、修改、删除)。
请根据以上文字叙述画出企业管理系统的分层DFD图。
2.假设某航空公司规定,乘客可以免费托运行李的重量不超过30公斤。
当行李的重量超出30公斤时,对一般舱的国内乘客超重部分每公斤收费4元,对头等舱的国内乘客超重部分每公厂收费6元。
对国外乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
试画相应的判定表。
BrxnD。
第五章
一、填空题
1.软件设计阶段产生的最重要的文档是(软件概要设计说明书)
2.软件结构是以模块)为基础组成的一种控制层次结构。
3.反映软件结构的基本形态特征是深度、宽度、扇入、扇出)。
4.一个模块把数值作为参数送给另一个模块,这种藕合方式称为数据耦合)
5.两个模块通过全程变量相互作用,这种耦合方式称为公共耦合)
6.将与同一张年报表有关的所有程序段组成一个模块,该模块的内聚性为通信内聚)
7.一个模块的作用范围指的受该模块内一个判定影响的所有模块)集合。
8.一个模块的控制范围指模块本身以及其所有下属模块)的集合。
9.结构化设计以数据流图)为基础映射成软件结构。
10.为了防止软件概要设计的错误传播到开发的后续阶段,在概要设计文档完成以后,要进行软件评审)。
二、选择题
1.结构化设计方法在软件开发中,用于()。
A测试用例设计B.软件概要设计C.程序设计D.软件详细设计
2.软件结构使用的图形工具,一般采用()图。
A.DFDB.PADC.SCD.ER
3.软件结构图中,模块框之间若有直线连接,表示它们之间存在着()关系。
A.调用B.组成C.链接D.顺序执行
4.在软件概要设计中,不使用的图形工具是()
A.SCB.IPOC.IDEF0D.PAD
5.划分模块时,一个模块的()。
A.作用范围应在其控制范围之内B.控制范围应在其作用范围之内
C.作用范围与控制范围互不包含D.作用范围与控制范围不受任何限制
6.属于软件设计的基本原理是()。
A.数据流分析设计B.变换流分析设计C.事务流分析设计D.模块化
7.变换流的DFD由三部分组成,不属于其中一部分的是()。
A.事务中心B.变换中心C.输入流D输出流
8.软件设计阶段一般又可分为()。
A.逻辑设计与功能设计B.概要设计与详细设计
C.概念设计与物理设计D.模型设计与程序设计
9.好的软件结构应是()。
A.高耦合、高内聚B.低耦合、高内聚C.高耦合、低内聚D.低耦合、低内聚
l0.结构图中,不是其主要成分的是()。
A.模块B.模决间传递的数据C.模块内部数据D.模块的控制关系
三、简答题
1.书写需求陈述时,应该包括哪些内容?
问题范围,功能需求,性能需求,应用环境,假设条件。
2.耦合性有哪几种类型?
其耦合度的顺序如何?
低:
非直接耦合→数据耦合→标记耦合→控制耦合→外部耦合→公共耦合内容耦合:
高
五、应用题
将第3章应用题中第1题的DFD转换成软件结构图。
第六章
一、名词解释
1.结构化程序设计2.PAD3.PDL4.结构冲突5.对应关系
二、填空题
1.结构化程序设计三种基本控制结构)方法使用构造程序。
2.在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是程序流程)
3.结构化程序设计技术指导人们用良好的思想方法开发易于理解、易于验证)的程序。
4.详细描述处理过程常用的三种工具是图形、语言和表格)。
5.Jackson图不仅可表示程序结构,还可以表示数据结构)
6.PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和模块接口)
7.详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易读)
8.用JSP方法导出程序结构后,还要列出操作与条件),并把它们分配到程序结构图的适当位置上去。
9.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的数据结构)进行设计:
10.在详细设计阶段,为了提高数据的输入、储存、检索等操作的效率,并节约存储空间,对某些数据项的值要代码)进行设计。
ODMa3。
三、选择题
1.在详细设计阶段,一种二维树型结构并可自动生成程序代码的描述工具是()。
A.PADB.PDLC.IPDD.判定树
2.结构化程序设计的一种基本方法是()。
A.筛选法B.递归法C迭代法D.逐步求精法
3.JSP方法是一种面向()的设计方法
A.对象B.数据流C.数据结构D.控制结构
4.JSP方法主要用于规模适中的()系统的开发。
A.数据处理B.实时处理C.文字处理D.科学计算
5.PDL是软件开发过程中用于()阶段的描述工具。
A需求分析B.概要设计C.详细设计D.编程
6.在详细设计阶段,可自动生成程序代码并可作为注释出现在源程序中的描述工具是()。
A.PADB.PDLC.IPOD.流程图
7.Jackson图上下层之间的关系是()。
A.调用关系B.组成关系C.继承关系D.嵌套关系
8.JSP方法根据输入输出的数据结构按一定的规则映射成软件的()。
A.体系结构B.数据结构C.程序结构D.顺序结构
9.程序的三种基本控制结构是()。
A.过程、子程序和分程序B.顺序、选择和重复
C.递归、堆栈和队列D.调用、返回和转移
l0.程序的三种控制结构的共同特点是()。
A.不能嵌套使用B、只能用来写简单程序C、已经用硬件实现D.只有一个入口和一个出口
四、简答题
1.列举出5个详细设计阶段的常用工具。
程序流程图,盒图,PAD图(问题分析图),判定表,判定树,过程设计语言,
2.2.已知有如下的伪码程序
START
IFCl
THEN
WHlLEC2DO
f
ENDDO
ELSE
BLOCK
g
p
ENDBLOCK
ENDlF
REPEATUNTILC3
q
r
ENDREP
STOP
1)请改用N-S图描述;
2)请改用PAD图描述。
五、应用题
画出下面用PDL写出的程序的PAD图。
WHILEPDC1
IFA>0THENA1ELSEA2ENDIF;
IFB>0THENB1;
IFC>0THENC1ELSEC2ENDIF
ELSEB2
ENDIF;
B3
ENDWHILE;
第七章
(1)
1.程序设计语言的特性主要有心理特性、工程特性、技术特性)三个方面。
2.程序设计语言的心理特性在语言中的表现形式为歧义性、简洁性、局部性、顺序性和传统性)
3.程序设计语言的工程特性主要表现为可移植性、开发工具的可利用性、软件的可重用性、可维护性)
4.项目的应用领域一般有科学工程计算、数据处理与数据库应用、实时处理、系统软件、人工智能
)种类型。
5.与编码风格有关的因素有数据说明、语句构造、输入输出效率等,其中还有一个重要的因素是源程序文档化)
二、选择题
1.项目的应用领域是选择编程语言关键的因素之一,不适合作为项目应用领域的类型是()。
A.系统软件B.数据处理与数据库应用C实时处理D.UNIX操作系统
2.为了提高易读性,源程序内部应加功能性注释,用于说明()
A模块总的功能B.程序段或语句的功能C.模块参数的用途D.数据的用途
3.程序设计语言的心理特性在语言中表现不应包括()
A.歧义性B.简洁性C.保密性D.传统性
4.程序设计语言的工程特性其中之一表现在()
A.软件的可重用性B.数据结构的描述性
C.抽象类型的描述性D.数据库的易操作性
5.程序设计语言的技术特性不应包括()。
A.数据结构的描述性B.抽象类型的描述性
C.数据库的易操作性D.软件的可移植性
三、简答题
1.概要设计和详细设计的主要任务各是什么?
概要设计的主要任务:
通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定义功能的模块结构。
TikfH。
详细设计的主要任务:
详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。
第七章
(2)
一、名词解释
1.黑盒测试
黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。
黑盒测试又称为功能测试。
x6gkM。
2、判定覆盖
不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。
B2hHw。
3、结构化程序设计
如果一个程序的代码块仅仅通过顺序、选择和循环这三种控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个这个程序是结构化的。
rr6an。
4、条件覆盖
条件覆盖的含义是,不仅每条语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。
5、回归测试
从新执行已经做过的测试的某个子集,以保证加入新的模块没有带来非预期的副作用。
二、填空题
1.软件测试是为发现错误)而执行程序的过程。
2.运行被测程序的方法称为动态测试)测试。
3.动态测试中,主要测试软件功能的方法称为黑盒法)法。
4.选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为判定覆盖)
5.要覆盖含有循环结构的所有路径是不可能的,一般通过限制循环次数)来测试。
6.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等价类和两个不合理等价)2Cav8。
7.凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是错误推测法)
8.集成测试中的具体方法是渐增式和非渐增式测试方法)。
9.确认测试阶段的两项工作是进行确认测试和软件配置审查)
10.在单元测试中,测试一个模块时,需要设计驱动模块和桩模)
三、选择题
1.测试的关键问题是()。
A.如何组织软件评审B.如何选择测试用例
C.如何验证程序的正确性D.如何采用综合策略
2.软件测试用例主要由输入数据和()两部分组成。
A.测试计划B.测试规则C.预期输出结果D.以往测试记录分析
3.成功的测试是指运行测试用例后()。
A.未发现程序错误
B.发现了程序错误
C.证明程序正确
D.改正了程错误
4.下列几种逻辑覆盖标准中,查错能力最强的是()。
A.语句覆盖B.判定覆盖C.条件覆盖D.条件组合覆盖
5.在黑盒测试中,着重检查输入条件组合的方法是()。
A.等价类划分法B.边界值分析法C.错误推测法D.因果图法
6.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()。
A.系统功能B.局部数据结构C.重要的执行路径D.错误处理
7.软件测试过程中的集成测试主要是为了发现()阶段的错误。
A.需求分析B.概要分析C.详细设计D.编码
8.不属于白盒测试的技术是()。
A.路径覆盖B.判定覆盖C.循环覆盖D.边界值分析
9.集成测试时,能较早发现高层模块接口错误的测试方法为()。
A.自顶向下渐增式B.自底向上渐增式测试C.非渐增式测试D.系统测试
10.确认测试以()文档作为测试的基础。
A.需求规格说明B.设计说明书C.源程序D.开发计划
四、简答题
1.黑盒测试能够发现哪些类型的错误?
(至少回答出3种)
1)功能不正确或遗漏的功能、2)界面错误、3)数据结构错误或外部数据库访问错误、4)性能错误、5)初始化和终止错误OlT80。
2.估计错误总数时我们可以用植入错误法,请简略回答什么是植入错误法?
假设人为植入的错误数为Ns,测试后发现ns个植入的错误,此外还发现了n个原有的错误,则能估算出原有的错误总数为:
n/(ns/Ns)。
0qIg7。
五、应用题
下图描述了某个子程序的处理流程,根据判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等五种覆盖标准,从供选择的答案中分别找出满足相应标准的最小的测试数据组。
2kQ7H。
(1)a=5b=1
(2)a=5b=-1
(3)a=5b=1(4)a=5b=1
a=-5b=-1a=0b=-1
(5)a=5b=-1(6)a=5b=I
a=-5b=1a=0b=0
a=-5b=-1a=-5b=-1
(7)a=5b=1(8)a=5b=1
a=0b=1a=0b=-1
a=0b=-1a=-5b=1
a=-5b=1a=-5b=-1
流程图如下:
达到判定覆盖为(4);达到条件覆盖为(3):
达到判定/条件覆盖为(6);
达到条件组合覆盖为(8);达到路径覆盖为(7).
第八章
一、填空题
1.维护阶段是软件生存周期中时间最长的阶段,也是花费精力和费用的最多)阶段。
2.在软件交付使用后,由于在软件开发过程中产生的错误没有完全彻底在开发阶段发现,必然有一部分隐含错误带到维护)阶段。
v4au4。
3.采用手工方法开发软件只有程序而无文档,维护困难,这是一种非结构化)维护。
4.软件维护费用增加的主要原因是维护的生产率)非常低。
5.软件维护工作的活动分为生产性活动和非生产性)活动。
6.所有软件维护申请报告要按规定方式提出,该报告也称软件问题)报告。
7.有两类维护技术:
在开发阶段使用来减少错误,提高软件可维护性的面向维护技术;在维护阶段用来提高维护的效率和质量的维护支援)技术。
gnYz5。
二、选择题
1.在生存周期中,时间长、费用高、困难大的阶段是()。
A需求分析B.编码C.测试D.维护
2.为适应软硬件环境变化而修改软件的过程是()。
A校正性维护B.适应性维护C.完善性维护D.预防性维护
3.软件维护困难的主要原因是()。
A费用低B.人员少C.开发方法的缺陷D.维护难
4.软件维护费用高的主要原因是()。
A生产率高B.生产率低C.人员多D.人员少
5.维护阶段的文档是()。
A软件需求说明B.操