目录
第二章 项目覆盖的活动
题面
东吴学院是一个高等教育研究机构,过去由当地政府管辖,现在改为自主管理。该学院的工资仍有当地政府管理,其工资单和其他支出由当地政府的计算中心给出,政府要收取这项服务的费用。学院管理方的意见是,如果购买一个工资软件包商用产品,并由自己来处理工资,可能要经济一些。
a. 由学院独立处理工资单的项目主要步骤是什么?
b. 东吴学院实现独立的工资发放系统的项目是目标驱动项目还是产品驱动项目?
c. 本项目的利益相关者有哪些?
题解
a题
项目的主要步骤有以下几步。
1.项目评价。仔细调查学院所需要承受的所有成本,确保有更高的成本效益。
2.策划。转换为要实现本地处理的方法需要所有涉及的参与者仔细地策划,有些详细策划需要推迟到获得更详细的信息后才能进行。
3.需求启发和分析。
4.规格说明。撰写文档分析新系统的功能。
5.设计与编码。
6.验证和确认。执行测试确保程序实际执行要求的功能。
7.实现。安装软件、设置系统参数、建立员工细节。
8.维护与支持。包括处理用户查询、接受用户新的需求、保持程序包供应商联络等工作。
b题
东吴学院实现独立的工资发放系统的项目是目标驱动项目。
c题
利益相关者主要有:
1.商用软件和硬件包的提供销售商;
2.员工,需要确保自己的工资被正确地计算;
3.人事部门,需要提供员工的信息;
4.部门负责人,需要员工的工作信息细节;
5.财务部门,需要学会使用新系统进行管理;
6.当地政府机构及其员工,其工作会被重新安排。
第三章 软件项目管理引言
题面
一般建议管理包括以下活动:策划、组织、人员、指导、监督、控制、革新、代表。
徐静是软件开发部经理。星期二上午十点,他和下属部门领导与集团经理开会,讨论明年的人员需求。徐静已经起草了一份题目为“邀请”的人事文件,这是根据她的部门明年的工作计划而做出的。这份文件在会议上进行讨论。下午两点徐静和她的高级职员开会,讨论她的部门正在进行的一个重要项目。该项目有一名程序员出了车祸,将住院一段时间。为保证项目的进度,决定将另一组(任务不紧迫的)一名组员调到这个项目,以临时替代做些不很紧要的工作,但这需要一周的时间来安排。徐静一方面必须打电话给人事部门,告诉他们关于人员替补的问题,同时必须打电话给用户,解释项目必须延期的原因并且说明谁在做这件不很紧要的工作。
指出在这一天中徐静在不同时段所做出的相应,属于上面八项管理职责的哪些职责。
题解
徐静在与部门领导集团开会时,是组织、陈述职责。
在起草题目为“邀请”的人事文件,与人事经理进行沟通,是人员、组织职责。
部门工作计划是革新、策划职责。
“在会议上进行讨论”是组织、监督职责。
“和高级职员开会,讨论部门正在进行的一个重要项目”是策划职责。
“为了保证项目进度,将另一组组员调到这个项目”是控制、人员、组织职能,也是革新、指导的职责。
“打电话给人事部门”是代表、陈述职责。
“打电话给用户”是组织、陈述职责。
第四章 项目评价和项目集管理
题面
表1 四个项目的现金流预测——数字是年终汇总(单位:卢布)
年 | 项目1 | 项目2 | 项目3 | 项目4 |
---|---|---|---|---|
0 | -100 000 | -1 000 000 | -100 000 | -120 000 |
1 | 10 000 | 200 000 | 30 000 | 30 000 |
2 | 10 000 | 200 000 | 30 000 | 30 000 |
3 | 10 000 | 200 000 | 30 000 | 30 000 |
4 | 20 000 | 200 000 | 30 000 | 30 000 |
5 | 100 000 | 300 000 | 30 000 | 75 000 |
净利润 | 50 000 | 100 000 | 50 000 | 75 000 |
a.按财务期望的次序排列这四个项目,并说明理由;
b.什么是回收期,计算表3-1中每个项目的回收期;
C.什么是投资回报率(Return On Investment,ROI)?写出ROI的计算公式,计算每个项目的ROI,基于该值,哪个项目最值得做?
题解
a题
按净利润排序,则项目2优先于项目4,项目4优先于项目3,项目3优先于项目1。
b题
回收期是投资项目投产后获得的收益总额达到该投资项目投入的投资总额所需要的时间 (年限)。
项目1的回收期是5年;
项目2的回收期是5年;
项目3的回收期是4年;
项目4的回收期是4年。
c题
投资回报率(ROI)是指通过投资而应返回的价值,即企业从一项投资活动中得到的经济回报。投资回报率(ROI)=年利润或年均利润/投资总额×100%。
项目1的ROI=10000/100000=10%;
项目2的ROI=20000/1000000=2%;
项目3的ROI=10000/100000=10%;
项目4的ROI=15000/120000=12.5%。
项目4最值得投资。
第五章 项目评价和项目集管理II
题面
计算净现值(Net Present Value, NPV)是一种项目评价技术,它考虑了项目的收益率和要产生的现金流的时限。深入了解净现值和贴现率,表1 给出了贴现因子。
年 | 5 | 6 | 8 | 10 | 12 | 15 |
---|---|---|---|---|---|---|
1 | 0.9524 | 0.9434 | 0.9259 | 0.9091 | 0.8929 | 0.8696 |
2 | 0.9070 | 0.8900 | 0.8573 | 0.8264 | 0.7972 | 0.7561 |
3 | 0.8638 | 0.8396 | 0.7938 | 0.7513 | 0.7118 | 0.6575 |
4 | 0.8227 | 0.7921 | 0.7350 | 0.6830 | 0.6355 | 0.5718 |
5 | 0.7835 | 0.7473 | 0.6806 | 0.6209 | 0.5674 | 0.4972 |
6 | 0.7462 | 0.7050 | 0.6302 | 0.5645 | 0.5066 | 0.4323 |
7 | 0.7107 | 0.6651 | 0.5835 | 0.5132 | 0.4523 | 0.3759 |
8 | 0.6768 | 0.6274 | 0.5403 | 0.4665 | 0.4039 | 0.3269 |
9 | 0.6446 | 0.5919 | 0.5002 | 0.4241 | 0.3606 | 0.2843 |
10 | 0.6139 | 0.5584 | 0.4632 | 0.3855 | 0.3220 | 0.2472 |
15 | 0.4810 | 0.4173 | 0.3152 | 0.2394 | 0.1827 | 0.1229 |
20 | 0.3769 | 0.3118 | 0.2145 | 0.1486 | 0.1037 | 0.0611 |
25 | 0.2953 | 0.2330 | 0.1460 | 0.0923 | 0.0588 | 0.0304 |
a.假定贴现率为10%,项目1(见实验四表3-1)的NPV按表3-2来计算,10%贴现率的净现值是618卢布。使用10%的贴现率来计算项目2、3、4的净现值,并以此为基础确定哪个项目效益最大。
表2 应用贴现因子到项目1
年 | 项目1现金流(卢布) | 贴现因子10% | 已贴现的现金流(卢布) |
---|---|---|---|
0 | -100 000 | 1.0000 | -100 000 |
1 | 10 000 | 0.9091 | 9 091 |
2 | 10 000 | 0.8264 | 8 264 |
3 | 10 000 | 0.7513 | 7 513 |
4 | 20 000 | 0.6830 | 13 660 |
5 | 100 000 | 0.6209 | 62 090 |
净利润 | 50 000 | NPV:618 |
b.使用贴现率8%、10%和12%计算表3-4所示的每个项目的NPV。对于每个贴现率确定哪个是最佳项目。从结果中你可以得出什么结论?
题解
a题
项目2:
-1000001+2000000.9091+2000000.8264+2000000.7513+2000000.6830+3000000.6209=-179770
项目3:
-1000001+300000.9091+300000.8264+300000.7513+300000.6830+300000.6209=13448
项目4:
-1200001+300000.9091+300000.8264+300000.7513+300000.6830+750000.6209=21661.5
项目4效益最大
b题
贴现率为8%时,
项目A:
-80001+40000.9259+40000.8573+20000.7938+10000.7350+5000.6806+5000.6302=2110.8
项目B:
-80001+10000.9259+20000.8573+40000.7938+30000.7350+90000.6806-60000.6302=2364.9
项目C:
-100001+20000.9259+20000.8573+60000.7938+20000.7350+20000.6806+2000*0.6302=2420.8
项目C效益最大。
贴现率为10%时,
项目A:
-80001+40000.9091+40000.8264+20000.7513+10000.6830+5000.6209+5000.5645=1720.3
项目B:
-80001+10000.9091+20000.8264+40000.7513+30000.6830+90000.6209-60000.5045=1817.2
项目C:
-100001+20000.9091+20000.8264+60000.7513+20000.6830+20000.6209+2000*0.5645=1715.6
项目B效益最大
贴现率为12%时,
项目A:
-80001+40000.8929+40000.7972+20000.7118+10000.6355+5000.5674+5000.5066=1356.5
项目B:
-80001+10000.8929+20000.7972+40000.7118+30000.6355+90000.5674-60000.5066=1308
项目C:
-100001+20000.8929+20000.7972+60000.7118+20000.6355+20000.5674+2000*0.5066=1070
项目A效益最大
结论:在不同贴现率下,项目效益的相对顺序也会有所不同。
第六章 项目策划概述
题面
a.基于图1中的产品分解结构(PBS),画一个可能的产品流程图(PFD),来表示东吴学院工资系统项目的一些产品,尤其是当把搜集的信息提供给潜在的硬件供应商时所形成的产品,并做为ITT的一部分。这里容量的数字是指他们必须维护的记录(例如雇员)数字。
b.画出相应的活动网络图。
题解
a题
b题
第七章 选择合适的项目方法
题面
a. 了解不同的软件系统如何选择通用的生命周期方法。
b. 概要说明以下每个系统最适合使用什么方法:(1)用于计算管理特殊疾病患者用药量的系统;(2)用于管理学生贷款计划的系统;(3)用于控制在隧道中通行的火车的系统。
题解
a题
a.项目的生命周期方法不同于设计模型,但有一定相关性。主要是针对软件的特征来进行,包括:控制系统、信息系统、用户可用性、专业技术、硬件环境、安全性关键的系统、不准确的需求等。
控制系统可能是具有并发处理的实时系统,需要Petri网等技术。
信息系统需要SSADM或信息工程这样与环境类型匹配的方法学。SSDAM适合于需要大量开发人员协同开发的项目,该方法学规定了每一步需要的活动和产品,因为开发组成员了解需求。
用户可用性是需要考虑特定用户存在的方法学。有些系统需要分析已有的文书系统来产生新的基于计算机系统的逻辑特征。
专用技术可以辅助开发基于相关技术的系统。
硬件环境是指系统要在其上运行的环境会制约用于实现系统的方法。
安全性关键的系统指:如果系统的安全性和可靠性至关重要,则需要诸如OCL之类的表示法的形式化规格对额外费用进行证明。可运行的系统要并行并不断交叉验证。
不准确的需求指应该考虑原型开发方法。如果系统环境快速变化,则需要使用增量式交付。如果用户有与项目有关的不确定目标,可以考虑软系统方法。
b题
(1)用于计算管理特殊疾病患者用药量的系统是一个基于知识的系统,使用专用技术,基于知识系统的专用技术构造该系统。这个系统也是安全性关键的系统,可以需要使用OCL表示法的形式化规格对额外费用进行证明,可以开发多个系统并行并不断交叉验证。
(2)用于管理学生贷款计划的系统是一个大规模的信息系统。使用SSDAM的方法,开发出原型。
(3)用于控制在隧道中通行的火车的系统是一个需要安全性的嵌入式系统。可以同时开发多个系统并不断进行交叉检测,也需要用OCL等基于数学的规格说明语言等形式化语言避免歧义性。还需要对软件测试进行统计控制。
第八章 软件工作量估计
题面
东吴学院的徐静曾被告知,由于已经成功地安装了工资系统,因此要求创建一个子系统来分析每门课程的人力资源成本。每名员工所得工资的细节可以通过固定的工资数据得到。每名员工用在教每门课上的小时数可以通过在一个基于计算机的计时表系统中的固定文件而得到。
实现这项需求要完成哪些任务?试着标识一个人可在一周或两周内承担的任务。哪个任务的工期是最难估计的?
题解
实现这项需求需要完成的任务包括:
1.获得用户的需求,可能需要一周完成。
2.分析已经拥有的数据的结构,可能需要一周完成。
3.设计报告,可能需要一周完成
4.编写用户建议书,可能需要一周完成。
5.编写测试用例,可能需要两周完成。
6.编写技术规格说明,可能需要一周完成。
7.设计软件,可能需要两周完成。
8.编写软件,可能需要两周或更长时间。
9.测试软件,可能需要两周或更长时间。
10.编写操作说明书,可能需要一周时间。
11.执行验收测试,可能需要一周或两周时间。
最难估计工期的任务通常是对软件规模和复杂度有影响的活动,在本题中是软件的设计、编写、测试等环节。因此,编写技术规格说明也较难估计工期。
需要由客户执行的工作的工期也难估计。
第九章 软件工作量估计II
题面
a.面向过程代码的方法
Felicity负责的IOE年度维护合同系统的事务之一是建立新的年度维护合同客户的细节。
操作员将输入:
CustomerAccountNumber
CustomerName
Address
PostCode
CustomerType
RenewalDate
所有这类信息都将在系统数据库的一条Customer记录中建立。对于已经输入的账户号,如果Customer账户已存在,则会显示一条出错信息。
画出执行上述描述的处理程序概要的程序结构图。对于图中的每个框,用你所熟悉的编程语言(例如JAVA,C++)来估算实现该子程序需要的代码行数。
b. 类比估计
假定要匹配的案例基于两个参数,既要构建系统的输入数和输出数。已知新项目有7个输入和15个输出。过去有一个项目A有8个输入和17个输出。因此源案例和目标案例之间的欧几里得距离是:((7-8)2+(17-15)2))1/2,即2.24。
项目B有5个输入和10个输出。这个项目与上面要考虑的目标新项目之间的欧几里得距离是多少?项目B是否比项目A更类似于目标项目?
c. Mark II功能点。
CCTA推荐使用Mark II方法,并作为英国政府项目的标准。了解改方法。
对于每个事务,未调整的功能点(UFP)的计算方法是:
wi*(输入数据元素类型数)+We*(引用的实体类型数)+wo*(输出数据元素类型数)
wi、we和wo表示权重,绝大多数的FP计算可以使用产业界的平均值,三个权重总计是2.5(0.58,1.66,0.26)。
在IOE维护账户子系统中,现金收入事务要访问两种实体类型Invoice 和 CashReceipt。
输入的数据元素是:
InvoiceNumber
DataRecieved
CashRecieved
如果一条Invoice记录没有找到发票号,那么会发出一个出错信息。如果找到了发票号,那么就创建一条CashReceipt记录。
出错信息构成该事务需要特别处理的唯一的输出数据元素。因此,使用产业界的平均权重,这个事务的未调整的功能点是:
(0.583)+(1.662)+(0.26*1)=5.32
使用产业界的平均权重来计算练习8.4描述的事务的未调整的Mark II 功能点。
题解
输入和判断CustomerAccountNumber是否重复的代码需要约20行
输入CustomerName、输入Address、输入Postcode、输入CustomerType、输入RenewalDate等流程需要代码约10行
2.项目B与新项目的欧几里得距离是
(
5
−
7
)
2
+
(
10
−
15
)
2
=
5.385
\sqrt{(5-7)^2+(10-15)^2}=5.385
(5−7)2+(10−15)2=5.385,项目B没有比项目A更类似于目标项目。
3.
(
0.58
∗
6
)
+
(
1.66
∗
1
)
+
(
0.26
∗
2
)
=
5.66
(0.58*6)+(1.66*1)+(0.26*2)=5.66
(0.58∗6)+(1.66∗1)+(0.26∗2)=5.66
第十章 软件工作量估计(III)
题面
a. 举例说明什么是COCOMO II模型
b. 软件经理正在进行一个网络信息搜索系统的项目估算,4万元、6万元、12万元的估算值,第二位专家给出了3万元、7万元、8万元的估算值,第三位专家给出了2万元、5万元、10万元的估算值,试计算这个项目的成本估算值。
c. 某IT公司正在进行一个项目,预计有70KLOC的代码量,项目是中等规模的半嵌入型项目,采用中等COCOMO模型, 项目属性中只有可靠性为很高级别(即取值为1.3),其他属性为正常,计算项目是是多少人月的规模,如果是1.5万元/人月,则项目的费用是多少?
d. 已知某项目使用C语言完成,该项目共有70个功能点,请用IBM模型估算源代码行数、工作量项目持续时间、人员需要量以及文档数量。
题解
a题
COCOMO模型全称Constructive Cost Model,构造型成本模型,在1981年被提出。后来,为了适应软件生命周期、技术、组件、工具、表示法及项目管理技术的进步,原始COCOMO的作者Barry Boehm对COCOMO做了调整和改进,提出了一个新的版本-COCOMOII。COCOMOII模型中使用三个螺旋式的过程模型:应用组装模型,早期设计模型和后体系结构模型。例如,若团队开发一款之前没有类似的程序,则先例性PREC低。团队凝聚力低、过程不规范,则RERM、PMAT等指标低。考虑了多种因素后,可以算出SF值。根据产品因子、项目因子等因子,可以算出工作量乘数。在估算出软件规模后,可以利用公式估算出该项目的人数与进度。
b题
专家一:
E
1
=
a
1
+
4
m
1
+
b
1
6
=
40
6
=
6.667
E_1=\frac{a_1+4m_1+b_1}{6}=\frac{40}{6}=6.667
E1=6a1+4m1+b1=640=6.667万元
专家二:
E
2
=
a
2
+
4
m
2
+
b
2
6
=
39
6
=
6.5
E_2=\frac{a_2+4m_2+b_2}{6}=\frac{39}{6}=6.5
E2=6a2+4m2+b2=639=6.5万元
专家三:
E
3
=
a
3
+
4
m
3
+
b
3
6
=
2
+
4
∗
5
+
10
6
=
32
6
=
5.33
E_3=\frac{a_3+4m_3+b_3}{6}=\frac{2+4*5+10}{6}=\frac{32}{6}=5.33
E3=6a3+4m3+b3=62+4∗5+10=632=5.33万元
则成本估算值
E
=
E
1
+
E
2
+
E
3
3
=
6.167
E=\frac{E_1+E_2+E_3}{3}=6.167
E=3E1+E2+E3=6.167万元
c题
在中等COCOMO模型下,
E
=
a
∗
K
L
O
C
b
∗
E
A
F
E=a*KLOC^b*EAF
E=a∗KLOCb∗EAF。在半嵌入型项目下,
a
=
3.0
,
b
=
1.12
a=3.0,b=1.12
a=3.0,b=1.12,已知
K
L
O
C
=
70
KLOC=70
KLOC=70,
E
A
F
=
1.3
EAF=1.3
EAF=1.3,则
E
=
3.0
∗
7
0
1.12
∗
1.3
=
454.542
E=3.0*70^{1.12}*1.3=454.542
E=3.0∗701.12∗1.3=454.542,项目总费用为
454.54
∗
1.3
=
590.9
454.54*1.3=590.9
454.54∗1.3=590.9万元。
所以项目费用590.9万元。
d题
C语言代码与功能点行数约为150LOC/FP,70个功能点代码行数
70
∗
150
=
10500
70*150=10500
70∗150=10500行,为10.50KLOC
则工作量项目持续时间
D
=
4.1
L
0.36
=
4.1
∗
10.
5
0.36
=
9.559
D=4.1L^{0.36}=4.1*10.5^{0.36}=9.559
D=4.1L0.36=4.1∗10.50.36=9.559
工作量
E
=
5.2
∗
L
0.91
=
5.2
∗
10.
5
0.91
=
44.186
E=5.2*L^{0.91}=5.2*10.5^{0.91}=44.186
E=5.2∗L0.91=5.2∗10.50.91=44.186
人员需求量
S
=
0.54
E
0.6
=
0.54
∗
44.18
6
0.6
=
5.243
S=0.54E^{0.6}=0.54*44.186^{0.6}=5.243
S=0.54E0.6=0.54∗44.1860.6=5.243
文档数量
D
O
C
=
49
L
1.01
=
49
∗
10.
5
1.01
=
526.741
DOC=49L^{1.01}=49*10.5^{1.01}=526.741
DOC=49L1.01=49∗10.51.01=526.741
第十一章 活动策划
题面
(a)空闲缓冲期,指活动可以延期的而又不至于影响任何后续活动的时间。干预缓冲期,指总缓冲期与空闲缓冲期之间的差。计算图11-1所示的每个活动的空闲缓冲期和干预缓冲期。
(b)参考图11-1,假定活动F的周期缩短为8周,计算项目的结束日期,如果活动F的周期缩短为7周,项目的结束日期是多少?为什么?
题解
a题
A:空闲缓冲期:0周。干预缓冲期:2周。
B:空闲缓冲期:0周。干预缓冲期:3周。
C:空闲缓冲期:0周。干预缓冲期:2周。
D:空闲缓冲期:1周。干预缓冲期:2周。
E:空闲缓冲期:3周。干预缓冲期:0周。
F:空闲缓冲期:0周。干预缓冲期:0周。
G:空闲缓冲期:0周。干预缓冲期:0周。
H:空闲缓冲期:2周。干预缓冲期:0周。
b题
假定活动F周期缩短为8周,项目结束日期为11周。因为关键路径为F->G或A->C->H。
假定活动F周期缩短为7周,项目结束日期为11周。因为关键路径为A->C->H。