八. 项目管理
1. 进度管理
(1)Gantt 图
Gantt 图是一种简单的水平条形图,以日历为基准描述项目任务。
优点:Gantt 图能够清晰地描述每个任务从何时开始,到何时结束,任务的进程情况以及各个任务之间的并行关系。
缺点:Gantt 图不能清晰地反映出任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。
(2)PERT 图
PERT 图也称为关键路径法,沿着项目进度网络路线进行正向与反向分析,从而计算出所有计划活动理论上:最早开始与完成时间、最迟开始与完成时间。
关键路径:从开始到结束,需要时间最长的路径。
项目工期:完成项目的最少时间,注意由关键路径即最长路径决定。
总时差(松弛时间):在不延误总工期的前提下,该活动的机动时间。活动的总时差等于该活动最迟完成时间与最早完成时间之差,或该活动最迟开始时间与最早开始时间之差。
前导图法(单代号网络图,PDM)
ES:最早开始时间;EF:最早完成时间;LS:最迟开始时间;LF:最迟完成时间
最早开始由前驱最早完成决定,如果有多个前驱,取最大值。
最晚完成由后继最晚开始决定,如果有多个后继,取最小值。
最后一个节点的完成时间就是项目工期(如图中的 48)。
总时差为 0 称为关键活动,形成的路径就是关键路径(如图中 ACDGH)。
箭线图法(双代号网络图,ADM)
圆圈代表里程碑,字母代表活动,数字代表活动持续时间 。
其中,活动 C 代表虚活动,持续时间是 0,作用是限定了 EF 活动在 A 活动之后完成。
上图中项目工期(取最大值)为 11,关键路径为 ADG / 1246。
例题1:
某项目的活动持续时间及其依赖关系如下表所示,则完成该项目的最少时间为()天。
A.43 B.45 C.50 D.55
活动 | 持续时间(天) | 依赖关系 |
A1 | 8 | - |
A2 | 15 | - |
A3 | 15 | A1 |
A4 | 10 | - |
A5 | 10 | A2,A4 |
A6 | 5 | A1,A2 |
A7 | 20 | A1 |
A8 | 25 | A4 |
A9 | 15 | A3,A6 |
A10 | 15 | A5,A7 |
A11 | 7 | A9 |
A12 | 10 | A8,A10,A11 |
解析1:
首先将表格转换为图示的形式,如下图:(表格中无依赖关系代表该节点是起始节点)
只要能找到项目工期即可,也可采用 PDM。因此选 D。
例题2:
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示相应活动的持续时间(天),则完成该项目的最少时间为()天。活动 BC 和 BF 最多可以晚开始()天而不会影响整个项目的进度。由于某种原因,现在需要同一个开发人员完成 BC 和 BD,则完成该项目的最少时间为()天。
A.11 B.15 C.16 D.18
A.0和7 B.0和11 C.2和7 D.2和11
A.11 B.18 C.20 D.21
解析2:
先根据图示标注出各类时间:
关键路径为:ABCEFJ / ABDGFJ
项目工期为 18 天;最多可以晚开始多少天,也就是问松弛时间,BC = 0,BF = 7,所以前两个空选 DA。
BC 和 BD 由同一个开发人员完成,也就意味着 BC 和 BD 需要变成一个分支,因此要么先 BC 再 BD,要么先 BD 再 BC,需要比较两种方案哪个更合适。
如果先 BC 再 BD(蓝色部分),那么就意味着完成 BC 后做 BD,那么 BD 的最早开始时间就变成了 BC 的最早完成时间,即 5,BD 的最早完成时间就变成了 5 + 2 = 7,由此往后推,项目工期变成了 21天。如果先 BD 再 BC(绿色部分),那么项目工期就变成了 20 天。 注意,题干中询问项目最少时间,是基于两种方案的基础上,因此就选择天数少的即可,第三个空选 C。
2. 风险管理
一般认为软件风险包含两个特性:不确定性和损失。
一个既定的事实不是风险,因为不满足不确定性。
风险的分类:
- 项目风险:指预算、人员、进度、资源等方面的潜在问题。
- 技术风险:指设计、实现、接口、验证、维护等方面的潜在问题。
- 商业风险:指市场、策略、销售、管理等方面的潜在问题。
风险曝光度:风险出现的概率 × 风险可能造成的损失
假设正在开发的软件项目可能存在一个未被发现的错误A,其出现概率是 0.5%,造成的损失预计是 100 万元,那么这个错误的风险曝光度就是 1000000 × 0.5% = 5000 元。另一个错误 B 出现的概率是 0.1%,预计损失是 1000 万元,风险曝光度就是 10000000 × 0.1% = 10000 元,因此两种错误需要优先处理 B,因为其风险曝光度更大。
例题:
以下叙述中,()不是一个风险。
A.由另一个小组开发的子系统可能推迟交付,导致系统不能按时交付客户。
B.客户不清楚想要开发什么样的软件,因此开发小组开发原型帮助其确定需求。
C.开发团队可能没有正确理解客户的需求。
D.开发团队核心成员可能在系统开发过程中离职。
解析:
B 选项客户不清楚自己的需求是一个既定的事实,不满足风险的不确定性,所以选 B。其余三项均满足风险的特性。
3. 沟通管理
无主程序员方式:
各人员之间相互沟通交流,因此沟通路径有:
1 + 2 + 3 + 4 + …… + (n-2) + (n-1) = (1 + (n-1)) × (n-1) / 2 = n × (n-1) / 2
有主程序员方式:
各人员只与主程序员沟通即可,因此沟通路径有:n-1
例题:
在进行软件开发时,采用无主程序员的开发小组,成员之间互相平等;而主程序员负责的开发小组,由一个主程序员和若干成员组成,成员之间没有沟通。在一个由 8 名开发人员构成的小组中,无主程序员组和主程序员组的沟通路径分别是()。
A.32和8 B.32和7 C.28和8 D.28和7
解析:
根据公式可得,无主程序员组沟通路径为 8 × 7 / 2 = 28,主程序员组沟通路径为 8 - 1 = 7 ,因此选 D。
4. 成本管理
例题:
工作量估算模型 COCOMO II 的层次结构中,估算选择不包括()。
A.对象点 B.功能点 C.用例数 D.源代码行
解析:
不包括用例数,选 C。
项目管理部分的内容至此结束,后续如果有补充或修改会直接添加。