10.6案例六:项目估算
阅读以下关于信息系统项目管理过程中综合性管理问题的叙述,回答问题1至问题3。
10.6.1案例场景
软件项目开发通常用LOC (line of Code)衡量项目规模,中培信息技术有限公司(Z公司)经过多年的开发,积累了一定的经验数据,经过分析统计发现公司每一万行C语言源代码形成的源文件(.c和.h文件)约为250KB。
现公司承接某一项目,该项目源文件大小为3.75MB,项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利以及办公费用分摊等)。
现项目经理小丁带领的项目组承接该项目,经过研究,项目组把该软件开发项目分为了需求分析、设计编码、测试和安装部署等4个活动,各个活动顺序进行,没有时间上的重叠,活动的完成时间估计如表10-4所示。
【问题1】(8分)
请计算该项目中1个LOC的价值以及项目的人月均代码行数?
【问题2】(8分)
项目在开发中,需要使用一些组件,这些组件估计有10000行代码,假定30%需要重新设计,50%需要重新编码,70%需要重新测试,请问项目经理该如何安排人力资源的投入?
【问题3】(9分)
请为项目组计算软件开发中各项活动的时间和项目周期。
10.6.2案例分析
【问题1】
软件开发的工作量和工期的估算历来比较复杂,因为软件本身的复杂性、历史经验的缺乏、估算工具的缺乏,以及一些人为的错误,导致软件项目的规模估算往往和实际情况相差甚远,因此,估算错误被列入软件项目失败的4大原因之一。
软件项目开发通常用LOC (line of Code)衡量项目规模,LOC指所有可执行的源代码行数,包括可交付的语句、数据定义、数据类型声明、等价声明及输入/输出格式声明等。项目经理可以根据对历史项目的审计来核算组织的单行代码值。
本题考察项目进度控制中的工作量和工期的估计。对于问题1:可以直接通过计算而得。
估计项目源文件大小为3.75MB,则可估计该项目源代码大约为15万行。该项目中1个LOC的价值为:
(240 ×10000)÷150000=16元/LOC
该项目的人月均代码行数为:150000÷240 = 625 LOC/人月
项目工作量和工期的估计,通常采用下面几种方法。
(1) Delphi法
Delphi法是比较流行的专家评估技术,适用于没有历史数据的情况下,评定过去和将来,以及新技术与特定程序之间的差别。
Delphi法的步骤如下:
(1)协调人向专家提供项目规格和估计表格。
(2)协调人召集小组会由专家讨论与规模相关的因素。
(3)专家匿名填写迭代表格。
(4)协调人整理出一个估计总结,以迭代表形式返回专家。
(5)协调人召集小组会,讨论较大的估计差异。、
(6)专家复查估计总结并在迭代表上提交另一个匿名估计。
(7)重复(4)一(6),直到达到一个最低和最高估计的一致。
(2)类比法
类比法适合评估一些与历史项目在应用领域、环境和复杂度方面相似的项目,通过新项目与历史项目的比较得到规模估计。该方法估计结果的精确度取决于历史项目数据的完整性和准确度,因此用好类比多发前提条件之一是建立较好的项目后评价与分析机制;并且对历史项目的数据分析是可信赖的。
其基本步骤如下:
①整理项目功能列表和实现每个功能的代码行;
②标识每个功能列表与历史项目的相同点与不同点,特别要注意历史项目做得不够的地方。
③通过步骤(1)和(2)得出各个功能的估算值;
④产生规模估计。
软件项目中用类比法,往往还要解决可重用代码量的估算问题。估计的最好方法就是由程序员或系统分析员详细地考察代码,估算出新项目可重用代码中需重新设计、需要重新编码或修改,以及需要重新测试的代码百分比,根据这3个百分比,可用下面计算公式计算等价新代码行:
[(重新设计%+重新编码%+重新测试%) ÷3]=已有代码行
对于问题2:
10000行代码,假定30%需要重新设计,50%需要重新编码,70%需要重新测试,那么其等价的代码行可以计算为:
[(30%+50%+70%)÷3]×10000=5000等价代码行
根据该项目的人月均代码行数为625LOC/人月,则需投入人力为5000÷625=76.9人月。
(3)功能点估计法
功能点测量是在需求分析阶段基于系统功能的一种规模估计方法,通过研究初始应用需求来确定各种输入、输出。计算和数据库需求的数量和特性。
通常步骤如下:
(1)计算输入、输出、查询、主控文件和接口需求的数目。
(2)将这些数据进行加权乘。
(3)估计者对复杂度的判断,总数可以用+25%, 0,或一25%调整。
【问题3】
进度控制有两个过程:一个是计划,一个是跟踪调整。进度计划需要两个比较关键的数据:一个是WBS,一个是估计工期。估计工期一般来说可以根据分项的工时消耗情况与资源配置情况综合得出,WBS则需要一些经验。这一部分工作不但是进度管理需要,而且是成本管理、质量管理的重要前提。
活动时间估计指预计完成各活动所需时间长短,在项目团队中熟悉该活动特性的个人和小组可对活动所需时间做出估计。估计完成某活动所需时间长短要考虑该活动“持续”所需时间。
活动所需时间估计的工具和方法主要有:
(1)专家评审。通常是要对这个项目的投入进行评估的。像这种专家评价,可以通过一个组织或拥有特殊知识和受了专门培训的个人来进行。
估计所需时间经常是困难的,几因为许多因素会影响所需时间(例如,资源质量的高低,劳动生产率的不同),只要可能,专家会依靠过去资料信息进行判断。如果找不到合适专家,估计结果往往是不可靠和具有较大风险。
(2)类推估计。它意味利用一个先前类似活动的实际时间作为估计未来活动时间的基础,在以下情况下这种方法常用于估计项目活动所需时间:只有很有限的关于项目的资料和信息。(例如在早期)类推分析是专家判断的一种形式,以下情况下类推估计是可靠的:
.先前活动和当前活动是本质上类似,而不仅仅是表面相似。
.专家有所需专长。
(3)仿真。仿真是用不同的假设来计算相应的时间,最常见的是蒙特·卡罗方法。在这种方法中,假设了各活动所用时间的概率分布,以用来计算整个项目完成所需时间的概率分布。
本题采用三点估算方法:
首先,所需时间Di采用所谓的三点估计的方法。在估计所需时间时,计算下属三个值。
正常所需时间Mi, 乐观估计时间ai, 悲观估计时间bi
此时,期望值Di为 Di=1/6 × (4Mi+ai+bi)。
其方差为:σ2i=[1/6 ×(bi一ai)]2。
10.63参考答案
【问题1】(8分)
该项目中1个LOC的价值为:(240 ×10000)÷150000=16元/LOC。
该项目的人月均代码行数为:150000÷240 = 625 LOC/人月。
【问题2】(8分)
[(30%+50%+70%)÷3]× 10 000=5000等价代码行
根据该项目的人月均代码行数为625 LOCI人月,则需投入人力为5000÷625=76.9人月。
【问题3】(9分)
根据公式Ti=(4mi+ai+bi) /6,其中,ai表示第i项活动的乐观时间,mi表示第i项活动的最可能时间,bi表示第i项活动的悲观时间。
T需求分析=(7+4×11+15)÷6=11 T设计编码=(14+4×20+32)÷6=21
T测试=(5+4×7+9)÷6=7 T安装部署=(5+4×15+13)÷6 =13
所以,项目完成时间t的期望值T为:T =11+21+7+13=52天。
想了解更多IT资讯,请访问中培伟业官网:中培伟业