软件工程题库.docx
《软件工程题库.docx》由会员分享,可在线阅读,更多相关《软件工程题库.docx(60页珍藏版)》请在冰豆网上搜索。
![软件工程题库.docx](https://file1.bdocx.com/fileroot1/2023-1/29/bf93e5a5-c955-4b3a-9f1c-55886321128e/bf93e5a5-c955-4b3a-9f1c-55886321128e1.gif)
软件工程题库
1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)
A.软件工程 B.软件周期 C.软件危机 D.软件产生
2.研究开发所需要的成本和资源是属于可行性研究中的( B )研究的一方面。
A.技术可行性 B.经济可行性 C.社会可行性 D.法律可行性
3.IDEF0图不反映出系统( B )
A.系统做什么 B.系统功能如何实现 C.系统由谁来做 D.系统实现的约束条件
4. 模块的内聚性最高的是( D )
A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚
5.在SD方法中全面指导模块划分的最重要的原则是( D )
A.程序模块化 B.模块高内聚 C.模块低耦合 D.模块独立性
6. 软件详细设计主要采用的方法是( D )
A.模块设计 B.结构化设计 C.PDL语言 D.结构化程序设计
7.下列关于JSP方法不正确的说法是( D )
A.JSP方法主要用于规模不大的数据处理系统
B.JSP方法不明确的划分软件概要设计和详细设计的两个阶段
C.JSP方法适用于输入数据和输出数据之间有对应关系的问题求解
D.JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。
因此它只适用于详细设计阶段
8.不适合作为科学工程计算的语言是( D ) A. Pascal B. C C. Fortran D. Prolog
9.黑盒测试在设计测试用例时,主要需要研究( A )
A.需求规格说明与概要设计说明 B.详细设计说明
C.项目开发计划 D.概要设计说明与详细设计说明
10. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:
-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是( C )
A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法
11. 下列属于维护阶段的文档是( C )
A.软件规格说明 B.用户操作手册 C.软件问题报告 D.软件测试分析报告
12. 快速原型模型的主要特点之一是( D )
A.开发完毕才见到产品 B.及早提供全部完整的软件产品
C.开发完毕后才见到工作软件 D.及早提供工作软件
13. 因计算机硬件和软件环境的变化而做出的修改软件的过程称为( B )
A.较正性维护 B.适应性维护 C.完善性维 D.预防性维护
14. 类库这种机制是( D )级别的信息共享。
A.同一类 B.不同类 C.同一应用 D.不同应用
15. 只有单重继承的类层次结构是( C )层次结构。
A.网状型 B.星型 C.树型 D.环型
16. 在屏蔽硬件错误的冗错技术中,冗余附加技术有( D )
A.三模冗余 B.信息冗余
C.冗余备份程序的存储及调用 D.关键程序和数据的冗余存储和调用
17. 软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( B )
A.可用性 B.可靠性 C.正确性 D.完整性
18. 下列文档与维护人员有关的有( C )
A.软件需求说明书 B.项目开发计划 C.概要设计说明书 D.操作手册
19. 采用Gantt图表示软件项目进度安排,下列说法中正确的是( D )
A.能够反映多个任务之间的复杂关系 B.能够直观表示任务之间相互依赖制约关系
C.能够表示哪些任务是关键任务 D.能够表示子任务之间的并行和串行关系
20. 下列模型属于成本估算方法的有( A )
A.COCOMO模型 B.McCall模型 C.McCabe度量 D.时间估算法
21. 瀑布模型的关键不足在于( B )
A. 过于简单 B. 不能适应需求的动态变更 C. 过于灵活 D. 各个阶段需要进行评审
22. 在面向对象软件开发方法中,类与类之间主要有以下结构关系( A )
A. 继承和聚集 B. 继承和一般 C. 聚集和消息 D. 继承和方法调用
23. 以下哪一项不是软件危机的表现形式( C )
A. 成本高 B. 生产率低 C. 技术发展快 D. 质量得不到保证
24. 以下哪一项不是面向对象的特征( D ) A. 多态性 B. 继承性 C. 封装性 D. 过程调用
25. 面向对象模型主要由以下哪些模型组成( A )
A. 对象模型、动态模型、功能模型 B. 对象模型、数据模型、功能模型
C. 数据模型、动态模型、功能模型 D. 对象模型、动态模型、数据模型
26. 软件可行性研究一般不考虑( D )
A. 是否有足够的人员和相关的技术来支持系统开发
B. 是否有足够的工具和相关的技术来支持系统开发
C. 待开发软件是否有市场、经济上是否合算
D. 待开发的软件是否会有质量问题
27. 软件维护的副作用主要有以下哪几种( C )
A. 编码副作用、数据副作用、测试副作用 B. 编码副作用、数据副作用、测试副作用
C. 编码副作用、数据副作用、文档副作用 D. 编码副作用、文档副作用、测试副作用
28. 软件项目计划一般不包括以下哪项内容( D )
A. 培训计划 B. 人员安排 C. 进度安排 D. 软件开发标准的选择和制定
29. 以下哪一项不属于面向对象的软件开发方法( C )
A. coad方法 B. booch方法 C. jackson方法 D. omt方法
30. 以下哪种测试方法不属于白盒测试技术( D )
A. 基本路径测试 B. 边界值分析测试
C. 循环覆盖测试 D. 逻辑覆盖测试
31. 软件生命周期中所花费用最多的阶段是( D )
A. 详细设计 B. 软件编码 C. 软件测试 D. 软件维护
32. 在软件开发过程中,DFD是面向( B )分析方法的描述工具。
A. 数据结构 B. 数据流 C. 对象 D. 构件(component)
33. 在画分层DFD时,应注意保持( A )之间的平衡。
A. 父图与子图 B. 同一父图的所有子图
C. 不同父图的所有子图 D. 同一子图的所有直接父图
34. DFD中从系统的输入流到系统的输出流的一连串连续变换形成一种信息流,这种信息流可分为( B )两大类。
A. 控制流和变换流 B. 变换流和事务流 C. 事务流和事件流 D. 事件流和控制流
35. 通常影响软件易维护性的因素有易理解性、易修改性和( D )。
A. 易使用性 B. 易恢复性 C. 易替换性 D. 易测试性
36. 在软件的开发过程中往往采取各种措施来提高软件的易维护性。
如( B )有助于提高软件的易修改性。
A. 高效的算法 B. 信息隐蔽原则 C. 增强健壮性 D. 身份认证
37. 在软件质量特性中,( C )是指在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。
A. 正确性 B. 准确性 C. 可靠性 D. 易使用性
38. 在软件质量特性中,( A )是指防止对程序及数据的非授权访问的能力。
A. 安全性 B. 适应性 C. 灵活性 D. 容错性
39. 软件设计中划分模块的一个准则是( C )。
A. 低内聚低耦合 B. 低内聚高耦合 C. 高内聚低 D. 高内聚高耦合
40. 一个模块内部的内聚种类中( C )内聚的内聚度最高。
A. 偶然 B. 逻辑 C. 功能 D. 过程
41. OMT是一种对象建模技术,它定义了三种模型,它们分别是( A )。
A. 对象模型、动态模型、功能模型 B. 静态模型、动态模型、功能模型
C. 对象模型、时序模型、功能模型 D. 对象模型、动态模型、计算模型
42. 对象建模技术中,表示瞬时行为上的系统的“控制”特征,通常可用( B)来表示。
A. 类图 B. 状态图 C. 对象图 D. 数据流图
43. 为了提高软件的可移植性,应注意提高软件的( D )。
A. 使用方便性 B. 简洁性 C. 可靠性 D. 设备不依赖性
44. 可维护性通常包括( D )。
A. 可用性和可理解性 B. 可修改性、数据独立性和数据一致性
C. 可测试性和稳定性 D. 可理解性、可修改性和可测试性
45. ( D )维护是为了补充软件的功能或提高原有软件的性能而进行的维护活动。
A. 功能性 B. 扩展性 C. 合法性 D. 完善性
46. ( D )是指系统万一遇到未预料的情况时,能够按照预定的方式做合适的处理。
A. 可用性 B. 正确性 C. 稳定性 D. 健壮性
47. 在设计测试用例时,( B )是用得最多的一种黑盒测试方法。
A. 等价类划分 B. 边值分析 C. 因果图 D. 判定表
48. 在实际应用中,一旦纠正了程序中的错误后,还应选择部分或全部原先已测试过的测试用例,对修改后的程序重新测试,这种测试称为( D )。
A. 验收测试 B. 强度测试 C. 系统测试 D. 回归测试
49. 在软件工程的设计阶段中,( C )法只提供了重要的设计准则,没有规定出具体的工作步骤。
A. SD B. Jackson C. Parnas D. 以上皆非
50. 软件测试的目的是( C )。
A. 表明软件的正确性 B. 评价软件质量 C. 尽可能发现软件中错误 D. 判定软件是否合格
51. 通常,( D )是在代码编写阶段可进行的测试,它是整个测试工作的基础。
A. 系统测试 B. 安装测试 C. 验收测试 D. 单元测试
52. 逻辑覆盖标准主要用于( B )。
A. 黑盒测试方法 B. 白盒测试方法 C. 灰盒测试方 D. 软件验证方法
53. 逻辑覆盖中最强的覆盖标准是( B )。
A. 条件覆盖 B. 条件组合覆盖 C. 判定覆盖 D. 语句覆盖
54. 软件维护工作越来越收到重视,它的花费常常要占软件生存周期全部花费的( C )%左右。
A. 10~20 B. 20~40 C. 60~80 D. 90以上
55. 为了减少维护工作的困难,可以考虑采取的措施是( C )。
A. 设法开发出无错的软件 B. 增加维护人员数量
C. 切实加强维护管理,并在开发过程中就采取有利于未来维护的措施
D. 限制修改的范围
56. 软件测试是软件质量保证的主要手段之一。
“高产”的测试是指( C )。
A. 用适量的测试用例,说明被测试程序正确无误
B. 用适量的测试用例,说明被测试程序符合相应的要求
C. 用少量的测试用例,发现被测试程序尽可能多的错误
D. 用少量的测试用例,纠正被测试程序尽可能多的错误
57. Jackson结构化程序设计方法主要适用于规模适中的( A )系统的开发。
A. 数据处理 B. 文字处理 C. 实时控制 D. 科学计算
58. 单元测试在试验阶段进行,它所依据的模块功能描述和内部细节以及测试方案应在( C )阶段完成,目的是发现编程错误。
A. 需求分析 B. 概要设计 C. 详细设计 D. 结构设计
59. 使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。
A. 程序的内部逻辑 B. 程序的复杂程度 C. 使用说明书 D. 程序功能
60. 软件的集成测试工作最好由( D )承担,以提高集成测试的效果。
A. 该软件的设计人员 B. 该软件开发组的负责人
C. 该软件的编程人员 D. 不属于该软件开发组的软件设计人员
1、 集成测试:
集成测试也称组装测试或联合测试。
是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。
组装模块的方式有两种:
渐增式测试和非渐增式测试。
2、 CASE:
CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。
CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。
因而,CASE领域是一个应用、继承和综合的领域。
3、 SA:
结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。
基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。
4、 软件工程:
软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。
它由方法、工具和过程三部分组成。
5、 可互操作性:
多个软件元素相互通信并协同完成任务的能力。
为了实现可互操作性,软件开发通常要遵循某种标准,支持这种标准的环境将为软件元素之间的互操作提供便利。
6、 法律可行性研究:
研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。
7、 数据流图:
数据流图就是用来刻画数据流和转换的信息系统建模技术
8、 需求分析:
需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,经用户非形式化的需求陈述转化为完整的需求定义,再由需求定义转化到相应的形式功能规约的过程。
9、 过程抽象:
过程抽象是一个命名的指令序列,它具有一个特定的和受限的功能。
10、 模块独立性:
每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.
11、 数据性块间联系:
计算机系统工程是指与构造基于计算机系统有关的过程、方法和技术。
它是一种问题求解活动。
12、 判定表:
判定表提供了一种把各种动作和条件(在处理解说词中描述的)专换为表格形式的表示法。
13、 事务型数据流图:
某个加工将它的输入分离成一串发散的数据流,形成许多活动路径,并根据输入的值选择其中一条路径。
具有这样特征的数据流图称为事务型数据流图。
14、 耦合性:
是软件系统结构中各模块间相互联系紧密程度的一种度量。
也称块间联系
15、 面向数据设计:
面向数据的设计就是根据数据结构的表示来获取软件表示
16、 系统响应时间:
系统响应时间指当用户执行了某个控制动作后(例如,按回车键,点击鼠标器等),系统做出反应的时间(指输出所期望的信息或执行对应的动作)。
17、 判定-条件覆盖:
用判定-条件覆盖所设计的测试用例能够使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行一次。
18、 路径覆盖:
路径覆盖就是设计足够的测试用例,覆盖程序中所有可能的路径。
19、 静态测试:
是指被测程序不再机器上运行,而是采用人工测试和计算机辅助静态分析的手段对程序进行检测。
20、 α测试:
α测试是由一个用户在开发场所进行的,用户在开发者的“指导”下对软件进行的测试,开发者负责记录错误和使用中出现的问题。
三、判断题
1、 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
对
2、 数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
错
3、 软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。
错
4、 软件模块之间的耦合性越弱越好。
对
5、 过程描述语言可以用于描述软件的系统结构。
错
6、 如果通过软件测试没有发现错误,则说明软件是正确的。
错
7、 快速原型模型可以有效地适应用户需求的动态变化。
对
8、 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
对
9、 软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
对
10、 软件定义的基本任务是确定软件系统的工程需求。
对
11、 为支持软件开发、维护、管理而研制的计算机程序系统称为软件工具。
对
12、 软件提交是指把软件提交给用户,必要时还应负责把软件安装到用户环境中。
错
可行性阶段使用的工具:
系统流程图(SF)
需求分析阶段使用的工具:
数据流图(DFD图)、数据字典(DD)、判定树、判定表。
详细设计阶段图形描述工具主要有:
程序流程图、N-S结构图、问题分析图(简称PAD图)。
在软件详细设计阶段,常用的图形描述工具有程序流程图,盒图(NS图)和问题分析图(PAD).常用的语言描述工具为PDL(程序设计语言),常用的表格描述工具有判定表和判定树.
1. 软件是一种逻辑产品,它的开发主要是(A )。
A研制 B拷贝 C再生产 D复制
2. 软件生命周期一般包括:
软件开发期和软件运行期,下述(D )不是软件开发期所应包含的内容。
A需求分析 B 结构设计 C程序编制 D软件维护
3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )。
A喷泉模型 B 增量模型 C瀑布模型 D螺旋模型
4. 在软件生存周期中,( B )阶段必须要回答的问题是“要解决的问题是做什么?
”。
A详细设计 B 可行性分析和项目开发计划 C概要设计 D软件测试
5. 软件产品与物质产品有很大区别,软件产品是一种(C )产品
A有形 B 消耗 C逻辑 D文档
6. ( C )把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。
A 原型模型 B 螺旋模型 C 基于知识的智能模型 D 喷泉模型
7. ( B )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
A概要设计 B 详细设计 C 编码 D 测试
8. 下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是( A )。
A 原型模型 B 瀑布模型 C 基于知识的智能模型 D 变换模型
9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( C )。
A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型
10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是( D )。
A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型
“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
11. 使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为( C )。
A可修改性 B可靠性 C可适应性 D 可重用性
12. 软件特性中,一个软件能再次用于其他相关应用的程度称为( B )。
A可移植性 B可重用性 C 容错性 D 可适应性
13. 软件特性中,( A )是指系统具有清晰的结构,能直接反映问题的需求的程度。
A可理解性 B可靠性 C可适应性 D 可重用性
14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为( B )。
A可理解性 B 可维护性 C可适应性 D 可重用性
15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是( C ).
A可理解性 B可修改性 C可移植性 D 可重用性
16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是( D )。
A有效性 B可适应性 C正确性 D 可靠性
17.软件特性中,允许对软件进行修改而不增加其复杂性指的是( A )。
A可修改性 B可适应性 C可维护性 D 可移植性
18. 软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是( B )。
A可理解性 B可互操作性 C可维护性 D 可追踪性
19. 软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力指的是( C )。
A 可理解性 B 可互操作性 C可追踪性 D 可维护性
20. 软件的可修改性支持软件的( D )。
A 有效性 B 可互操作性 C可追踪性 D 可维护性
21. 软件的可移植性支持软件的( A )。
A 可适应性 B 可互操作性 C可追踪性 D 有效性
22.软件的可理解性支持软件的( B )。
A 有效性 B 可移植性 C可追踪性 D 可靠性
23.在软件工程的原则中,抽象、信息隐藏、模块化和局部化的原则支持软件的( C )。
A 有效性 B 可互操作性 C可靠性 D 可追踪性
24.下列选项中,属于需求分析阶段的任务的是( D )。
A 组装测试计划 B 单元测试计划 C软件总体设计 D 验收测试计划
25.下列选项中,属于概要设计阶段的任务的是( A )。
A 组装测试计划 B 单元测试计划 C初步用户手册 D 验收测试计划
26.下列选项中,属于详细设计阶段的任务的是( B )。