软件工程期末测试题.docx
《软件工程期末测试题.docx》由会员分享,可在线阅读,更多相关《软件工程期末测试题.docx(37页珍藏版)》请在冰点文库上搜索。
软件工程期末测试题
判断第一章概述1.由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。
(×)2.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。
(×)3.购买大多数计算机系统所需的硬件比软件更昂贵。
(×)大多数软件产品在其生命周期中不需要增强功能。
(×)4.
大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。
(√)5.
)6.一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。
(×第二章软件过程它是软件可行性分析软件需求规格说明书在软件开发过程中具有重要的作用,3.(×)的依据。
软件项目管理因为大多数项目能够及时完成并成项目管理在现代软件开发中是不太重要的,2.(×)功交付。
13.随着项目计划的不断形成,产品分解和过程分解经常是同时发生的。
(√)15.估算不可靠的唯一原因是估算人员缺乏经验。
(×)16.由于软件项目估算不完全可靠,所以项目开始后可以忽略这些估算。
(×)(×)19.估计待开发软件产品的规模必须基于像代码行等直接度量单位。
(×)24.功能点不能用于估算面向对象的软件。
(×)25.软件项目延迟是不可避免的,而且无法解释其原因。
将开发团队人数增加一倍可以保证项目完成时间减少一半。
(×)26.主动的风险管理有时被描述为救火。
(×)28.软件工作产品一旦成为基线就不能再更改了。
(×)34.如果开发小组使用自动化的项目数据库工具,那么就不需要变更控制。
(×)35.需求工程在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做1.
(√)什么。
软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的2.(×)依据。
目前存在一个很普遍的现象,即不同的客户提出的需求是相互矛盾的,但每6.
(√)个人都争辩自己是正确的。
stakeholders)是将来购买所开发软件系统的人。
(×)利益相关者(7.
需求工程师的任务是将所有利益相关者的信息进行分类以便允许决策者选择11.个相互一致的需求集。
(×)一
开发人员与客户创建用例以帮助软件团队理解有多少类型的最终用户将使用13.些功能。
(×)这
(×)16.用例参与者总是人员而不是系统设备。
17.在需求确认过程中需求模型被评审以保证其技术可行性。
(×)
面向对象基础
1.模型是对现实的简化,建模是为了更好地理解所开发的系统。
(√)
2.UML语言支持面向对象的主要概念,并与具体的开发过程相关。
(×)
面向对象分析1.面向对象分析的核心在于建立一个描述软件系统的模型。
(×)
5.分析类用于描述系统中概念层次的对象。
(√)
7.在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析的消息传递将用例的职责分配到分析类中。
(√)类实例之间
10.需求评审人员主要由开发人员组成,一般不包括用户。
(×)
面向对象设计1.面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。
(√)
系统设计的主要任务是细化分析模型,最终形成系统的设计模型。
(×)2.
3.关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。
(×)
4.用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。
(√)软件实现(√)1.在程序设计中使用括号以改善表达式的清晰性。
在程序设计中应尽可能对程序代码进行优化。
(×)2.
(√)3.不要修补不好的程序,要重新写。
(×)4.程序中的注释是可有可无的。
对递归定义的数据结构不要使用递归过程。
(×)5.
软件测试1.在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花(×)费的代价就会降低。
(√)2.好的测试是用少量测试用例运行程序,发现被测程序尽可能多的错误。
3.好的测试用例应能证明软件是正确的。
(×)4.白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。
(√)等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中5.
选取少数有代表性的数据作为测试用例。
(√)
软件演化
1.只有质量差的软件产品才需要维护。
(×)
2.遗留系统是许多年以前开发的且已经没有商业价值的计算机系统。
(×)
3.更换遗留系统是有业务风险的。
(√)
4.软件的维护成本通常比开发成本低。
(×)
选择第一章概述D)1.()因素促使计算机系统越来越复杂。
(计算机C.外部输入/输出选项的更加多样性A.计算机内存和存储容量上的巨大增长B.
D.以上所有选项体系结构方面的深刻变化
A)2.下面的()不再是现代软件工程师关注的问题。
(为什么C.为什么软件需要很长时间才能完成?
A.为什么计算机硬件的成本这么高?
B.
D.为什么不能在产品发布前去除软件错误?
开发一个软件的成本这么高?
C))。
(3.软件会逐渐退化而不会磨损,其原因在于(不断的变更使组件C.软件错误通常发生在使用之后A.软件通常暴露在恶劣的环境下B.
软件备件很难订购接口之间引起错误D.
))。
(C4.大多数软件仍然是定制开发的,其原因在于(
软件在不使用其他C.软件组件重用是十分普遍的B.可重用的组件太昂贵而无法使用A.
商业组件在很多应用领域中可以得到组件的情况下很容易构造出来D.
))说法是正确的。
(C5.下面的(
当前先进的软件工程方法已经解决了软B.70年代末期全面爆发A.软件危机在20世纪C.软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题件危机的问题
软件危机是指在软件产品中存在一系列的质量问题D.
(B))6.软件工程的基本目标是(。
D.C.努力发挥开发人员的创造性潜能A.消除软件固有的复杂性B.开发高质量的软件更好地维护正在使用的软件产品程,()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过7.
(D)它包括方法、工具和过程三个要素。
D.软件工程软件过程C.软件测试A.软件产品B.
C)软件工程的基本要素包括方法、工具和()。
(8.
人员D.C.过程A.软件系统B.硬件环境))准则。
(E9.软件工程师在从事软件工作时应使用下面的(从来不C.从来不为个人获利而窃取数据B.从来不散布或出售项目中自己工作的信息A.
以上E.D.从来不侵犯个人、小组或组织的隐私故意毁坏或修改别人的程序、文件或数据所有选项第二章软件过程
1.()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
(A)
A.软件过程B.软件工具C.软件产品D.软件工程
2.软件过程的基本活动是()。
(A)
A.分析、设计、实现、测试、演化B.沟通、计划、建模、构造、部署C.计划、分析、设计、实现、调试D.沟通、风险管理、度量、产品化、评审
4.软件开发的瀑布模型是()。
(A)
A.适用于需求被清晰定义的情况B.一种需要快速构造可运行程序的好方法C.最适合于大规模团队开发的项目D.已不能用于现代环境的过时模型
5.软件开发的增量模型是()。
(B)
A.适用于需求被清晰定义的情况B.一种需要快速构造核心产品的好方法C.最适合于大一种不适用于商业产品的创新模型D.规模团队开发的项目
)。
(B6.快速原型开发模型是()最适合C.适用于客户需求难以清楚定义的情况B.A.适用于客户需求被明确定义的情况D.很难产生有意义产品的一种冒险模型于大规模团队开发的项目(D)7.演进式软件过程模型()。
以D.C.通常不会抛弃所产生的系统A.本质上是迭代的B.可以很容易适应需求的变化
上所有选项(C)8.螺旋模型()。
在每一次迭代过程中包含项目风险C.B.比增量模型更加混乱A.在软件产品发布时结束
D.以上所有选项评价(C)9.基于组件的开发模型()。
在面向对象技术获得支持C.不能支持可重用组件的开发A.只适用于计算机硬件设计B.
D.增加了开发风险和成本的情况下应用得更好
D)形式化方法模型是将数学方法用于()。
(10.
验证计算机系统的正确性C.A.定义计算机系统的规格说明B.开发无错误的计算机系统D.以上所有选项D)RUP模型的阶段。
(11.下面的()不是确认阶段D.精化阶段C.构造阶段A.启动阶段B.
软件项目管理
1.软件项目管理的“4P”是()。
(C)
A.people,performance,payoff,productB.people,product,performance,processC.people,product,process,projectD.people,process,payoff,product
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和C
10.在软件开发过程中避免受挫的最佳方法之一是()。
(A)
A.给予团队成员对于过程和技术决策的更多控制权B.给予团队成员对于过程和技术决策的更少控制权C.向团队成员隐瞒坏消息直到事情有所改善D.根据生产效率奖励团队成员
11.下面的()软件特性不是引起项目协调困难的一个因素。
(B)
A.互操作性B.性能C.规模D.不确定性
12.在进行项目范围活动时,问题分解的主要范围是()。
(E)
A.客户工作流程B.需要发布的功能C.用于发布功能的过程D.软件过程模型E.选项B
和C
14.为了将项目失败的风险减少到最小,项目经理需要采取()。
(D)
A.将项目团队规模增加一倍B.要求更大的预算C.顺利地开始D.跟踪过程E.选项B
和C
17.软件项目规划的目的是()。
(C)
A.使客户相信项目是可行的B.使用历史项目数据C.使项目管理者合理地估算成本和进度D.在投标项目之前确定大概的利润边界
18.软件项目所需的人数应该()。
(D)
A.在估计开发需要的努力之后决定B.由项目预算数量决定C.从评价系统复杂性来决定
D.以上所有选项
19.()估计待开发软件产品的规模必须基于像代码行等直接度量单位。
(B)
A.真B.假
20.代码行估算技术需要以()为基础进行问题分解。
(C)
A.信息域值B.项目进度C.软件功能D.软件过程活动
21.功能点估算技术需要以()为基础进行问题分解。
(A)
A.信息域值B.项目进度C.软件功能D.软件过程活动
22.经验估算模型是基于()。
(C)
A.专家基于过去项目经验的判断B.期望值估计的细化C.来自历史项目数据的回归模型
D.反复试验决定参数和系数
23.COCOMOII是现代经验估算模型的一个实例,它需要以()为单位的程序规模信息。
(B)
A.功能点B.代码行C.工作量D.以上任何选项
27.任务集是()的集合。
(A)
A.工作任务、里程碑、工作产品B.任务分配、成本估算、度量单位C.里程碑、可交付物、度量单位D.责任、里程碑、文档
29.软件风险总是包括()两个特性。
(C)
A.救火和危机管理B.已知的和未知的风险C.不确定和损失D.安置人员和预算
30.风险的三种主要类型是()。
(B)
A.商业风险、人员风险、预算风险B.项目风险、技术风险、商业风险C.计划风险、技术风险、人员风险D.管理风险、技术风险、设计风险
31.下面的()是有效的软件配置项。
(E)
A.软件工具B.文档C.可执行程序D.测试数据E.以上所有选项
32.下面的()配置对象通常不包括在项目数据库中。
(C)
A.设计规格说明书B.可执行程序C.组织结构描述D.测试计划
33.基线(Baseline)是指在项目生命周期的不同时间点上,一个或一组配置项通过()而进入正式受控的一种状态。
(C)
A.存取控制B.质量控制C.正式评审D.变更管理
36.下面的()不是软件配置管理的任务。
(C)
A.变更控制B.配置状态报告C.统计质量控制D.版本控制
37.配置状态报告的主要目的是()。
(C)
A.允许项目经理修改项目进度和成本估算B.评估软件开发人员和组织的绩效C.确保变更信息传达到受影响的团体D.选项A和CE.选项A、B和C
需求工程)。
(A3.在项目初始阶段,开发任务的目标是()以上选项都不D.C.确定需要解决方案的人员A.理解基本问题B.确定所需的解决方案
CB和E.选项A、是(E)4.下面的()将造成需求获取困难的问题。
)D.挥发性(volatilityC.理解(understanding)A.预算(budgeting)B.范围(scope)
DC和E.选项B、D)5.需求分析的结果是产生定义下面()问题域的分析模型。
(以上所有选项D.B.功能C.性能A.信息
A)需求规格说明描述了()。
(8.
D.C.软件体系结构的元素B.每个指定系统的实现计算机系统的功能、性能及其约束A.
系统仿真所需要的时间D))。
(9.组织需求评审的最好方法是(使D.将需求发放给设计团队去征求意见B.让客户检查需求C.A.检查系统模型的错误
用问题列表检查每一个需求
))。
(C10.使用跟踪表有助于(
控制和跟踪需求的C.识别、B.确定算法执行的性能A.在后续的检查运行错误时调试程序D.以上选项都不是变化
)的问题。
(B“12.下面的()不是在项目启动阶段被提出的与环境无关”C.谁将为该项目付款?
B.谁反对该项目?
A.成功的解决方案将带来什么样的经济收益?
D.谁将使用该解决方案?
例)描述了用户使用产品必须要完成的任务,可以在用在各种不同的软件需求中,(14.
用对软件)是从各个角度对系统的约束和限制,反映了应模型或方案脚本中予以说明,(
,C)系统质量和特性的额外要求。
(BD.用户需求B.功能需求C.非功能需求A.业务需求(B)15.需求导出后产生的工作制品将依赖于()而不同。
利益相关者的需要D.B.将要构建的产品规模C.正在使用的软件过程A.预算多少
E)在需求开发过程中,软件工程师应与客户合作共同定义()。
(18.
选BE.A和选项客户可见的使用场景B.重要的软件特性C.系统的输入与输出D.A.
C和A、B项面向对象基础
3.类的结构是()。
(E)
A.由代码来表示B.由属性和关系来表示C.由操作来表示D.由对象的交互来表示E.选项B和C
4.类的行为是()。
(A)
A.由一组操作决定B.由类的属性决定C.对类的每一个对象唯一的D.由父类决定E.选项A和B
5.()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
(C)
A.多态性B.继承C.封装D.消息
6.()意味着一个操作在不同的类中可以有不同的实现方式。
(A)
A.多态性B.多继承C.消息D.封装
B)7.UML是()的缩写。
(D.ModuleLevelingB.UnifiedModelingLanguageC.UniversalA.UnifiedModuleLanguage
UniversalModuleLanguage
)8.顺序图反映对象之间发送消息的时间顺序,它与()是同构的。
(C状态图类图C.协作图D.A.用例图B.
对功)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部9.(
)能的具体实现。
(A状态图C.活动图D.A.用例图B.类图)。
(E)10.状态图包括(
E.所有选项类执行的动作D.触发类的动作的事件A.类的状态B.状态之间的转换C.
面向对象分析)关于面向对象分析,下列的()是正确的。
(A2.
D.可以从分析直接编写代码B.它是分析系统设计的技术C.A.它是系统需求建模的方法
在软件生命周期中,它出现在面向对象设计之后
))不是分析建模的目的。
(C3.下列的(建立软D.描述客户需求C.开发一个简单的问题解决方案A.定义可验证的软件需求B.
件设计的基础)不属于面向对象分析模型。
(C)4.下列的(
顺序图C.实体关系图D.A.用例图B.类图
(D)(6.在分析类中,)用于描述一个用例所具有的事件流控制行为。
控制类接口类D.A.实体类B.界面类C.
(B)8.开发人员使用()可以将用例的行为分配到所识别的分析类中。
D.状态图B.顺序图C.类图A.用例图C)9.分析模型一般采用()方式进行验证。
(转化成设计模型需求分析评审D.B.阶段性报告C.A.总结面向对象设计D))的程度。
(B,5.内聚表示一个模块()的程度,耦合表示一个模块(
联接其他模块D.能够适时地完成其功能B.仅关注在一件事情上C.A.可以被更加细化
和外部世界))。
(E6.良好设计的特征是(D.包括所有组件的测试用例B.实现分析模型中的所有需求C.A.模块之间呈现高耦合
D和、CB和DF.选项B提供软件的完整描述E.选项
统的()是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系7.
口和类进行()细化原有的分析对象,确定一些新的对象、对每一个子系统接体系结构;B)准确详细的说明。
(A,用户界面设计C.数据库设计D.A.系统设计B.对象设计))界面设计原则不允许用户保持对计算机交互的控制。
(D8.下面的(A.允许交互中断B.允许交互操作取消C.对临时用户隐藏技术内部信息D.只提供一种规定的方法完成任务
软件实现
6.为了使程序能在不同的计算机上运行,程序应当具有较好的()。
(A)A.可移植性B.可重用性C.可维护性D.可适用性
7.对于开发面向数据库应用的软件,应当选择的程序设计语言是()。
(C)
A.CB.PASCALC.SQLD.JAVA
(D)8.下面对提高程序编码效率没有影响的是()。
D.变量名的使用B.选择良好的算法C.选择良好的数据结构A.选择良好的设计方法
B)9.为了保证软件的质量,使其具有较好的可维护性,关键在于()。
(选择好具有好的数据结构D.B.选择好的程序设计风格C.A.选择合适的程序设计语言的运行环境
)下面的()不是良好编码的原则。
(C10.
保持变量名简短C.A.在开始编码之前建立单元测试B.建立一种有助于理解的直观布局D.确保注释与代码完全一致以便代码紧凑
软件测试))。
(C使用独立测试团队的最好理由是(6.
测试团队C.软件开发人员不需要做任何测试B.测试人员在测试开始之前不参与项目A.
开发人员与测试人员之间的争论会减少将更彻底地测试软件D.
))进行测试。
(D7.类的行为应该基于(
D.状态图B.用例图C.对象图A.数据流图E)(C,D,)说法是正确的。
8.下面的(
测试。
恢复测试是以各种方式迫使软件失效从而检测软件是否能够继续执行的一种系统A.
压力测试C.安全测试是检测系统中的保护机制是否可以保护系统免受非正常的攻击。
B.
功能测试是根据软件需求规格说D.是检测在极限环境中使用系统时施加在用户上的压力。
安装测试是保证应用程E.明和测试需求列表,验证产品的功能实现是否符合需求规格。
序能够被成功地安装软件演化
5.逆向工程(ReverseEngineering)通常用在软件生命周期的()阶段,它是从源代码或目标代码中提取设计信息。
(D)
A.需求分析B.软件设计C.软件测试D.软件维护
概念第一章概述
1.软件与其他工程学科所产生的制品有什么根本区别?
答:
(1)软件是人类思维和智能所延伸的产物,其数据、状态和逻辑关系的组合以及人类思维的复杂性和不确定性导致它本身具有极高的复杂性;
(2)软件具有不可见性,它是抽象的,形式化和逻辑化的。
(3)软件具有可变性,有用的软件需要不断地修改和扩展,但是频繁的修改可能导致软件的退化;(4)软件的开发在很大程度上依然是手工作坊式的,难以实现工厂化的生产。
2.软件工程包括哪些基本要素?
请简要说明这些要素及其作用。
答:
软件工程包括过程、方法和工具三个要素。
1软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管