软件工程习题与答案

2020-05-01 11:04

(选择题若没有选项可选,则为判断题,其中A为正确,B为错误)

第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. 以上所有选项 1. 软件与其他工程学科所产生的制品有什么根本区别?

(1) 软件是人类思维和智能所延伸的产物,其数据、状态和逻辑关系的组合以及人类思维的复杂性和不确定性导致它本身具有极高的复杂性;

(2) 软件具有不可见性,它是抽象的,形式化和逻辑化的。

(3) 软件具有可变性,有用的软件需要不断地修改和扩展,但是频繁的修改可能导致软件的退化;

(4) 软件的开发在很大程度上依然是手工作坊式的,难以实现工厂化的生产。 2. 软件工程包括哪些基本要素?请简要说明这些要素及其作用。

软件工程包括过程、方法和工具三个要素。 ??软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、

表格等)的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管理有机地结合在一起,实现在规定的时间和预算内开发高质量软件的目标; ??软件工程方法为软件开发提供了?如何做?的技术,通常包括某种语言或图形的模

型表示方法、良好的设计实践以及质量保证标准等; ??软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件

开发任务的完成。现有的软件工具覆盖了从需求分析、系统建模、代码生成、程序调试和软件测试等多个方面,形成了集成化的软件工程开发环境CASE。 3. 软件工程是以系统的、可控的、有效的方式产生高质量的软件,请说明你对“高质量软

件”含义的理解。 软件质量是软件产品与明确的和隐含的需求相一致的程度,它通常由一系列的质量特性来进行描述,包括正确性、可靠性、有效性、可用性、复用性、可维护性、可移植性等。例如,除了要求软件正确运行之外,人们可能还希望软件运行的响应时间符合要求、软件使用方便快捷、程序代码易于理解等,而“程序代码易于理解”往往是一种用户没有明确提出的需求,但却是影响软件演化的重要因素。

4. 有人认为“软件工程过于耗费时间,并且妨碍开发人员的编程效率。”你是否认同这种观

点?请阐述理由。 这一观点是不正确的。

??软件开发远不只是编程,管理不当导致的混乱、工作重复、交流不畅等才是大多

软件项目效率低下的主要原因。虽然直接编程在开发前期看来效率高,但是不完整的、不清晰的或错误的需求和设计将导致在开发后期反复地修改程序,反而降低了整个开发效率,其质量也无法保证,甚至导致软件开发最终失败的结果。 ??软件工程是帮助人们在有限的时间、金钱预算和人力、物力资源的约束下开发出

质量尽量高的软件的一系列理论和工具,虽然它在编程之外的工作上花费了大量时间,但所耗费的时间与精力并不像其表面上所看起来的那样冗余与低效,而是从总体上做好整个体系的设计与把握,全方位地规划开发过程,对节省成本、提高效率、保证最终产品质量起到了事半功倍的作用。

第2章 软件过程

1. ( )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设

计与开发、软件确认、软件改进等活动组成。(A)

A. 软件过程 B. 软件工具 C. 软件产品 D. 软件工程 2. 软件过程的基本活动是( )。(A)

A. 分析、设计、实现、测试、演化 B. 沟通、计划、建模、构造、部署

C. 计划、分析、设计、实现、调试 D. 沟通、风险管理、度量、产品化、评审 3. ( )软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的

依据。(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. 确认阶段

1. 请简要说明软件过程的概念和基本元素。

软件过程是软件工程人员为了获得软件产品在软件工具支持下实施的一系列软件工程活动,它应该明确定义以下元素:

??过程中所执行的活动及其顺序关系 ??每一个活动的内容和步骤 ??团队人员的工作和职责

2. 请描述快速原型过程模型的各个阶段。 答案要点:

快速原型方法的目的是解决软件需求不明确给开发带来风险的问题,其关键在于尽可能“快速”地建造原型,通过用户对原型的评价最终确定系统的需求。

快速原型过程模型包括以下阶段: ??原型需求分析:分析和提炼所收集到的客户需求; ??原型开发:基于初步的需求快速建造一个可以运行的软件原型,实现客户或未来的

用户与系统的交互; ??原型评价:由用户或客户对该原型进行评价,需要的话再进一步细化待开发软件的

需求,并继续调整原型直至需求确定下来为止。 3. 对于下列每一个过程模型,分别列举一个可以适用的具体软件项目,并说明在开发中如

何应用该模型。

(1) 瀑布模型 (2) 快速原型模型 (3) 增量模型 (4) 形式化方法模型 (5) 基于组件的开发模型

(1) 瀑布模型 项目举例:某项目需要在一种新型机器上,为一种已知语言开

发一个普通的编译器。

选用分析:由于该项目的语言是已知的,需求是明确的和稳定的,整个系统属于中小规模,因此适合采用瀑布模型进行软件开发。 (2) 快速原型模型 项目举例:某公司需要给火车站开发一个交互式火车车次查询

系统,这是火车站首次使用该系统。 选用分析:本项目的主要问题在于用户需要方面,该系统与最终用户的交互是十分关键的,但是在项目初期用户的需求基本上是不知道的,因此适合采用快速原型方法来确定用户需求,在需求确定的基础上再开发最终系统。 (3) 增量模型 项目举例:某公司开发一个通用CAD软件产品,产品需求是逐

步完善的,某些需求在一定范围内是明确的,某些需求需要进一步细化,但是迫于市场竞争的压力产品需要尽快上市。

选用分析:通用CAD软件产品具有一定的成熟度,总体需求和软件系统结构是可以确定的,

但是实现该产品所有功能需要比较长的开发周期。为了尽快上市可以采用增量模型实行多版本的发布策略,既可以很快占领市场又可以为后续版本的需求定义奠定基础。 (4) 形式化方法模型 项目举例:某公司开发一个汽车防抱死刹车控制系统。 选用分析:由于该系统对安全性和可靠性要求极高,需要在系统运行之前进行相关性能的检验,因此适合采用形式化方法开发该系统。 (5) 基于组件的开发模型 项目举例:某公司开发企业管理ERP系统,包括销售、

库存、生产、财务、物流、人力资源等部分,在系统实施过程中不同的企业具有一定的需求差异。

选用分析:企业ERP系统具有组件化的结构,在不同企业实施时应该尽量重用已有的组件,因此适合采用基于组件的开发模型开发该系统,在直接应用或者修改使用的基础上,最终进行组件开发和系统集成。 4. 在螺旋模型中,风险分析的作用是什么?

在螺旋模型中,软件开发是在风险等级的指导下进行的。首先确定该阶段的目标,完成

这些目标的选择方案及其约束条件;其次从风险角度分析方案的开发策略,努力排除各种潜在的风险,在需求不适当的情况下可能需要建造原型系统;如果某些风险不能排除,该方案可能立即终止,否则继续启动下一步的软件开发和验证工作,并再次通过风险分析规定过程遵循的策略;最后,评价该阶段的结果,并规划下一个迭代。

从上述过程中可以看出,风险分析的作用是通过识别项目中的高风险问题,使开发人员制定适当的开发策略消除这些风险。

5. 某大学准备开发一个新的学生注册选课系统,以替换一个现有的系统。请设计一个适用

于该系统开发的过程模型,并进一步描述该模型。

假设原有的学生注册课程系统是由学生手工提交书面选课单,教师手工提交成绩单,教务管理人员在客户端录入学生选课结果和课程成绩;而在新的选课系统中,所有用户在自己的计算机上通过Internet访问和操作该系统,该软件系统需要更新服务器和数据库等系统,并扩充一些新功能和提高系统性能。

从该系统的具体情况来看,系统的需求是比较容易明确的,整个系统的结构需要重新设计,但是原有的遗留系统中有些部分是可以重用的,因此我们可以采用组件模型实施软件开发:

??系统需求分析:由于该系统是现有系统的扩展,因此首先可以经过一个简单的需求

分析阶

第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) 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)


软件工程习题与答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年六年级希望杯培训100题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: