软件工程期末测试题.docx
《软件工程期末测试题.docx》由会员分享,可在线阅读,更多相关《软件工程期末测试题.docx(42页珍藏版)》请在冰豆网上搜索。
判断
第一章概述
1.由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。
(×)
2.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。
(×)
3.购买大多数计算机系统所需的硬件比软件更昂贵。
(×)
4.大多数软件产品在其生命周期中不需要增强功能。
(×)
5.大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。
(√)
6.一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。
(×)
第二章软件过程
3.软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。
(×)
软件项目管理
2.项目管理在现代软件开发中是不太重要的,因为大多数项目能够及时完成并成功交付。
(×)
13.随着项目计划的不断形成,产品分解和过程分解经常是同时发生的。
(√)
15.估算不可靠的唯一原因是估算人员缺乏经验。
(×)
16.由于软件项目估算不完全可靠,所以项目开始后可以忽略这些估算。
(×)
19.估计待开发软件产品的规模必须基于像代码行等直接度量单位。
(×)
24.功能点不能用于估算面向对象的软件。
(×)
25.软件项目延迟是不可避免的,而且无法解释其原因。
(×)
26.将开发团队人数增加一倍可以保证项目完成时间减少一半。
(×)
28.主动的风险管理有时被描述为救火。
(×)
34.软件工作产品一旦成为基线就不能再更改了。
(×)
35.如果开发小组使用自动化的项目数据库工具,那么就不需要变更控制。
(×)
需求工程
1.在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。
(√)
2.软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。
(×)
6.目前存在一个很普遍的现象,即不同的客户提出的需求是相互矛盾的,但每个人都争辩自己是正确的。
(√)
7.利益相关者(stakeholders)是将来购买所开发软件系统的人。
(×)
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.软件的维护成本通常比开发成本低。
(×)
选择
第一章概述
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.()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
(D)
A.软件产品B.软件过程C.软件测试D.软件工程
8.软件工程的基本要素包括方法、工具和()。
(C)
A.软件系统B.硬件环境C.过程D.人员
9.软件工程师在从事软件工作时应使用下面的()准则。
(E)
A.从来不为个人获利而窃取数据B.从来不散布或出售项目中自己工作的信息C.从来不故意毁坏或修改别人的程序、文件或数据D.从来不侵犯个人、小组或组织的隐私E.以上所有选项
第二章软件过程
1.()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
(A)
A.软件过程B.软件工具C.软件产品D.软件工程
2.软件过程的基本活动是()。
(A)
A.分析、设计、实现、测试、演化B.沟通、计划、建模、构造、部署C.计划、分析、设计、实现、调试D.沟通、风险管理、度量、产品化、评审
4.软件开发的瀑布模型是()。
(A)
A.适用于需求被清晰定义的情况B.一种需要快速构造可运行程序的好方法C.最适合于大规模团队开发的项目D.已不能用于现代环境的过时模型
5.软件开发的增量模型是()。
(B)
A.适用于需求被清晰定义的情况B.一种需要快速构造核心产品的好方法C.最适合于大规模团队开发的项目D.一种不适用于商业产品的创新模型
6.快速原型开发模型是()。
(B)
A.适用于客户需求被明确定义的情况B.适用于客户需求难以清楚定义的情况C.最适合于大规模团队开发的项目D.很难产生有意义产品的一种冒险模型
7.演进式软件过程模型()。
(D)
A.本质上是迭代的B.可以很容易适应需求的变化C.通常不会抛弃所产生的系统D.以上所有选项
8.螺旋模型()。
(C)
A.在软件产品发布时结束B.比增量模型更加混乱C.在每一次迭代过程中包含项目风险评价D.以上所有选项
9.基于组件的开发模型()。
(C)
A.只适用于计算机硬件设计B.不能支持可重用组件的开发C.在面向对象技术获得支持的情况下应用得更好D.增加了开发风险和成本
10.形式化方法模型是将数学方法用于()。
(D)
A.定义计算机系统的规格说明B.开发无错误的计算机系统C.验证计算机系统的正确性D.以上所有选项
11.下面的()不是RUP模型的阶段。
(D)
A.启动阶段B.精化阶段C.构造阶段D.确认阶段
软件项目管理
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.使项目管理者合理