软件工程习题与参考答案.docx

上传人:b****6 文档编号:6561517 上传时间:2023-01-07 格式:DOCX 页数:23 大小:24.92KB
下载 相关 举报
软件工程习题与参考答案.docx_第1页
第1页 / 共23页
软件工程习题与参考答案.docx_第2页
第2页 / 共23页
软件工程习题与参考答案.docx_第3页
第3页 / 共23页
软件工程习题与参考答案.docx_第4页
第4页 / 共23页
软件工程习题与参考答案.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

软件工程习题与参考答案.docx

《软件工程习题与参考答案.docx》由会员分享,可在线阅读,更多相关《软件工程习题与参考答案.docx(23页珍藏版)》请在冰豆网上搜索。

软件工程习题与参考答案.docx

软件工程习题与参考答案

第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.()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方

法、工具和过程三个要素。

(D)

A.软件产品

B.软件过程

C.软件测试

D.软件工程

8.软件工程的基本要素包括方法、工具和()。

(C)

A.软件系统

B.硬件环境

C.过程

D.人员

9.软件工程师在从事软件工作时应使用下面的()准则。

(E)

A.从来不为个人获利而窃取数据

B.从来不散布或出售项目中自己工作的信息

C.从来不故意毁坏或修改别人的程序、文件或数据

D.从来不侵犯个人、小组或组织的隐私

E.以上所有选项

第2章软件过程(习题与参考答案)

[选择题]

1.()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。

(A)

A.软件过程

B.软件工具

C.软件产品

D.软件工程

2.软件过程的基本活动是()。

(A)

A.分析、设计、实现、测试、演化

B.沟通、计划、建模、构造、部署

C.计划、分析、设计、实现、调试

D.沟通、风险管理、度量、产品化、评审

3.()软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。

(B)A.真

B.假

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.确认阶段

第3章软件项目管理(习题与参考答案)

[选择题]

1.软件项目管理的“4P”是()。

(C)

A.people,performance,payoff,product

B.people,product,performance,process

C.people,product,process,project

D.people,process,payoff,product

2.()项目管理在现代软件开发中是不太重要的,因为大多数项目能够及时完成并成功交付。

(B)A.真

B.假

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

(C)

A.开发工具

B.方法

C.硬件环境

D.人员

4.软件项目规划的第一步是()。

(D)

A.确定项目预算

B.选择团队的组织模型

C.确定项目的约束

D.建立项目的目标和范围

5.下面的()方法最不适合你向团队成员解释他或她为什么表现不合格。

(B)

A.个人谈话

B.项目团队会议

C.正式报告

D.电子邮件

6.功能点估算技术需要以()为基础进行问题分解。

A.信息域

B.项目进度

C.软件功能

D.过程活动A)

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

13.()随着项目计划的不断形成,产品分解和过程分解经常是同时发生的。

(A)A.真

B.假

14.为了将项目失败的风险减少到最小,项目经理需要采取()。

(D)

A.将项目团队规模增加一倍

B.要求更大的预算

C.顺利地开始

D.跟踪过程

E.选项B和C

15.()估算不可靠的唯一原因是估算人员缺乏经验。

(B)

A.真

B.假

16.()由于软件项目估算不完全可靠,所以项目开始后可以忽略这些估算。

(B)A.真

B.假

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是现代经验估算模型的一个实例,它需要以()为单位的程序规模信息。

(A.功能点

B.代码行

C.工作量

D.以上任何选项

24.()功能点不能用于估算面向对象的软件。

(B)

A.真

B.假

25.()软件项目延迟是不可避免的,而且无法解释其原因。

(B)

A.真

B.假

26.()将开发团队人数增加一倍可以保证项目完成时间减少一半。

(B)

A.真

B.假

27.任务集是()的集合。

(A)

A.工作任务、里程碑、工作产品

B.任务分配、成本估算、度量单位

C.里程碑、可交付物、度量单位

D.责任、里程碑、文档

28.()主动的风险管理有时被描述为救火。

(B)

A.真

B.假

29.软件风险总是包括()两个特性。

(C)B)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.变更管理

34.()软件工作产品一旦成为基线就不能再更改了。

(B)

A.真

B.假

35.()如果开发小组使用自动化的项目数据库工具,那么就不需要变更控制。

(B)A.真

B.假

36.下面的()不是软件配置管理的任务。

(C)

A.变更控制

B.配置状态报告

C.统计质量控制

D.版本控制

37.配置状态报告的主要目的是()。

(C)

A.允许项目经理修改项目进度和成本估算

B.评估软件开发人员和组织的绩效

C.确保变更信息传达到受影响的团体

D.选项A和C

E.选项A、B和C

第4章需求工程(习题与参考答案)

[选择题]

1.()在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。

(A)A.真

B.假

2.()软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。

(B)A.真

B.假

3.在项目初始阶段,开发任务的目标是()。

(A)

A.理解基本问题

B.确定所需的解决方案

C.确定需要解决方案的人员

D.以上选项都不是

E.选项A、B和C

4.下面的()将造成需求获取困难的问题。

(E)

A.预算(budgeting)

B.范围(scope)

C.理解(understanding)

D.挥发性(volatility)

E.选项B、C和D

5.需求分析的结果是产生定义下面()问题域的分析模型。

(D)

A.信息

B.功能

C.性能

D.以上所有选项

6.()目前存在一个很普遍的现象,即不同的客户提出的需求是相互矛盾的,但每个人都争辩自己是正确的。

(A)

A.真

B.假

7.()利益相关者(stakeholders)是将来购买所开发软件系统的人。

(B)

A.真

B.假

8.需求规格说明描述了()。

(A)

A.计算机系统的功能、性能及其约束

B.每个指定系统的实现

C.软件体系结构的元素

D.系统仿真所需要的时间

9.组织需求评审的最好方法是()。

(D)

A.检查系统模型的错误

B.让客户检查需求

C.将需求发放给设计团队去征求意见

D.使用问题列表检查每一个需求

10.使用跟踪表有助于()。

(C)

A.在后续的检查运行错误时调试程序

B.确定算法执行的性能

C.识别、控制和跟踪需求的变化

D.以上选项都不是

11.()需求工程师的任务是将所有利益相关者的信息进行分类以便允许决策者选择一个相互一致的需求集。

(B)

A.真

B.假

12.下面的()不是在项目启动阶段被提出的“与环境无关”的问题。

(B)

A.成功的解决方案将带来什么样的经济收益?

B.谁反对该项目?

C.谁将为该项目付款?

D.谁将使用该解决方案?

13.()开发人员与客户创建用例以帮助软件团队理解有多少类型的最终用户将使用这些功能。

(B)A.真

B.假

14.在各种不同的软件需求中,()描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应

用对软件系统质量和特性的额外要求。

(B,C)

A.业务需求

B.功能需求

C.非功能需求

D.用户需求

15.需求导出后产生的工作制品将依赖于()而不同。

(B)

A.预算多少

B.将要构建的产品规模

C.正在使用的软件过程

D.利益相关者的需要

16.()用例参与者总是人员而不是系统设备。

(B)

A.真

B.假

17.()在需求确认过程中需求模型被评审以保证其技术可行性。

(B)

A.真

B.假

18.在需求开发过程中,软件工程师应与客户合作共同定义()。

(E)

A.客户可见的使用场景

B.重要的软件特性

C.系统的输入与输出

D.选项A和B

E.选项A、B和C

第5章面向对象基础(习题与参考答案)

[选择题]

1.()模型是对现实的简化,建模是为了更好地理解所开发的系统。

(A)

A.真

B.假

2.()UML语言支持面向对象的主要概念,并与具体的开发过程相关。

(B)

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.多态性

B.多继承

C.消息

D.封装A)

7.UML是()的缩写。

(B)

A.UnifiedModuleLanguage

B.UnifiedModelingLanguage

C.UniversalModuleLeveling

D.UniversalModuleLanguage

8.顺序图反映对象之间发送消息的时间顺序,它与()是同构的。

(C)

A.用例图

B.类图

C.协作图

D.状态图

9.()定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体

实现。

(A)

A.用例图

B.类图

C.活动图

D.状态图

10.状态图包括()。

(E)

A.类的状态

B.状态之间的转换

C.类执行的动作

D.触发类的动作的事件

E.所有以上选项

第6章面向对象分析(习题与参考答案)

[选择题]

1.()面向对象分析的核心在于建立一个描述软件系统的模型。

(B)

A.真

B.假

2.关于面向对象分析,下列的()是正确的。

(A)

A.它是系统需求建模的方法

B.它是分析系统设计的技术

C.可以从分析直接编写代码

D.在软件生命周期中,它出现在面向对象设计之后

3.下列的()不是分析建模的目的。

(C)

A.定义可验证的软件需求

B.描述客户需求

C.开发一个简单的问题解决方案

D.建立软件设计的基础

4.下列的()不属于面向对象分析模型。

(C)

A.用例图

B.类图

C.实体关系图

D.顺序图

5.()分析类用于描述系统中概念层次的对象。

(A)

A.真

B.假

6.在分析类中,()用于描述一个用例所具有的事件流控制行为。

(D)

A.实体类

B.界面类

C.接口类

D.控制类

7.()在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的

消息传递将用例的职责分配到分析类中。

(A)

A.真

B.假

8.开发人员使用()可以将用例的行为分配到所识别的分析类中。

(B)

A.用例图

B.顺序图

C.类图

D.状态图

9.分析模型一般采用()方式进行验证。

(C)

A.总结

B.阶段性报告

C.需求分析评审

D.转化成设计模型

10.()需求评审人员主要由开发人员组成,一般不包括用户。

(B)

A.真

B.假

第7章软件体系结构设计(习题与参考答案)

[选择题]

1.()系统体系结构的最佳表示形式是一个可执行的软件原型。

(B)

A.真

B.假

2.()软件体系结构描述是不同项目相关人员之间进行沟通的使能器。

(A)

A.真

B.假

3.()良好的分层体系结构有利于系统的扩展与维护。

(A)

A.真

B.假

4.()消除两个包之间出现的循环依赖在技术上是不可行的。

(B)

A.真

B.假

5.()设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。

(A)

A.真

B.假

6.程序编译器的体系结构适合使用()。

(A)

A.仓库体系结构

B.模型-视图-控制器结构

C.客户机/服务器结构

D.以上选项都不是

7.网站系统是一个典型的()。

(C)

A.仓库体系结构

B.胖客户机/服务器结构

C.瘦客户机/服务器结构

D.以上选项都不是

8.在分层体系结构中,()实现与实体对象相关的业务逻辑。

(D)

A.表示层

B.持久层

C.实体层

D.控制层

9.()可以帮助人们简单方便地复用已经成功的设计或体系结构。

(B)

A.商业组件

B.设计模式

C.遗留系统

D.需求规格说明

10.()用于封装具体的平台,从而使应用程序可以在不同的平台上运行。

(A)

A.抽象工厂模式

B.外观模式

C.观察者模式

D.以上选项都不是

第8章面向对象设计(习题与参考答案)

[选择题]

1.()面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。

(A)

A.真

B.假

2.()系统设计的主要任务是细化分析模型,最终形成系统的设计模型。

(B)

A.真

B.假

3.()关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据

库中的表。

(B)

A.真

B.假

4.()用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用

户拒绝使用该系统。

(A)

A.真

B.假

5.内聚表示一个模块()的程度,耦合表示一个模块()的程度。

(B,D)

A.可以被更加细化

B.仅关注在一件事情上

C.能够适时地完成其功能

D.联接其他模块和外部世界

6.良好设计的特征是()。

(E)

A.模块之间呈现高耦合

B.实现分析模型中的所有需求

C.包括所有组件的测试用例

D.提供软件的完整描述

E.选项B和D

F.选项B、C和D

7.()是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系

统的体系结构;()细化原有的分析对象,确定一些新的对象、对每一个子系统接口和类进行准确详细的说明。

(A,B)

A.系统设计

B.对象设计

C.数据库设计

D.用户界面设计

8.下面的()界面设计原则不允许用户保持对计算机交互的控制。

(D)

A.允许交互中断

B.允许交互操作取消

C.对临时用户隐藏技术内部信息

D.只提供一种规定的方法完成任务

第9章软件实现(习题与参考答案)

[选择题]

1.()在程序设计中使用括号以改善表达式的清晰性。

(A)

A.真

B.假

2.()在程序设计中应尽可能对程序代码进行优化。

(B)

A.真

B.假

3.()不要修补不好的程序,要重新写。

(A)

A.真

B.假

4.()程序中的注释是可有可无的。

(B)

A.真

B.假

5.()对递归定义的数据结构不要使用递归过程。

(B)

A.真

B.假

6.为了使程序能在不同的计算机上运行,程序应当具有较好的()。

(A)

A.可移植性

B.可重用性

C.可维护性

D.可适用性

7.对于开发面向数据库应用的软件,应当选择的程序设计语言是()。

(C)

A.C

B.PASCAL

C.SQL

D.JAVA

8.下面对提高程序编码效率没有影响的是()。

(D)

A.选择良好的设计方法

B.选择良好的算法

C.选择良好的数据结构

D.变量名的使用

9.为了保证软件的质量,使其具有较好的可维护性,关键在于()。

(B)

A.选择合适的程序设计语言

B.选择好的程序设计风格

C.具有好的数据结构

D.选择好的运行环境

10.下面的()不是良好编码的原则。

(C)

A.在开始编码之前建立单元测试

B.建立一种有助于理解的直观布局

C.保持变量名简短以便代码紧凑

D.确保注释与代码完全一致

第10章软件测试(习题与参考答案)

[选择题]

1.()在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会

降低。

(B)

A.真

B.假

2.()好的测试是用少量测试用例运行程序,发现被测程序尽可能多的错误。

(A)A.真

B.假

3.()好的测试用例应能证明软件是正确的。

(B)

A.真

B.假

4.()白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。

(A)A.真

B.假

5.()等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代

表性的数据作为测试用例。

(A)

A.真

B.假

6.使用独立测试团队的最好理由是()。

(C)

A.软件开发人员不需要做任何测试

B.测试人员在测试开始之前不参与项目

C.测试团队将更彻底地测试软件

D.开发人员与测试人员之间的争论会减少

7.类的行为应该基于()进行测试。

(D)

A.数据流图

B.用例图

C.对象图

D.状态图

8.下面的()说法是正确的。

(C,D,E)

A.恢复测试是以各种方式迫使软件失效从而检测软件是否能够继续执行的一种系统测试。

B.安全测试是检测系统中的保护机制是否可以保护系统免受非正常的攻击。

C.压力测试是检测在极限环境中使用系统时施加在用户上的压力。

D.功能测试是根据软件需求规格说明和测试需求列表,验证产品的功能实现是否符合需求规格。

E.安装测试是保证应用程序能够被成功地安装。

第11章软件演化(习题与参考答案)

[选择题]

1.()只有质量差的软件产品才需要维护。

(B)

A.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1