软件项目规模估计方法介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件项目的规模估计历来是比较复杂的事,因为软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的规模估计往往和实际情况相差甚远。

因此,估计错误已被列入软件项目失败的四大原因之一。

软件工程师经常会被问到,编一个什么什么样的软件需要多长时间、多少钱。

面对这个问题,有不少人很犯难,因为,第一用户的需求太不具体,第二,自己缺乏一个科学的估计方法。

下面是几种软件项目规模的估计方法。

概念介绍
先介绍一个衡量软件项目规模最常用的概念--LOC(Line of Code),LOC指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL:Job Control Language)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。

一代码行(1LOC)的价值和人月均代码行数可以体现一个软件生产组织的生产能力。

组织可以根据对历史项目的审计来核算组织的单行代码价值。

例如,某软件公司统计发现该公司每一万行C语言源代码形成的源文件(.c和.h文件)约为250K。

某项目的源文件大小为3.75M,则可估计该项目源代码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利、办公费用公滩等),则该项目中1LOC的价值为:
(240×10000)/150000=16元/LOC
改项目的人月均代码行数为:
150000/240=625LOC/人月
方法一、Delphi 法
Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别,但专家"专"的程度及对项目的理解程度是工作中的难点,尽管Delphi技术可以减轻这种偏差,专家评估技术在评定一个新软件实际成本时通常用得不多,但是,这种方式对决定其它模型的输入时特别有用。

Delphi法鼓励参加者就问题相互讨论。

这个技术,要求有多种软件相关经验人的参与,互相说服对方。

Delphi法的步骤是:
1、协调人向各专家提供项目规格和估计表格;
2、协调人召集小组会各专家讨论与规模相关的因素;
3、各专家匿名填写迭代表格;
4、协调人整理出一个估计总结,以迭代表的形式返回专家;
5、协调人召集小组会,讨论较大的估计差异;
6、专家复查估计总结并在迭代表上提交另一个匿名估计;
7、重复4-6,直到达到一个最低和最高估计的一致。

方法二、类比法
类比法适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。

类比法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。

其基本步骤是:
1、整理出项目功能列表和实现每个功能的代码行;
2、标识出每个功能列表与历史项目的相同点和不同点,特别要注意历史项目做得不够的地方;
3、通过步骤1和2得出各个功能的估计值;
4、产生规模估计。

软件项目中用类比法,往往还要解决可重用代码的估算问题。

估计可重用代码量的最好办法就是由程序员或系统分析员详细地考查已存在的代码,估算出新项目可重用的代码中需重新设计的代码百分比、需重新编码或修改的代码百分比以及需重新测试的代码百分比。

根据这三个百分比,可用下面的计算公式计算等价新代码行:
等价代码行= [(重新设计% +重新编码% +重新测试%)/3]×已有代码行
方法三、功能点估计法
功能点测量是在需求分析阶段基于系统功能的一种规模估计方法。

通过研究初始应用需求来确定各种输入、输出、计算和数据库需求的数量和特性。

通常的步骤是:
1、计算输入,输出,查询,主控文件,和接口需求的数目。

2、将这些数据进行加权乘。

下表为一个典型的权值表。

功能类型权值
输入 4
输出 5
查询 4
主控文件10
接口10
3、估计者根据对复杂度的判断,总数可以用+25%、0、或-25%调整。

据发现,对一个软件产品的开发,功能点对项目早期的规模估计很有帮助。

然而,在了解产品越多后,功能点可以转换为软件规模测量更常用的LOC。

论项目管理中的量化管理
--------------------------------------------------------------------------------
来源:希赛网作者:郭雪莹[2004/03/17]
摘要:
项目管理理论中并未注重量化管理,而量化管理是项目管理中一项基础性工作,如果采用了量化管理,项目管理的全过程就会变得“可视化”。

本文从项目管理中需要量化管理的领域、量化管理的常用方法角度来说明项目管理中使用量化管理的重要性,并举例说明了如何应用量化管理方法进行项目管理。

关键字:
项目管理、量化管理、估算、度量
正文:
项目管理理论是一门综合多门学科的新兴研究领域,包括项目综合管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理等九大知识领域。

传统的项目管理论著都重点着眼于这九大知识领域来讲解项目管理,却忽视了一项基础性工作:量化管理。

缺乏量化管理,项目管理只能处于一种“混沌”状态。

以IT项目为例,据称只有26%的IT项目成功地实现了范围、时间和成本目标,剩余的74%都有不同程度的失败。

而如果采用了量化管理,项目管理的全过程就会变得“可视化”,发现问题也可以“让数字说话”。

一.量化管理发展现状
当前,在项目管理过程中实行量化管理方兴未艾,较为典型的理论有六西格玛管理和CMM/CMMI 体系。

六西格玛是一项以数据为基础,追求几乎完美的质量管理方法。

西格玛是一个希腊字母σ的中文译音,统计学用来表示标准偏差,即数据的分散程度。

对连续可计量的质量特性:用"σ"度量质量特性总体上对目标值的偏离程度。

几个西格玛是一种表示品质的统计尺度。

它有别于其它的质量管理方法,是依据严格的数据采集和统计分析,找出误差的根源,并寻求消除这些误差的方法,根据顾客的要求来确定的管理活动。

实施六西格玛包括五个阶段:定义(D),测量(M),分析(A),改进(I),控制(C),其数据流程如下图所示:
以上这些过程并不是单一的,独立的,而是相互关联的统一体(如图1)。

由这些过程很容易看出,六西格玛是一种基于数据的决策方法,强调用数据说话,而不是凭直觉、经验办事。

其基础是需求,作用及过程的量化,从而可以客观地反映我们的现状,引起人们的关注。

数据定义抽样数据收集统计分析试验设计控制数据定义测量分析改进控制。

CMM (Capability Maturity Model) 是卡耐基梅隆大学软件工程研究院(SEI,Software Engineering Institute)受美国国防部委托制定的软件过程改良、评估模型,也称为SEI SW-CMM,(Software Engineering Institute SoftWare- Capability Maturity Model)。

该模型于1991年发布,目前修改至1.1版,并发展成为系列标准模型。

全世界已经有1万多家软件企业经过CMM评估。

CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化,标准化。

使企业能够更好的实现商业目标。

CMMI (Capability Maturity Model integration) 是为了解决现有不同CMM模型的重复性、复杂性,并减少由此引起的成本、改进过程,由美国国防部出资,委托美国卡耐基梅隆大学软件工程研究院(SEI)开发的能力成熟度模型集成,它将软件CMM2.0版草案C(SW-CMM)、EIA过渡标准731(系统工程CMM)及IPD-CMM集成为一体,同时,还与ISO15504相兼容。

该模型广泛适用于政府机构、软件和硬件开发公司。

无论是CMM还是CMMI,都有个共同特点,就是关注量化管理,在CMM/CMMI模型中,企业过程能力等级越高,对量化管理的要求就逐步提高,当达到第4级“已管理级”(Managed 级)时,要求针对组织过程的每一个阶段都进行了监控、取样和定量分析,形成了一个关于产品制作和维护流程的数据库并不断更新,以保证组织过程保持较高的质量。

他山之石,可以攻玉,可见,在项目管理中引入量化管理也是大势所趋。

二.项目管理中需要量化管理的领域
项目管理知识体系中,涉及到需要量化管理的领域非常多,从事前管理和事后管理的角度来分,可以分为估算和度量两大类。

估算是以实际统计调查资料为基础,根据事物的联系及其发展规律,间接地估算和预计有关事物的数量关系和变化前景。

而度量则是依据特定的标准,衡量当前的事物与标准之间的差异。

项目管理范围中,有如下阶段需要应用估算技术:1.项目范围估算
对项目预期的范围进行评估是项目的基础,范围估算失误将给项目带来不可挽回的损失。

2.项目成本估算
成本估算估计完成项目各活动所需每种资源成本的近似值,成本预算的过程是把估算的总成本分配到各个工作细目,建立基准成本以衡量项目执行情况。

可见成本估算的准确性直接决定成本的预算情况。

3.项目进度估算
项目管理的关键要素之一就是时间管理,也即进度控制。

准确地估算对制定项目计划、监
督项目执行都有重要的意义。

4.项目风险估算
对风险识别不到,或对风险可能造成的影响估计不足都可能导致项目失败,因此对项目风险的量化估算更是至关重要。

定义项目、制定项目计划的时候需要进行项目估算,而项目执行过程中的跟踪监督过程则离不开度量。

良好的项目管理主要针对项目要素进行跟踪度量,通过分析度量数字就可以及时发现项目进展中存在的问题,从而有针对性地制定解决方案。

通常需要度量的项目要素包括
1.项目进度度量
对项目进度进行定期的跟踪度量,及时发现当前进度与计划的偏差,可以及时采取措施,及时赶工或调整进度计划。

2.缺陷度量
项目的成败直接取决于客户满意度,客户满意度是个难以量化的指标,而项目成果——产品的缺陷密度直接影响着客户的满意程度。

度量产品的缺陷密度,可以有效地了解项目完成的质量。

3.项目工作量度量
工作量是衡量项目成本、人员工作情况的基础,准确地度量出项目真实的工作量,既可以掌握当前项目的情况,对于今后估算其它项目数据也有重要意义。

4.人员生产率度量
人力资源是项目中最为重要的资源,掌握人员的生产能力对于项目管理中人员管理、资源管理都有重要的参考价值。

三.量化管理的方法
量化管理涉及范围广、意义重大,应该如何进行量化管理呢?有很多科学的方法可以辅助项目管理人员进行估算和度量。

典型的估算方法有:
1. Delphi法
Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式可以减轻估算的偏差。

Delphi法鼓励参加者就问题相互讨论。

这个技术,要求有多种相关经验人的参与,互相说服对方。

Delphi法的步骤是:
1、协调人向各专家提供基本情况介绍和估计表格;
2、协调人召集小组会各专家讨论相关的因素;
3、各专家匿名填写迭代表格;
4、协调人整理出一个估计总结,以迭代表的形式返回专家;
5、协调人召集小组会,讨论较大的估计差异;
6、专家复查估计总结并在迭代表上提交另一个匿名估计;
7、重复4-6,直到达到一个最低和最高估计的一致。

2. 类比法
类比法适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到估计数据。

类比法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。

以某软件项目的规模估计为例,类比法的基本步骤是:
1、整理出项目功能列表和实现每个功能的代码行;
2、标识出每个功能列表与历史项目的相同点和不同点,特别要注意历史项目做得不够的地方;
3、通过步骤1和2得出各个功能的估计值;
4、产生规模估计。

针对项目工期估计,常采用PERT(计划评审技术,Program Evaluation an Review Technique)技术进行估算。

针对项目成本估计,较好的方法有经验估算法、因素估算法和WBS基础上的全面详细估算法等多种方法。

度量不一定需要特定的方法,度量的关键在于数据采集与分析。

度量的数据是根据管理的需要采集的,通过对采集到的数据统计分析,就可以掌握项目的情况。

四.量化管理实例
以某系统集成项目为例,可以看一下怎样在项目管理中应用量化管理。

项目名称:某大楼综合布线系统集成
项目启动,首先估算项目范围、进度、成本,以便制定项目计划。

由于该项目属于典型的系统集成项目,采用“类比法”进行估算。

估计该大楼项目范围约需为2000个点布线,时间约需1个月,成本约为300万。

项目组根据估算结果编制项目计划。

项目实施过程中,针对缺陷数量采集数据进行度量,从而管理项目质量,获得采样数据如下图所示:
可见,缺陷数量始终控制在允许的上下限范围内,该项目质量获得了较好的控制。

相关文档
最新文档