第六章软件项目规模成本估算
软件项目管理第3版第6章习题答案参考答案成本管理
软件项⽬管理第3版第6章习题答案参考答案成本管理[填空][直接]1.软件项⽬成本包括()成本和间接成本,⼀般⽽⾔,项⽬⼈⼒成本归属于直接成本。
[填空][类⽐估算法]2.在项⽬初期,⼀般采⽤的成本估算⽅法是()。
[填空][外部输⼊,外部输出,外部查询,内部逻辑⽂件,外部接⼝⽂件]3.功能点⽅法中5类功能组件的计数项是()、()、()、()、()。
[填空][⼈的劳动的消耗所需要的代价]4.软件项⽬的主要成本是()。
[填空][⽤例点]5.()⽅法通过分析⽤例⾓⾊、场景和技术与环境因⼦等来进⾏软件估算。
[是⾮][A]1.软件项⽬规模就是软件项⽬⼯作量。
()[A]正确[B]错误[是⾮][B]2.在软件项⽬估算中,估算结果是没有误差的。
()[A]正确[B]错误[是⾮][A]3.⼈的劳动消耗所付出的代价是软件产品的主要成本。
()[A]正确[B]错误[是⾮][B]4.功能点估算与项⽬所使⽤的语⾔和技术有关。
()[A]正确[B]错误[是⾮][B]5.COCOMO81有3个等级的模型:有机型、嵌⼊型、半嵌⼊型。
()[A]正确[B]错误[是⾮][B]6.经验对于估算来说不重要。
()[A]正确[B]错误[是⾮][A]7.估算时既要考虑直接成本⼜要考虑间接成本。
()[A]正确[B]错误[是⾮][B]8.在进⾏软件估算的时候,可以直接考虑参照其他企业的模型进⾏项⽬估算。
()[A]正确[B]错误[是⾮][B]9.间接成本是与⼀个具体项⽬相关的成本。
()[A]正确[B]错误[单选][C]1.下⾯关于估算的说法,错误的是()[A]估算是有误差的[B]估算时不要太迷信数学模型[C]经验对于估算来说不重要[D]历史数据对于估算来说⾮常重要[单选][B]2.()是成本的主要因素,是成本估算的基础。
[A]计划[B]规模[C]风险[D]利润[单选][D]3.常见的成本估算⽅法不包括()[A]代码⾏[B]功能点[C]类⽐法[D]关键路径法[单选][C]4.下列不是UFC的功能计数项是()[A]外部输出[B]外部⽂件[C]内部输出[D]内部⽂件[单选][A]5.成本预算的⽬的是()[A]⽣产成本基线[B]编写报告书[C]指导设计过程[D]⽅便进度管理[单选][D]6.估算的基本⽅法不包括()[A]代码⾏、功能点[B]参数估算法[C]专家估算法[D]函数估算法[单选][B]7.在项⽬初期,进⾏竞标合同时,⼀般采⽤的成本估算⽅法是()[A]参数估算法[B]类⽐估算法[C]专家估算法[D]功能点估算法[单选][D]8.下列不是软件项⽬规模单位的是()[A]源代码长度(LOC)[B]功能点(FP)[C]⼈天、⼈⽉、⼈年[D]⼩时[单选][B]9.在成本管理过程中,每个时间段中等各个⼯作单元的成本是()[A]估算[B]预算[C]直接成本[D]间接成本[简答]1.项⽬经理正在进⾏⼀个图书馆信息查询系统的项⽬估算,他采⽤Delphi的专家估算⽅法,邀请了3位专家进⾏估算,第⼀位专家给出了2万元、7万元、12万元的估算值,第⼆位专家给出了4万元、6万元、8万元的估算值,第三位专家给出了2万元、6万元、10万元的估算值,试计算这个项⽬的成本估算值。
软件项目的规模、工作量和成本是如何进行估算的
软件项目的规模、工作量和成本是如何进行估算的根据软件项目规模的期望值e以及下列公式,就可以估算出软件项目的成本和工作量。
生产率pm = l / e其中,l表示软件项目的规模(单位:loc或者fp),e表示软件工作量(单位:人月),pm表示单个人月能够生产的功能点或者代码行数。
平均成本ckl = s / l其中,s为软件项目总开销,l表示软件项目的规模(单位:loc或者fp),ckl表示每行代码或者每个功能点的平均成本。
对于一个特定的软件开发组织或者项目组而言,其软件生产率和平均成本在不同的软件项目实施中可能是比较稳定的。
如果有以往软件项目的历史信息,可以很容易地获得关于软件开发组织或者项目组的pm和ckl值。
因此,一旦估算出了软件项目的规模,获得了软件开发组织或者项目组的pm和ckl的值,就可根据公式ckl = s / l计算出软件项目的成本s = ckl′ l,也可根据公式pm = l / e 计算出软件项目的工作量e= l / pm。
例如,假设项目组要开发一个软件项目a,经过估算该项目的规模是364个功能点。
进一步的,根据以往的历史数据,该项目组软件开发的生产率是8fp/人月,每个功能点的平均成本为12000元人民币,那么该软件项目的开发成本s = 6800元人民币′ 364 = 247,5200元人民币,工作量为e= 364/ 8 = 45.5人月。
基于经验模型的估算基于经验模型的估算根据以往软件项目实施的经验数据(如成本、工作量和进度等)建立相应的估算模型,并以此为基础对软件项目开发的有关属性进行估算。
构造性成本模型cocomo(constructive cost model)是目前应用最为广泛的经验模型之一。
在二十世纪七十年代后期,boehm对多达63个软件项目的经验数据进行了分析和研究,在此基础上于1981年提出了cocomo模型用于对软件项目的规模、成本、进度等方面进行估算。
boehm把cocomo模型分为基本、中间和详细三个层次,分别支持软件开发的三个不同阶段。
软件项目管理第6章 规模成本估算
58
成本模型:面向FP驱动
Albrecht and Gaffney:E=-12.39+0.0545FP Matson,Barnett:E=585.7+15.12FP
10
成本的单位
货币单位 人民币元 美元 ……..
11
软件的规模和成本的关系
规模是成本的主要因素,是成本估 算的基础 有了规模就确定了成本。
12
成本估算定义
对完成项目所需费用的估计和计划 包括预测开发一个软件系统所需要的总工作量的过程。 是一种量化的结果 可以有一些误差 成本估算不同于项目定价 贯穿于软件的生存周期。
总计 UFC
TCF-技术复杂度因子
TCF=0.65+0.01(sum(Fi)): Fi:0-5,TCF:0.65-1.35 技术复杂度因子 F1 F3 F5 F7 F9 F11 F13 可靠的备份和恢复 分布式函数 大量使用的配置 操作简单性 复杂界面 重复使用性 多重站点 F2 F4 F6 F8 F10 F12 F14
19
Sample Resource Histogram for a Large IT Project
12 10
Number of People
8 6 4 2 0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Java programmers Managers Testing specialists
15
2、估算的过程
16
成本估算过程
估算输入
成 本 估 算 方 法
估算结果
17
成本估算输入
项目需求、 WBS 历史项目度量 资源要求(资源编制计划) 资源消耗率:如人员成本: 100元/小时 进度规划:项目总进度(一般是合同要求) 学习曲线
软件成本估算与控制学习要点
软件成本估算与控制学习要点软件开发是现代社会不可或缺的一部分,而软件开发过程中的成本估算与控制是确保项目成功的重要环节。
本文将介绍软件成本估算与控制的学习要点,以帮助读者更好地理解和应用这一知识。
一、软件成本估算1.1 项目规模估算软件项目的规模是成本估算的基础,可以通过功能点分析或代码行数等方法进行估算。
功能点分析是一种常用的估算方法,它以软件功能为单位进行估算,并结合历史数据和专家判断来确定各功能点的工作量。
1.2 成本估算模型成本估算模型是用来预测软件开发成本的数学模型,其中最著名的是COCOMO模型和函数点分析模型。
COCOMO模型根据项目的规模和复杂性等因素,通过对历史数据进行分析和调整,来预测出开发成本。
函数点分析模型则以软件功能点数为基础,通过对不同功能点的复杂性和开发条件等进行加权计算,来估算成本。
二、软件成本控制2.1 成本控制方法成本控制是指在软件开发过程中,通过合理的控制手段来确保开发成本不超出预算。
常用的成本控制方法包括资源管理、进度管理和风险管理等。
资源管理通过优化资源的分配和利用,来降低开发成本。
进度管理则通过合理的任务分配和进度监控,来控制开发进度,从而减少延误带来的额外开销。
风险管理则通过识别和评估项目风险,并采取相应的措施来减轻或避免风险对成本的影响。
2.2 软件度量与监控软件度量是软件成本控制的重要手段,它通过定量的方法来度量软件开发过程中的各项指标,从而提供可靠的依据来进行成本控制。
常用的软件度量指标包括进度度量、成本度量和质量度量等。
通过对这些指标的监控和分析,可以及时发现问题,并采取相应的措施来调整和控制成本。
三、学习要点总结3.1 熟悉成本估算模型和方法掌握和理解常用的成本估算模型和方法,如COCOMO模型和函数点分析模型,以及功能点分析等,对于准确的估算成本是非常重要的。
3.2 学习软件度量了解和学习软件度量的基本原理和方法,包括进度度量、成本度量和质量度量等,能够帮助进行准确的成本控制。
第6讲_软件项目估算
根据变量的多少,分为单变量模型和多
变量模型。
这些变量又被称为预测量。
软件项目成本估算
静态单变量模型
一般的公式
b C=aL
其中,C是待估算的量,L是用作输入的 预测量,a和b是根据历史经验得到的参 数
软件项目成本估算
静态多变量模型
COCOMO模型
动态多变量模型
Putnam模型
软件项目成本估算
它是影响软件工作量的的分层结构就对应着工作 分解结构(WBS,Work Breakdown Structure)。它是软件规模估算的开始 点
软件规模度量标准
软件规模可认为是软件的程序量。
代码行技术LOC(Lines of Code)。 功能点FP(Function Points)。
功能点
功能点技术依据对软件信息域特性和软件复杂 性的评估结果,估算软件规模。这种方法用功 能点(FP)为单位,度量软件的规模。
信息域特性: 功能点技术定义了信息域的5个特性,分 别是输入项数(Inp)、输出项数(Out)、查 询数(Inq),主文件数(Maf)和外部接口数 (Inf)。
注:还要考虑输入、输出项的复杂度
软件项目成本估算
成本估算是对软件项目所需费用的估计和计划
。是软件项目计划中的一个重要组成部分。
成本估算无法以高可靠性和执行。只 能说利用各种工具来尽量提高估算的准 确性。
分为成本估算方法与成本估算模型
软件项目成本估算
成本估算模型分类
依据模型中变量的依存关系,分为静态
模型和动态模型。
COCOMO模型
1981年,Boehm在他的名著《软件工程
软件项目成本估算
软件项目成本估算
软件开发成本主要是指软件开发过程中所花费的工作量及相应的 代价。它不同于其他物理产品的成本,它不包括原材料和能源的 消耗,主要是人的劳动的消耗。
人的劳动消耗所需代价就是软件产品的开发成本。另一方面,软 件产品开发成本的计算方法不同于其他物理产品成本的计算。
软件产品不存在重复制造过程,它的开发成本是以一次性开发过 程所花费的代价来计算的。
因此软件开发成本的估算,应是从软件计划、需求分析、设计、 编码、单元测试、组装测试到确认测试以及整个软件开发全过程 所花费的代价作为依据的。
1.1 软件开发成本估算方法
对于一个大型的软件项目,要进行一系列的估算处理 主要靠分解和类推的手段进行。基本估算方法分为3类。 1.自顶向下的估算方法。这种方法的主要思想是从项
Deiphi技术的步骤如下:
① 组织者发给每位专家一份软件系统的规格说明书(略去名称和单位) 和一张记录估算值的表格,请他们进行估算。 ② 专家详细研究软件规格说明书的内容,对该软件提出三个规模的估 算值,即 ai ── 该软件可能的最小规模(最少源代码行数); mi ── 该软件最可能的规模(最可能的源代码行数); bi ── 该软件可能的最大规模(最多源代码行数)。 无记名地填写表格,并说明做此估算的理由。在填表的过程中,专家互 相不进行讨论但可以向组织者提问。 ③ 组织者对专家们填在表格中的答复进行整理,做以下事情: 计算各位专家(序号为i,i=1,2,…,n,共n位专家)的估算期望值Ei, 并综合各位专家估算值的期望中值E: 对专家的估算结果进行分类摘要。
Deiphi技术的步骤如下:
④ 在综合专家估算结果的基础上,组织专家再次无记名地填写表格。 然后比较两次估算的结果。若差异很大,则要通过查询找出差异的原 因。
软件项目中的成本构成及估算方法
软件项目中的成本构成及估算方法随着学问经济、信息时代的来临,计算机软件业迅猛发展。
商品化、资本化、资产化的计算机软件的价值评估的社会需求也日益增多,而且有越来越多的趋势。
由于系统软件通常是一些规模大、复杂程度高的人一机系统,因此,系统软件的开发发、使用、维护、管理的过程,是一个特别复杂的系统工程,需要有巨大的人力、物力、财力资源,需要各种计算机软、硬件的支持。
这一特点是在系统软件评估中应予充分考虑的,也是从成本途径评估系统软件价值时应予着重关注的。
据统计,软件成本在软、硬件总成本中的份额,已从50 年月的百分之十几,上升到近期的百分之七八十,而且还在持续上升。
软件成本中的开发成本和维护成本的比例,也从50年月的接近1:1,达到了近期的1:2。
系统软件开发成本和维护成本在整个生命周期中份额。
本文对上表的数字作了部分调整。
主在维护阶段剔除了完善性维护成本。
这一项成本不应列入托付评估系统软件的本次价值评估。
这样,开发、维护成本在整个生命周期中的份额也相应发生了变化。
一、系统软件的成本构成系统软件的成本作为一个经济学范畴,应反映软件产品在其生产过程中所耗费的各项费用,为原材料、燃料、动力、折旧、人工费、管理费用、财务费用待项开支的总和。
从财务角度来看,列入系统软件的成本有如下的项目:(1)硬件购置费如计算机及相关设备的购置,不间断电源、空调器等的购置费。
(2)软件购置费,如操作系统软件、数据库系统软件和其它应用软件的购置费。
(3)人工费,主要是开发人员、操作人员、管理人员、的工资福利费等。
(4)培训费。
(5)通讯费,如购置计算机网络设备、通讯线路器材、租用公用通讯线路等的费用。
(6)基本建设费,如新建、扩建机房、购置计算机机台、机柜等的费用。
(7)财务费用。
(8)管理费用,如办公费、差旅费、会议费、交通费。
(9)材料费,如打印纸、包带、磁盘等的购置费。
(10)水、电、汽、气费。
(11)专有技术购置费。
(12)其它费用,如资料费、固定资产折旧费及咨询费。
第六章软件项目规模成本估算
16.31
21.62 23.25 8.53* 6 36.41
30.09
28.93 33.83 11.09 77.66
38
5.13*5+ 16.15*8+ chapter__6 8.53*6=206.03
估算的基本方法
代码行、功能点、对象点 类比 (自顶向下)估算法 自下而上估算法 参数法估算法 专家估算法
资源平衡的基本过程
n n
建立网络,将资源分配给各项活动。 首先按尽快原则安排活动——含有最迟原则或固定日期的 活动除外。 建立资源需求直方图。 决定资源上限(可使用最大量),找出资源冲突,也就是说, 指出何时需要量超过可使用量。微软Project软件和其他 项目管理出版物将这种情况称作资源过度配置 (Resource Overallocation)。 重新安排有松闲时间 ( 浮动时间 ) 的活动以减少资源冲 突的数量。如果有可能 , 可在它们的松闲时间限度内重 新安排这些活动 , 以避免更改项目的终止日期。
关于估算
估算不是很准确的,有误差的 经验(历史)数据非常重要 不要太迷信数学模型
chapter__6
7
软件项目规模
软件项目规模即工作量,是从软件项目范围中 抽出的软件功能,然后确定每个软件功能所必 须执行的一系列软件工程任务 包括:软件规划,软件管理,需求,设计,编 码,测试,以及后期的维护等任务。
chapter__6
16
成本估算
直接成本 间接成本
chapter__6
17
直接成本
与具体项目相关的成本
chapter__6
18
间接成本
不能具体到某个项目中的成本, 可以分摊到各个具体项目中的成本,例如:
软件项目中的成本构成及估算方法【转】
软件项⽬中的成本构成及估算⽅法【转】随着知识经济、信息时代的来临,计算机软件业迅猛发展。
商品化、资本化、资产化的计算机软件的价值评估的社会需求也⽇益增多,⽽且有越来越多的趋势。
由于系统软件通常是⼀些规模⼤、复杂程度⾼的⼈⼀机系统,因此,系统软件的开发、使⽤、维护、管理的过程,是⼀个⾮常复杂的系统⼯程,需要有巨⼤的⼈⼒、物⼒、财⼒资源,需要各种计算机软、硬件的⽀持。
这⼀特点是在系统软件评估中应予充分考虑的,也是从成本途径评估系统软件价值时应予着重关注的。
据统计,软件成本在软、硬件总成本中的份额,已从50 年代的百分之⼗⼏,上升到近期的百分之七⼋⼗,⽽且还在持续上升。
软件成本中的开发成本和维护成本的⽐例,也从50年代的接近1:1,达到了近期的1:2。
系统软件开发成本和维护成本在整个⽣命周期中份额。
本⽂对上表的数字作了部分调整。
主在维护阶段剔除了完善性维护成本。
这⼀项成本不应列⼊委托评估系统软件的本次价值评估。
这样,开发、维护成本在整个⽣命周期中的份额也相应发⽣了变化。
⼀、系统软件的成本构成系统软件的成本作为⼀个经济学范畴,应反映软件产品在其⽣产过程中所耗费的各项费⽤,为原材料、燃料、动⼒、折旧、⼈⼯费、管理费⽤、财务费⽤待项开⽀的总和。
从财务⾓度来看,列⼊系统软件的成本有如下的项⽬:(1)硬件购置费如计算机及相关设备的购置,不间断电源、空调器等的购置费。
(2)软件购置费,如操作系统软件、数据库系统软件和其它应⽤软件的购置费。
(3)⼈⼯费,主要是开发⼈员、操作⼈员、管理⼈员、的⼯资福利费等。
(4)培训费。
(5)通讯费,如购置计算机⽹络设备、通讯线路器材、租⽤公⽤通讯线路等的费⽤。
(6)基本建设费,如新建、扩建机房、购置计算机机台、机柜等的费⽤。
(7)财务费⽤。
(8)管理费⽤,如办公费、差旅费、会议费、交通费。
(9)材料费,如打印纸、包带、磁盘等的购置费。
(10)⽔、电、汽、⽓费。
(11)专有技术购置费。
软件过程管理 (7)
分布式函数 大量使用的配置 操作简单性 复杂界面 重复使用性 多重站点
chapter__6
F4 F6 F8 F10 F12 F14
性能 联机数据输入 在线升级 复杂数据处理 安装简易性 易于修改
52
0.65的含义: 如果对应用程序完全没有特殊的功能要求 (即综合特征总值为0),那么功能点数应该 比未调整的(原有的)点数降低35%。 否则除了降低35%之外,功能点数还应该 比未调整的点数增加1%的综合特征总值。 TCF=0.65+0.01(sum(Fi)): Fi:0-5,TCF:0.65-1.35
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、估算的误差 五、案例分析
chapter__6
3
成本管理过程
资源计划编制:
确定项目需要的资源种类和数量
成本估算:中心环节
编制一个为完成项目各活动所需要的资源成本 的近似估算 将总成本估算分配到各单项工作活动上
质量与费用的关系
chapter__6
14
chapter__6
15
成本估算定义
对完成项目所需费用的估计和计划 包括预测开发一个软件系统所需要的总工作量 的过程。 是一种量化的结果 可以有一些误差 成本估算不同于项目定价 贯穿于软件的生存周期。
chapter__6 16
本章要点
chapter__6 33
常用的估算方法
类比估算法 n 自下而上估算法 n 参数估算法 n 专家估算法 n 猜测估算法
n
chapter__6 34
项目估算结果
估算文件:对完成项目所需费用的估计和计划安 排。 包括资源,资源的数量,质量标准,估算成本 等信息 单位:一般是货币单位(人民币、法郎、美元 等) 也可用规模单位(人月、人天或小时等) 结果可以用一个范围表示 BAC(Budget At completion)
软件项目成本估算步骤:规模、工作量、工期、成本
软件项目成本估算步骤:规模、工作量、工期、成本软件项目成本估算分为以下步骤:
1. 估算软件规模。
根据可行性研究报告或类似文档明确项目需求及系统边界。
选择估算方法时,要依据项目特点和需求详细程度来决定。
2. 估算工作量。
可以采用方程法、类比法和类推法。
如果软件项目需求极其模糊或不确定,可利用高度相似的历史项目数据来粗略估算工作量。
3. 估算工期。
同样可以采用类推法、类比法和方程法进行估算。
4. 估算成本,类比法和类推法同样适用于需求极期模糊或不确定时的成本估算。
5. 进行软件工作量评估,包括收集历史工作量数据、分析历史工作量数据、建立工作量评估模型、评估工作量、工作量模型的标定和更新。
6. 进行软件阶段工作量评估,团队应充分考虑软件项目的工期因素,对软件项目总工作量安排和各个阶段工作量安排进行优化分析,将软件项目的总工作量以合理可行的方式分解为各个阶段的工作量。
同时考虑各种约束条件,如客户强制工期要求、市场竞争性等。
第六章软件项目规模成本估算
关于估算
估算不是很准确的,有误差的 经验(历史)数据非常重要 不要太迷信数学模型
chapter__6
7
软件项目规模
软件项目规模即工作量,是从软件项目范围中 抽出的软件功能,然后确定每个软件功能所必 须执行的一系列软件工程任务
包括:软件规划,软件管理,需求,设计,编 码,测试,以及后期的维护等任务。
42
类比—软件重用
将新项目与历史项目比较,估算出各功能的估计 值。 等价代码行 = [(重新设计%+重新编码+重新测试 )/3] * 已有代码行
chapter__6
43
类比—举例
证券交易网站
需求类似 历史数据:10万 学习曲线(在一定时间内获得的技能或知识的速
率):5-8万
chapter__6
45
估算的基本方法
代码行、功能点、对象点 类比 (自顶向下)估算法 自下而上估算法 参数法估算法 专家估算法
chapter__6
46
自下而上—定义
利用任务分解结构图,对各个具体工作包进行详 细的成本估算,然后将结果累加起来得出项目总 成本。
chapter__6
47
自下而上—使用情况
chapter__6
28
功能点计算由下列步骤组成:
1)对每一项功能,通过计算4类系统外部行为或事务的数目,以 及一类内部逻辑文件的数目来估算由一组需求所表达的功能点 数目。这5类功能计数项分别是: 外部输入:是指用户可以根据需要通过增、删、改来维护内 部文件。只有那些对功能的影响方式与其他外部输入不同的输 入才计算在内。 外部输出:指那些向用户提供的用来生成面向应用的数据的 项。只有单独算法或者特殊功能的输出才计算在内。 外部查询:是指用户可以通过系统选择特定的数据并显示结 果。为了获得这项结果,用户要输入选择信息抓取符合条件的 数据。此时没有对数据的处理,是直接从所在的文件抓取信息。 每个外部独立的查询计为1。 外部文件:是在另一系统中驻留由其他用户进行维护。 内部文件:指客户可以使用他们负责维护的数据。第30页
软件项目的规模、工作量和成本是如何进行估算的
泛。
例如,针对上面所述的软件项目a,如果已估算出该项目的软件规模是33.3kloc,而且该项目属于半独立型,即cocomo模型中的参数a、b、c、d的取值分别是3.0、1.12、2.5、0.35,那么根据模型公式e =a * (kloc)b可以估算出该项目的工作量是3.0*(33.3)1.12,即152人月;然后根据公式d = c * ed可以估算出该项目的开发时间是2.5*(152)0.35,即14.5月。
2. 其它估算方法其它估算方法包括:专家估算、类比估算等等。
专家估算方法是由一组专家来对软件项目所需的成本、工作量和进度等进行估算。
一般地,这些专家具有应用领域或者开发环境方面的知识、参与了以往类似软件项目的开发。
为了避免专家估算的片面性,专家估算方法一般要求每位专家给出估算的最小值a、可能值m和最大值b,然后计算出每位专家估算的平均值esti =(a+4m+b)/6,最后根据各位专家的估算情况计算出最终的估算值est=(est1+est2+est3+……+estn)/n。
如果软件开发组织或者项目组拥有一批经验丰富的专家,可以考虑采用该方法。
专家估算方法具有人为因素多、主观因素大的特点,一般应用于软件开发的初期阶段,此时软件项目组往往难以获得估算软件项目所需的各种数据和信息。
类比估算方法是指估算人员根据以往类似软件项目实施所积累下来的数据,通过分析待开发软件项目和以往软件项目二者之间的相似性,估算出软件项目的开发工作量、成本和进度等。
使用该方法的前提是:待估算的软件项目和以往的软件项目必须具有一定的相似性(如它们均属于同样的应用领域),并且拥有以往类似软件项目的开发数据(如工作量、周期、参与的人数、规模和成本等)。
软件估算发生在事前,因而估算的结果与实际的结果有所偏差是不可避免的。
但是,如果估算的偏差过大,那么估算的结果将会对软件项目的实施和管理产生消极的影响,甚至可能导致软件项目的失败。
因此,在对软件项目的规模、成本和工作量等进行估算的过程中,要避免低劣的估算,尽可能地获得合理和准确的估算数据。
成本管理:项目管理之软件项目成本估算重点
成本管理:项目管理之软件项目成本估算一、软件成本估算贯穿于整个软件生命周期项目初期粗略的成本估算是必要的,它往往用于确定项目的可行性分析。
在项目计划阶段还需对项目进行详细的成本估算,设定项目工作分解表中每项任务可能的成本,作为项目执行阶段进行成本控制的基准。
并且,在项目执行阶段,当项目实际成本与计划成本出现差异时,还需对项目后期的成本重新进行必要的估算。
因此,项目成本估算在项目的管理和控制中占据着非常重要的地位。
而在软件项目中,由于在人员、开发周期、项目范围及技术难度等方面与其它项目相比具有更大的不确定性,故准确估算其成本就显得特别困难。
因而合理估算软件项目成本就尤其重要。
二、软件项目中的成本估算模型现有的大多数软件成本估算模型适于预算、权衡分析、计划、控制和投资分析等范畴。
成本估算模型技术多采用经验公式对软件项目进行成本估算。
在大多数估算模型中,软件规模是决定成本的主要因素。
有两种衡量软件规模的常规方法:基于代码行的估算方法和基于功能点的估算方法。
许多成本估算模型中将代码行或功能点数作为主要的输入参数。
1.面向代码行的成本估算模型代码行(lines of code,LOC)是衡量源代码长度的最常用的方法。
NCLOC(non-comments source lines ofcode缩写)用于表达不含注解的源代码行数。
NCLOC也常常被当作为有效的代码行数(effective lines of code,ELOC)。
在很多情况下,为了日后更清楚地阅读和理解程序,提高系统的可维护性,在程序开发中往往要求在程序中附上详细的注解,在这种情况下,包含注解的源代码行数也是一个有效的度量标准。
CLOC(commented source line of code缩写)用于表达含注解的源代码行数。
综上所述,我们给出代码行的定义如公式1所示:总长度(LOC)=NCLOC+CLOC(1)2.面向功能点的成本估算模型面向功能点(Function points,FP)的成本估算模型是用系统的功能数量来测量软件规模的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工作范围 估算的基础和依据 估算的假设 估算的误差变动等
chapter__6
20
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、成本预算 五、项目核心(进度)计划—续 六、案例分析
chapter__6
21
估算的基本方法
1. 代码行、功能点、对象点 2. 类比 (自顶向下)估算法 3. 自下而上估算法 4. 参数法估算法 5. 专家估算法
chapter__6
8
规模的单位
LOC(Lon Point)
用系统的功能数量来测量
人月 人天 人年
chapter__6
9
软件项目成本
完成软件规模相应付出的代价。 待开发的软件项目需要的资金。 人的劳动的消耗所需要的代价是软件产品的主
资源平衡示例
2 A=2天
1 B=5天
4
3 C=3天
项目网络图中标出了活动A、 B、C及其历时,活动A有3 天时差,活动C有2天时差, 假设活动A需要2个员工, 活动B需要4个员工,活动 C需要2个员工。
如果所有活动同一天开始的资源使用
如果活动C延迟2天开始的资源使用
资源平衡的其他过程
增员或延长加班时间以增加资源。 延长项目工期,这将增强所有活动的浮动时间 (Float),以增加重新进行进度安排的选择。 削减活动以减少资源需求。 改变网络的逻辑(例如,活动的顺序)。 限制项目范围。 将大项目细分。
编制一个为完成项目各活动所需要的资源成本 的近似估算
成本预算:项目进度
将总成本估算分配到各单项工作活动上
成本控制:项目跟踪
控制项目预算的变更
chapter__6
2
资源和资源平衡
❖资源的种类 •劳动力 (Labour ) •设备 (Equipment) •原材料 (Material) •其他 (Other): 指不符合上述分类的资源 , 例如分包 合同、租约等。
17
直接成本
与具体项目相关的成本
chapter__6
18
间接成本
不能具体到某个项目中的成本, 可以分摊到各个具体项目中的成本,例如:
培训 房租水电 员工福利 市场费用 管理费 其他等等
chapter__6
19
项目估算结果
估算文件
包括资源,资源的数量,质量标准,估算成本等信息 单位:一般是货币单位 BAC(Budget At completion)
的过程。 是一种量化的结果 可以有一些误差 成本估算不同于项目定价 贯穿于软件的生存周期。
chapter__6
13
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、成本预算 五、项目核心(进度)计划—续 六、案例分析
chapter__6
14
估算输入
成本估算过程
软件开发项目管理
第六章 软件项目规模成本估算
chapter__6
0
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、成本预算 五、项目核心(进度)计划—续 六、案例分析
chapter__6
1
成本管理过程
资源计划编制:
确定项目需要的资源种类和数量
成本估算:中心环节
缺点
1. 对代码行没有公认的可接受的标准定义 2. 代码行数量依赖于所用的编程语言和个人的编程风格. 3. 在项目早期,需求不稳定、设计不成熟、实现不确定的情况下
很难准确地估算代码量. 4. 代码行强调编码的工作量,只是项目实现阶段的一部分
chapter__6
25
代码行(LOC)- 举例
某软件公司统计发现该公司每一万行C语言源代码形成的源 文件(.c和.h文件)约为250K。某项目的源文件大小为3.75M, 则可估计该项目源代码大约为15万行,该项目累计投入工作 量为240人月,每人月费用为10000元(包括人均工资、福利、 办公费用公滩等)。 则该项目中1LOC的价值为:(240×10000)/150000=16元/L。
chapter__6
22
代码行(LOC)
从软件程序量的角度定义项目规模。
要求功能分解足够详细的 有一定的经验数据(类比和经验方法) 与具体的编程语言有关
chapter__6
23
代码行(LOC)
chapter__6
24
代码行(LOC)优、缺点
优点
代码是所有软件开发项目都有的“产品”,而且很容易计算代 码行数。
要成本 开发成本是以一次性开发过程所花费的代价来
计算的
chapter__6
10
成本的单位
货币单位
人民币元 美元 ……..
chapter__6
11
软件的规模和成本的关系
规模是成本的主要因素,是成本估算的基础 有了规模就确定了成本,
chapter__6
12
成本估算定义
对完成项目所需费用的估计和计划 包括预测开发一个软件系统所需要的总工作量
❖资源平衡技术 •可储备资源与不可储备资源 •平衡资源 •稀缺的资源
资源平衡的基本过程
建立网络,将资源分配给各项活动。 首先按尽快原则安排活动——含有最迟原则或固定日期的 活动除外。 建立资源需求直方图。 决定资源上限(可使用最大量),找出资源冲突,也就是说, 指出何时需要量超过可使用量。微软Project软件和其他 项目管理出版物将这种情况称作资源过度配置 (Resource Overallocation)。 重新安排有松闲时间 ( 浮动时间 ) 的活动以减少资源冲 突的数量。如果有可能 , 可在它们的松闲时间限度内重 新安排这些活动 , 以避免更改项目的终止日期。
成 本 估 算 方 法
chapter__6
估算结果
15
成本估算输入
项目需求、 WBS 历史项目度量 资源要求(资源编制计划) 资源消耗率:如人员成本: 100元/小时 进度规划:项目总进度(一般是合同要求) 学习曲线
chapter__6
16
直接成本 间接成本
成本估算
chapter__6
关于估算
估算不是很准确的,有误差的 经验(历史)数据非常重要 不要太迷信数学模型
chapter__6
7
软件项目规模
软件项目规模即工作量,是从软件项目范围中 抽出的软件功能,然后确定每个软件功能所必 须执行的一系列软件工程任务
包括:软件规划,软件管理,需求,设计,编 码,测试,以及后期的维护等任务。