1.0LOC(Lines of Code)估算代码行
本次项目是做的网上图书订阅系统,如果用C#写的话,如下图2.0WSB图所示,分为用户,图书信息等等方面,用户下边还可以细分,所以估计每一个小板块都是200行代码,大概可以细分为50个小板块。
所以:
假定代码总长度1万行代码;
开发人员成本参数:150/天;
每个功能的代码长度估算值:(200【乐观值】+4*300【可能值】+500【悲观值】)/6=316;
估算的生产率为:每天的工作量为3000行代码;
估算的工作量为:10000/3000≈4天;
估算的成本为:150*4=600元;
估算行成本:600/10000=0.06元
2.0自下而上估算
网上图书订阅系统成本估算表如下:
阶段 | 人力(人) | 时间(天) | 成本(元) | 总计(元) |
项目范围规划 确定项目范围 |
2 |
1 |
500 | 1200 |
定义预备资源 | 1 | 1 | 300 | |
获得核心资源 | 1 | 1 | 400 | |
分析/软件需求 行为需求 | 1 | 1 | 200 |
|
用户界面设计 | 1 | 2 | 600 | 1100 |
数据需求分析 | 1 | 1 | 200 | |
编写需求规格说明书 | 1 | 1 | 200 | |
制定交付期限 | 1 | 0.5 | 100 | |
设计 用户界面设计 | 2 | 2 | 800 | 1800 |
数据库设计 | 1 | 2 | 400 | |
功能详细设计 | 1 | 2 | 400 | |
审阅和修改功能规范 | 1 | 1 | 200 | |
开发 用户信息部分 |
|
|
|
|
用户注册功能 | 1 | 0.5 | 100 | 1600 |
商家注册功能 | 1 | 0.5 | 100 | |
协会注册功能 | 1 | 0.5 | 100 | |
登陆 | 1 | 0.5 | 100 | |
查询用户订阅信息 | 1 | 1 | 200 | |
|
|
|
| |
读者信息管理功能 | 1 | 2 | 500 | |
商家信息管理 | 1 | 1 | 300 | |
读者权限,统计 | 1 | 1 | 200 | |
图书信息部分 |
| |||
编辑图书状态 | 1 | 1 | 200 | 3000 |
在线图书(电子书) | 2 | 1 | 400 | |
纸质图书出售 | 2 | 1 | 400 | |
查询图书信息 | 3 | 2 | 1200 | |
采购信息 | 1 | 1 | 200 | |
采购计划 | 1 | 1 | 200 | |
借书登记 | 1 | 1 | 200 | |
还书登记 | 1 | 1 | 200 | |
在线交易部分 |
| |||
会员等级设定 | 1 | 1 | 200 | 1300 |
折扣划分 | 1 | 2 | 400 | |
询价功能 | 2 | 2 | 600 | |
统计销售数量 | 1 | 0.5 | 100 | |
合计: | 10000元 |
3.0类比估算
一个带估算的项目P0,与已经完成的项目P1、P2有一定的相似,与它们的相似点如表6-1所示。
P0:网上图书订阅系统 P1:网上图书销售系统 P2:网上图书订购系统
表6-1 项目P0与项目P1、P2的相似点比较
项目 | 项目类型 | 编程语言 | 团队规模 | 项目规模 | 工作量 |
P0 | 实时系统 | C# | 2 | 60 | 160 |
P1 | 实时系统 | Java | 5 | 100 | 400 |
P2 | 实时系统 | C# | 3 | 50 | 300 |
项目间的相似度计算过程如表6-2所示。
表6-2 项目间的相似度计算过程
P0对比P1 | P0对比P2 |
δ(P01,P11)= δ(实时系统,实时系统)=0 δ(P02,P12)= δ(c#,java)=1 δ(P03,P13)= δ(2,5)=[(2-5)/(2-5)]2=1 δ(P04,P14)= δ(60,100) =[(60-100)/(100-50)]2=0.64 | δ(P01,P21)= δ(实时系统,实时系统)=0 δ(P02,P22)= δ(c#,c#)=0 δ(P03,P23)= δ(2,3)=[(2-3)/(2-5)]2≈0.1 δ(P04,P24)= δ(60,50) =[(60-50)/(100-50)] 2=0.04 |
distance(P0,P1)=(1.64/4)0.5≈0.64 | distance(P0,P2)= (0.14/4)0.5≈0.19 |
Size(P0)/Size(P1)=Effort(P0)/ Effort(P1),得到P0工作量估算值为400*2/5=160