软件项目估算过程.docx
《软件项目估算过程.docx》由会员分享,可在线阅读,更多相关《软件项目估算过程.docx(10页珍藏版)》请在冰豆网上搜索。
软件项目估算过程
1.目的2
2.范围2
3.估算过程2
3.1规模和工作量估算3
3.1.1 单元复杂度定义3
3.1.2 项目的单元分解3
3.1.3 规模和工作量估算3
3.1.4 项目整体开发工作量可能4
3.2进度估算4
3.3风险的估算5
3.4关键计算机资源估算6
3.5项目成本及报价参见〈项目估算表〉6
3.5.1人力成本6
3.5.2非人力成本6
3.5.3项目成本6
3.5.4项目报价6
4.估算方法7
5.项目估算评审7
6.参考资料8
1.目的
软件估算的目的是通过对软件项目治理和开发工作量的估算,确认项目开发的成本,开发周期以作为项目投标、立项的依据.对项目的估算通常还包括对软件大小(Size)、软件项目风险和关键计算机资源的估算等.
对软件的估算专门难以精确或准确来衡量,相反以其合理性来评估.项目的估算通常和市场价格、商务目标、项目经验和开发成员的工作弹性相关并是上述方面的综合反映.
2.范围
软件项目的估算不是一次估算过程.通常会对项目估算多次.例如在商务过程中,通过估算进行报价和投标;在项目打算过程中,通过估算以确定项目开发打算;在里程碑评审和变更过程,通过估算和总结调整项目打算.
3.估算过程
规模和工作量估算
在估算过程中,依照项目的类型、技术、语言和其他属性,尽可能地参照以往项目的数据,基于以往项目的历史数据,对指定项目的程序单元进行划分和确认。
假如没有可供参照的历史数据,使用Delphi等方法进行估算。
3.1.1 单元复杂度定义
软件项目经理依照以下表格并结合项目的历史数据,确定本项目的单元复杂度标准。
(下表列出了制定复杂度标准时参考的因素,具体到各项目,需要软件项目经理具体定义各种类型的标准以及LOC、工作量的范围。
)
复杂度
单元复杂度标准
LOC
工作量(人-天)
简单
产品因素(产品复杂性、数据库规模、软件可靠性)人员因素(开发人员能力、工作经验、工具的使用经验)项目因素(使用现代程序设计技术经验)
5OO--1500
1-------5
中等
1600--4000
6--------10
复杂
4100--7000
10------15
其他
大于7000
大于15
3.1.2 项目的单元分解
∙软件项目经理组织相关人员参照定义的标准进行系统分解,以确认系统的程序单元以及程序单元的复杂度。
程序单元估算表
ID
名称
简要讲明
复杂度
分类
C++
C++
3.1.3 规模和工作量估算
在确认完成简单、中等和复杂后,软件项目经理能够参照历史数据或用Delphi法对工作量或规模进行估算,并把结果登记到程序单元估算表中。
(在用Delphi法估算时,各类估算值的范围应在单元复杂度标准定义的范围内)如下表:
程序单元估算表
ID
名称
简要讲明
复杂度
分类
LOC
工作量
(人天)
3.1.4 项目整体开发工作量可能
软件项目经理组织相关人员可能项目开发过程中各开发时期的相对工作量和总工作量(可参照往常项目的历史数据,否则需要用用Delphi法估算)。
工作分布
工作量分配比例
(%)
工作量
(人-天)
需求时期
策划时期
设计时期
实现时期
测试时期
交付时期
评审
培训
项目治理
SQA
SCM
合计
工作量分配比例应依据以往项目经验和项目实际情况进行调整并在项目开发过程中跟踪和在项目结束时进行总结.
前六个时期的工作量要紧指完成实际的开发任务所需的工作量;质量保证工作量包括实施检查、填写各种工作记录等活动;配置治理工作量包括配置治理的库治理活动、状态报告、填写各种记录等活动;项目治理指软件项目经理的治理活动如任务跟踪、组织交流等;评审包括各种技术评审、打算评审和里程碑评审等;培训包括项目治理和项目技术等方面培训。
进度估算
项目进度估算应基于以往相似项目的时刻进度进行可能。
具体步骤为:
1.创建一个MSProject2000文件。
2.设置项目工作日历。
3.到甘特图视图,基于程序单元估算表,列出项目所有的任务/活动。
4.定义任务依靠性。
5.设置所有的约束,包括:
a.确定的里程碑日期;
b.关键资源猎取日期(人力资源/硬件/软件)。
6.到资源页面,输入对所有相关项目相关组来讲,可获得的资源。
7.到甘特图视图,分配任务资源。
8.设置任务周期,周期基于以下考虑:
a.基于系统大小和工作量可能。
b.依照指定资源的工作效率,调整任务周期。
c.在工作周期中,不要包括假期。
d.在里程碑周期内,依照活动和时刻分割,设置合理的周期。
e.为不可预知的问题,预留15%的余量
9.重复步骤3,4,5,6,7,8,直到任务,资源和周期合理分配。
风险的估算
1识不风险项(可利用风险项检查指南)和对风险进行分析
依照项目的情况识不项目的风险项,并对每一项进行分析。
例如
序号
风险项
风险描述
风险发生概率
风险后果(质量、进度、成本方面)
风险损失
(万元)
1
人员流淌
在项目实施中会发生一名要紧开发人员调动
85
拖延项目进度
违反合同
9
2
3
4
5
2确定风险优先级
依照上述列表“最要紧的5个”风险项,依照风险大小确定优先级。
确定风险损失与等级对应表,例如:
损失等级
1
2
3
4
5
6
7
8
9
10
损失(万元)
<2
2--4
4--7
7--10
10--13
13--15
15--18
18--25
25--30
>30
依照风险发生概率和损失对应等级确定优先级,例如:
序号
风险名称
发生概率(%)
损失对应等级
风险系数
1
人员流淌
85
4
3.4
2
3
4
5
3建立风险排序表和制定相应的措施进行预防
依照建立的风险排序表,制定相应的措施来降低、规避和预防风险的发生。
风险排序
风险等级
风险项描述
降低风险策略
1
2
3
4
备注:
出现率-高、中、低可依照计算的系数分类,如1--3为低,4-7为中,7-10为高
关键计算机资源估算
对计算机资源的估算可和工作量、进度估算并行进行。
可能程序如下:
∙可能系统的大小,包括数据类型和存储在数据库中数据记录的数量,同时访问系统的用户数量,网络传输的数据量。
∙计算存储在数据库中的数据大小,每分钟执行的请求和复杂度。
∙定义系统中使用的协议,计算网络的带宽。
∙计算数据库服务器的性能和其他服务器的性能,定义操作系统和数据库系统。
∙定义应用服务器和其他附件
∙计算桌面计算机的性能,定义开发工具。
∙定义硬件服务器,桌面计算机和开发计算机。
∙基于以上可能步骤,填写计算机资源估算表(参见《项目估算表》)。
需要特不指出的是,关键计算机资源的估确实是指项目必须满足的针对计算机资源的要求.例如,软件的规模不能超过500MB,系统响应时刻不能低于2秒/页,等.关于关键计算机资源的要求应于计算机资源估算表中记录.
项目成本及报价参见〈项目估算表〉
人力成本
项目的人力成本是指由于各种人员的参与而计入的成本.可依照对总工作量的估算乘以相应的小时成本得出:
人力成本=å(工作量x小时成本)
非人力成本
非人力成本要紧包括和项目相关的成本,如软件,硬件,出差及办公费用等.
项目成本
项目成本是人力成本和非人力成本的总和:
项目成本=人力成本+非人力成本
项目报价
项目报价则是以项目成本为基础加上合理的利润.需要指出的是项目的报价通常受客户的承受力、市场价格以及项目竞争者报价制约,应予综合考虑.
4.估算方法
针对项目的需要,在不同时期可采取不同的估算方法.如单人估算和多人Delphi估算法等.通常建议采纳由3-5人组成估算小组,每人单独估算并填写《Delphi估算表》,经讨论后汇总的Delphi估算法.
Delphi估算法是工业界广泛采纳的基于个人经验汇总的估算方法.其差不多方法为:
1.软件项目经理选择具有相关经验的估算人员3-5人组成估算小组,并确认组长.
2.软件项目经理预备和估算相关的材料.
3.软件项目经理召开会议,确认待估算的条目(Item),并分发給估算小组成员.
4.估算小组成员进行个人独立估算,并填写Delphi个人估算表.
5.估算小组长汇总个人估算于Delphi估算总结