当前位置:文档之家› Chapter03_Exercises

Chapter03_Exercises

Chapter03_Exercises
Chapter03_Exercises

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

[选择题]

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

A. people,performance,payoff,product

B. people,product,performance,process

C. people,product,process,project

D. people,process,payoff,product

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

功交付。

A. 真

B. 假

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

A. 开发工具

B. 方法

C. 硬件环境

D. 人员

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

A. 确定项目预算

B. 选择团队的组织模型

C. 确定项目的约束

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

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

A. 个人谈话

B. 项目团队会议

C. 正式报告

D. 电子邮件

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

A. 信息域

B. 项目进度

C. 软件功能

D. 过程活动

7. 软件开发团队的每一个成员都应该参与计划活动,以便()。

A. 降低计划的粒度

B. 深入地分析需求

C. 所有成员同意该计划

D. 开始设计

8. 在攻克技术难题时,最佳的开发团队组织模型是()。

A. 民主式结构

B. 主程序员式结构

C. 技术管理混合式结构

D. 以上所有选项都不是

9. 在选择开发团队组织结构时应考虑()因素。

A. 沟通的复杂程度

B. 最终程序的规模大小

C. 发布日期的严格程度

D. 项目预算的多少

E. 选项A,B和C

10. 在软件开发过程中避免受挫的最佳方法之一是()。

A. 给予团队成员对于过程和技术决策的更多控制权

B. 给予团队成员对于过程和技术决策的更少控制权

C. 向团队成员隐瞒坏消息直到事情有所改善

D. 根据生产效率奖励团队成员

11. 下面的()软件特性不是引起项目协调困难的一个因素。

A. 互操作性

B. 性能

C. 规模

D. 不确定性

12. 在进行项目范围活动时,问题分解的主要范围是()。

A. 客户工作流程

B. 需要发布的功能

C. 用于发布功能的过程

D. 软件过程模型

E. 选项B和C

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

A. 真

B. 假

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

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

B. 要求更大的预算

C. 顺利地开始

D. 跟踪过程

E. 选项B和C

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

A. 真

B. 假

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

A. 真

B. 假

17. 软件项目规划的目的是()。

A. 使客户相信项目是可行的

B. 使用历史项目数据

C. 使项目管理者合理地估算成本和进度

D. 在投标项目之前确定大概的利润边界

18. 软件项目所需的人数应该()。

A. 在估计开发需要的努力之后决定

B. 由项目预算数量决定

C. 从评价系统复杂性来决定

D. 以上所有选项

19. ()估计待开发软件产品的规模必须基于像代码行等直接度量单位。

A. 真

B. 假

20. 代码行估算技术需要以()为基础进行问题分解。

A. 信息域值

B. 项目进度

C. 软件功能

D. 软件过程活动

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

A. 信息域值

B. 项目进度

C. 软件功能

D. 软件过程活动

22. 经验估算模型是基于()。

A. 专家基于过去项目经验的判断

B. 期望值估计的细化

C. 来自历史项目数据的回归模型

D. 反复试验决定参数和系数

是现代经验估算模型的一个实例,它需要以()为单位的程序规模信

II

23. COCOMO

息。

A. 功能点

B. 代码行

C. 工作量

D. 以上任何选项

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

A. 真

B. 假

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

A. 真

B. 假

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

A. 真

B. 假

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

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

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

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

D. 责任、里程碑、文档

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

A. 真

B. 假

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

A. 救火和危机管理

B. 已知的和未知的风险

C. 不确定和损失

D. 安置人员和预算

30. 风险的三种主要类型是()。

A. 商业风险、人员风险、预算风险

B. 项目风险、技术风险、商业风险

C. 计划风险、技术风险、人员风险

D. 管理风险、技术风险、设计风险

31. 下面的()是有效的软件配置项。

A. 软件工具

B. 文档

C. 可执行程序

D. 测试数据

E. 以上所有选项

32. 下面的()配置对象通常不包括在项目数据库中。

A. 设计规格说明书

B. 可执行程序

C. 组织结构描述

D. 测试计划

33. 基线(Baseline)是指在项目生命周期的不同时间点上,一个或一组配置项通过()

而进入正式受控的一种状态。

A. 存取控制

B. 质量控制

C. 正式评审

D. 变更管理

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

A. 真

B. 假

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

A. 真

B. 假

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

A. 变更控制

B. 配置状态报告

C. 统计质量控制

D. 版本控制

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

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

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

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

D. 选项A和C

E. 选项A、B和C

[练习题]

1. 简要说明软件项目管理的过程。

参考答案:

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。

软件项目管理的主要过程如下:

(1) 项目启动与建议:在项目启动阶段,定义项目的商业需求,确定项目的目标和实现方法,大致估算项目的成本和进度。

(2) 项目规划与进度:在项目规划阶段,明确项目的各种活动、里程碑和可交付的成果,制定软件开发计划。

(3) 项目组织与执行:根据项目任务的要求选择合适的开发人员,组建项目团队和协调项目资源,按照计划执行和推进整个项目。

(4) 项目监督与评价:在项目执行过程中,密切关注项目的进展情况,综合评价整个项目的实际进展,及时发现和报告实际情况与计划的偏差,在必要的情况下采取纠正行动,

同时控制和管理项目的变更。

(5) 项目交付与总结:完成正式的项目交付工作,客户对所交付的软件产品进行验收,项目团队培训用户并移交文档,最后分析和总结项目的经验教训。

2. 某个软件项目需要30名开发人员,现有两种人员组织方案:

(1) 将30人划为一个开发组统一管理;

(2) 按每个小组6人的方式,将30人分为5个小组。

请分析比较上述两种方案的优缺点。

参考答案:

由于软件规模的增大,需要多人组成开发小组共同参与一个项目的开发。但是当多个人共同承

担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的接口问题,这就产生了所谓沟通复杂性的问题。沟通需要花费时间和代价,也会引起软件错误的增加,降低开发效率。

(1) 优点:30人集中在同一个开发小组,人员任务的分配和调度相对容易;

缺点:沟通复杂性高,从而导致人员之间配合混乱,开发效率低。

(2) 优点:30人划分成5个小组,降低了沟通复杂性,提高开发效率;

缺点:小组之间的协调配合难度大。

3. 在选择人员进行软件项目开发时,应该考虑哪些因素?

参考答案:

参考因素说明

应用领域的经验为了成功地开发系统,开发人员必须了解相关的应用领域。

平台的经验在编写底层程序时该因素很重要。

编程语言的经验该因素对于短周期的项目是很重要的。

该因素可以显示候选人应该掌握的基础知识和学习能力,由于开发人员的经验可以在项目教育背景

实践中获得,该因素并非是关键的。

沟通能力由于项目成员需要与其他人员、管理者和客户进行口头和书面交流,该因素是十分重要的。

适应性适应性可以通过候选人的各种经历进行判断,该因素反映出一个的学习能力。

工作态度项目成员应该有积极的工作态度,乐于学习新技术,该因素很重要但是难以评估。

候选人必须与团队成员关系融洽,尚没有软件工程方面的特定个性类型,该因素很重要但个性

是难以评估。

4. 在开发团队建设过程中,让所有成员了解项目的进展情况和技术决策有助于增强团队的凝聚

力,请说明理由。

参考答案:

项目团队的凝聚力是指项目团队内部目标价值的一致性和对工作对象看法一致的程度。在项目团队的建设过程中,所有成员了解项目的进展情况和技术决策,从而使他们在项目目标、技术策略、交付成果、工作流程、影响因素等方面达成共同的认识与一致的理解,共同的价值观使他们容易在行动上步调一致,并愿意为项目的成功投入热情和付出努力;同时,团队成员对于项目团队有强烈的归属感和一体感,充分感受到自己是团队的一员,愿意相互协作、同舟共济,形成了强大的团队凝聚力。

5.假设你是一个软件项目的负责人,该项目要求开发一个安全性要求极高的医疗控制系统,用

于控制医院病人的放射性治疗。该系统是嵌入式系统,内存限定在16MB,程序规模估计是10KLOC,病人的放射治疗信息将记录到数据库中。

(1) 请使用简单COCOMO模型估算系统开发的工作量。

(2) 请考虑产品、计算机、人员和项目等影响因素,使用中间COCOMO模型估算系统开发的工作量,并说明考虑这些因素的理由及其取值。

参考答案:

(1) 由简单COCOMO模型公式计算:

工作量E = 3.6 ×(10)1.20 = 57.06(人月)

开发时间D=2.5 ×(57.06)0.32 = 9.12(月)

(2) 估计工作量影响因素的取值:

工作量影响因素F i状态等级工作量系数软件可靠性对人身会造成威胁很高 1.39

数据库规模数据量比较少低0.94

产品复杂性与设备定时有关的操作极高 1.65

可重用性一般正常 1.00

要求文档量一般正常 1.00

执行时间限制将占用70%的可用时间高 1.11 存储限制使用16MB存储容量高 1.06

平台变动基于商业微处理器硬件正常 1.00

分析员能力优秀的高级分析人员高0.83

程序员能力优秀的高级程序员高0.87

应用领域经验3年正常 1.00 平台经验6个月低 1.10 语言和工具经验 12个月正常 1.00 人员连续性一般正常 1.00 软件工具的使用处于基本微型机工具层低 1.12 多地点开发基本上集中在一个地点很高0.84

开发进度限制 12个月正常 1.00

工作量修正因子F = 1.90

工作量E = 2.8 ×(10)1.20 × 1.90 =2.8 × 15.85 × 1.90 = 84(人月)

开发时间D = 2.5 ×(84)0.32 = 2.5 × 4.13 = 10.32(月)

6. 某诊所需要开发一个软件系统来管理预约,具体要求如下:

当病人打电话预约时,接待员将查询日历并安排病人尽早得到诊治。如果病人同意计划的约定时间,该接待员将输入约定时间和病人姓名,系统将核实病人姓名并提供病人已有的

记录数据。在每次检查和治疗之后,医生将标记相应的预约已经完成并添加治疗说明,如果必要的话还会安排病人下一次再来。

诊所人员可以使用系统按照病人姓名和预约日期进行查询,查询结果显示病人的记录数据和预约信息。接待员可以取消预约,并打印出已经预约但不能接诊的通知清单。另外,接待员还可以打印出关于所有病人的每周预约安排。

请使用功能点技术估算该软件的规模,并说明每个信息域特征的估计理由。

参考答案:

(1) 外部输入:

y病人信息(简单)、预约信息(中等)

y治疗说明(简单)、取消预约(中等)

(2) 外部输出:

y治疗记录(简单)、预约信息(中等)

y通知清单(中等)、每周预约安排(复杂)

(3) 外部查询:

y查看日历(中等)、查看病人数据(简单)

y查看预约(中等)、查看治疗记录(简单)

(4) 内部文件:

y病人信息(简单)、预约信息(中等)

y治疗记录(简单)

(5) 外部接口:无

信息域特征简单中等复杂小计

外部输入 2 × 3 2 × 4 0 × 6 14

外部输出 1 × 4 2 × 5 1 × 7 21

外部查询 2 × 3 2 × 4 0 × 6 14

内部文件 2 × 7 1 × 10 0 × 15 24

外部接口0 × 5 0 × 7 0 × 10 0

功能点数:73

7. 请设计一个支持COCOMO估算模型的CASE工具。

参考答案:

略。

8. 请结合习题5的软件项目,制定一个切实可行的项目管理计划。

略。 9.

请识别习题5的主要风险,并说明这些风险事件的发生条件和应对办法。

答案要点:

下表仅列出部分可能出现的风险,但不限于这些风险,大家可以进行补充。

风险事件

发生条件

应对办法

开发人员没有足够的开发经验

无法招聘到合适的人员

与客户协商,考虑购进合适的组件或外包该组件的开发任务。

关键开发人员离开公司 提出辞职申请

请求人员支持或临时找人接替;尽量说服挽留,同时培养后备队伍。

开发所用技术是新技术

新技术已经成熟并流行,或者客户要求使用 事先验证新技术的可行性,培训相关的开发人员;可能的话,寻求一种替代方案。 客户需求变更

提出变更请求

追溯信息来源,评估变更影响,最终决定变更的策略。

低估了开发时间 估算不准确

重新审查开发时间,与客户充分沟通,协商变更交付时间或交付方法。

资金不到位 未按计划筹措资金

向高级管理层提交报告,说明该项目对组织业务的重要性。 …… ……

……

10. 请识别习题5的主要风险,并说明这些风险事件的发生条件和应对办法。

答案要点:

可参考以下所列的主要基线,并结合实际项目举例说明。

在软件开发过程中,不可避免地会发生这样那样的变化,基线对于控制这些变化起着重要的作用,任何工作制品在成为基线之后,原则上不允许随意的变更,必须按照申请、评估、修改和验证的程序进行变更控制。 11.

请结合实际项目,列举在系统构建中可能出现的问题。

在系统构建中常见的问题可能包括以下类型:

?在系统构建指令中缺少某个必需的组件;

?某个组件的版本与最终构建系统的版本不合适;

?系统运行所需的数据文件不全;

?编译程序的版本与程序语言的版本不合适。

12. 在建立一个大型软件系统的发布版本过程中,开发人员必须考虑哪些主要因素?

答案要点:

?系统技术质量:如果系统存在影响用户使用的严重缺陷,那么有必要发布一个缺陷修补版本;如果系统存在一些小缺陷,那么可以在一定时间内在网上发布补丁程序,让用户自己进行修补。

?功能变更:随着系统的演化,每个版本的功能增量基本上是一个常数。如果一个系统版本包含一个很大的功能增量,那么应该考虑在该版本发布后需要一个修补版本,来修补系统新引入的缺陷。

?市场竞争:如果市场上竞争对手推出相应产品,那么有必要发布一个新版本。

?市场需求:市场部门可能向用户承诺在特定的日期发布一个新版本。

?客户变更建议:对于客户定制的系统,客户可能提出一些专门的系统变更建议,并已经支付了费用,他们希望系统一实现就发布。

相关主题
文本预览
相关文档 最新文档