平台建设预算
一、服务器成本
1. 服务器带宽
网络带宽M=并发数S*每用户宽带P 并发数S=用户总数U*同时使用系数λ
设定每个页面大小为200KB(计0.2MB) ,要求保证用户两秒打开页面,即单个用户所需带宽为0.1MB ,预计最大支撑100并发数,得 M=S*P=0.1*100=10M
即为保证100并发数所需网络带宽为10M 设定同时使用系数为0.001,得 U=S/λ=10/0.001=100000用户
即每千用户有一个用户在同时操作时可支撑10万用户
根据网民在线习惯,建立用户在线时长模型,近似标准正态分布,简化为线性图表
计算得日均在线时长为28800秒(即这么长的时间内每秒都有用户访问) 在此条件下,可实现日均PV (页面访问量)=并发数*28800=288万 选定服务器带宽为10Mbps 2. 硬件
平台设计功能点较多(下附),需消耗较多系统资源,选用硬件配置清单为 CPU:2核,内存2G ,硬盘100G
考虑到后期平台发展,为实现数据热迁移、CDN 加速和负载均衡,保证平台不崩溃,选用弹性云服务器。
以上各项资源累计所需成本为9800元/年
二、程序设计
参照《软件开发和服务项目价格构成及评估方法》,以及, 目前国际上通行的也比较科学的
估算方法,建立一下估算模型。
1. Putnam 模型
1978年Putnam 提出的,一种动态多变量模型。 L = Ck * K * td
其中: L-----------源代码行数(以LOC 计)
K-----------整个开发过程所花费的工作量(以人月计) td-----------开发持续时间(以月计)
Ck----------技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表
1/3
4/3
334
可以得到估算工作量: K = L/(Ck*td)
页面平均代码行数为1500行,预计50个页面(不包含CSS 、JS 等资源),估算代码总行数为7.5万
取Ck=11000,开发时间为6周,即td=1.5
334
代入得K=75000/(11000*1.5)=63
即需要63人工作一个月的工作量,以每人每月3000元计,则需要18.9万元
即7.5万行代码需要18.9万元,反代入得每行代码需要2.52元,开发人员每月编写1200行代码,契合算法。
2. COCOMO 模型(constructive cost model)
这是由TRW 公司开发,Boehm 提出的结构化成本估算模型。是一种精确的、易于使用的成本估算方法。
COCOMO 模型中用到以下变量:
DSI-------源指令条数。不包括注释。1KDSI = 1000DSI。
MM-------开发工作量(以人月计) TDEV-----开发进度。(以月计)
COCOMO 模型中,考虑开发环境,软件开发项目的类型可以分为3种:
1. 组织型(organic): 相对较小、较简单的软件项目。开发人员对开发目标理解比较充
分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束较小,程序的规模不是很大(
2. 嵌入型(embedded): 要求在紧密联系的硬件、软件和操作的限制条件下运行,通常
与某种复杂的硬件设备紧密结合在一起。对接口,数据结构,算法的要求高。软件规模任意。如大而复杂的事务处理系统,大型/超大型操作系统,航天用控制系统,大型指挥系统等。
3. 半独立型(semidetached ): 介于上述两种软件之间。规模和复杂度都属于中等或
更高。最大可达30万行。 估算公式:
基本COCOMO 模型估算工作量和进度的公式如下 工作量: MM = r*(KDSI) 进度: TDKV = a(MM)
其中经验常数 r, c, a, b 取决于项目的总体类型。
COCOMO 模型按其详细程度可以分为三级:基本COCOMO 模型,中间COCOMO 模型,详细COCOMO 模型。其中基本COCOMO 模型是是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。 中级COCOMO 模型在基本COCOMO 模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。详细COCOMO 模型包括中间COCOMO 模型的所有特性,但更进一步考虑了软件工程中每一步骤(如分析、设计)的影响。 基本COCOMO 模型
通过统计63个历史项目的历史数据,得到如下计算公式。
b
c
对应我方项目工程,属于半独立型,则
1.12
MM = 3.0*(KDSI)
源指令条数DSI=75000 即KDSI=75
0.35
代入得MM=377,TDKV=10.5(377)=84
即需要84人工作一个月的工作量,以每人每月3000元计,需要25.2万元
即7.5万行代码需要25.2万元,反代入得每行代码需要3.36元,开发人员每月编写900行代码,契合算法。
3. 功能点模型
系统开发费D=工作量(人月)*系统人员月人工费用
=(项目功能点*开发成本系数/1.5/22)*B
开发成本系数:3000个功能以下3.5人工时/FP-4.0人工时/FP
3000-8000个功能以下4.0人工时/FP-4.5人工时/FP
系统开发费用指对项目进行详细需求分析, 系统设计, 编码, 测试等方面的工作而需支出的费用, 取费主要依据项目规模(功能点), 开发成本系数和系统人员月人工费, 根据对系统的功能进行分析:系统项目难度较高, 按照系统规模的大小, 我们设定系统开发成本系数为
复杂加权因子表(Complexity weights Factor)
系数范围
用户输入数EI 用户输出数EO 用户查询表EQ 内部逻辑文件数ILF 外部接口文件数EIF
3-6 4-7 3-6 7-15 5-10
采用系数 4 5 5 12 6
系统功能表
数据
接口文
逻辑
外部查询
表
件
表 功能 22
5 24
0 复杂系
4
6
5
12
数
功能点
88
30
120
数
合计UFC
1393
系统开发费用计算表
计算公式 UFC*开发成本系数/1.5/22*B 开发成本系数 4.0 系统人员平均工资B 3000元
系统开发估算价格
1393*4.0/1.5/22*3000=506545
根据以上三种模型,建立如下方阵
报表数
231
5
1155
其中加权系数为原费用的标准差的倒数,表示三种模型的离散程度 可得开发费用预估为(4.725+6.3+12.65)/3=7.89万元
三、总结
应公司需求,设计开发平台1.0版本,以上算法仅代表1.0版本,如需实现更多功能或用户体验以及网站安全,所需成本将更高。
结合服务器等硬件成本与开发成本,平台建设总预算为0.98+7.89=8.87万元,减去1.5个月工资(作为开发人员)3750元,最终预算为8.495万元。
平台建设预算
一、服务器成本
1. 服务器带宽
网络带宽M=并发数S*每用户宽带P 并发数S=用户总数U*同时使用系数λ
设定每个页面大小为200KB(计0.2MB) ,要求保证用户两秒打开页面,即单个用户所需带宽为0.1MB ,预计最大支撑100并发数,得 M=S*P=0.1*100=10M
即为保证100并发数所需网络带宽为10M 设定同时使用系数为0.001,得 U=S/λ=10/0.001=100000用户
即每千用户有一个用户在同时操作时可支撑10万用户
根据网民在线习惯,建立用户在线时长模型,近似标准正态分布,简化为线性图表
计算得日均在线时长为28800秒(即这么长的时间内每秒都有用户访问) 在此条件下,可实现日均PV (页面访问量)=并发数*28800=288万 选定服务器带宽为10Mbps 2. 硬件
平台设计功能点较多(下附),需消耗较多系统资源,选用硬件配置清单为 CPU:2核,内存2G ,硬盘100G
考虑到后期平台发展,为实现数据热迁移、CDN 加速和负载均衡,保证平台不崩溃,选用弹性云服务器。
以上各项资源累计所需成本为9800元/年
二、程序设计
参照《软件开发和服务项目价格构成及评估方法》,以及, 目前国际上通行的也比较科学的
估算方法,建立一下估算模型。
1. Putnam 模型
1978年Putnam 提出的,一种动态多变量模型。 L = Ck * K * td
其中: L-----------源代码行数(以LOC 计)
K-----------整个开发过程所花费的工作量(以人月计) td-----------开发持续时间(以月计)
Ck----------技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表
1/3
4/3
334
可以得到估算工作量: K = L/(Ck*td)
页面平均代码行数为1500行,预计50个页面(不包含CSS 、JS 等资源),估算代码总行数为7.5万
取Ck=11000,开发时间为6周,即td=1.5
334
代入得K=75000/(11000*1.5)=63
即需要63人工作一个月的工作量,以每人每月3000元计,则需要18.9万元
即7.5万行代码需要18.9万元,反代入得每行代码需要2.52元,开发人员每月编写1200行代码,契合算法。
2. COCOMO 模型(constructive cost model)
这是由TRW 公司开发,Boehm 提出的结构化成本估算模型。是一种精确的、易于使用的成本估算方法。
COCOMO 模型中用到以下变量:
DSI-------源指令条数。不包括注释。1KDSI = 1000DSI。
MM-------开发工作量(以人月计) TDEV-----开发进度。(以月计)
COCOMO 模型中,考虑开发环境,软件开发项目的类型可以分为3种:
1. 组织型(organic): 相对较小、较简单的软件项目。开发人员对开发目标理解比较充
分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束较小,程序的规模不是很大(
2. 嵌入型(embedded): 要求在紧密联系的硬件、软件和操作的限制条件下运行,通常
与某种复杂的硬件设备紧密结合在一起。对接口,数据结构,算法的要求高。软件规模任意。如大而复杂的事务处理系统,大型/超大型操作系统,航天用控制系统,大型指挥系统等。
3. 半独立型(semidetached ): 介于上述两种软件之间。规模和复杂度都属于中等或
更高。最大可达30万行。 估算公式:
基本COCOMO 模型估算工作量和进度的公式如下 工作量: MM = r*(KDSI) 进度: TDKV = a(MM)
其中经验常数 r, c, a, b 取决于项目的总体类型。
COCOMO 模型按其详细程度可以分为三级:基本COCOMO 模型,中间COCOMO 模型,详细COCOMO 模型。其中基本COCOMO 模型是是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。 中级COCOMO 模型在基本COCOMO 模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。详细COCOMO 模型包括中间COCOMO 模型的所有特性,但更进一步考虑了软件工程中每一步骤(如分析、设计)的影响。 基本COCOMO 模型
通过统计63个历史项目的历史数据,得到如下计算公式。
b
c
对应我方项目工程,属于半独立型,则
1.12
MM = 3.0*(KDSI)
源指令条数DSI=75000 即KDSI=75
0.35
代入得MM=377,TDKV=10.5(377)=84
即需要84人工作一个月的工作量,以每人每月3000元计,需要25.2万元
即7.5万行代码需要25.2万元,反代入得每行代码需要3.36元,开发人员每月编写900行代码,契合算法。
3. 功能点模型
系统开发费D=工作量(人月)*系统人员月人工费用
=(项目功能点*开发成本系数/1.5/22)*B
开发成本系数:3000个功能以下3.5人工时/FP-4.0人工时/FP
3000-8000个功能以下4.0人工时/FP-4.5人工时/FP
系统开发费用指对项目进行详细需求分析, 系统设计, 编码, 测试等方面的工作而需支出的费用, 取费主要依据项目规模(功能点), 开发成本系数和系统人员月人工费, 根据对系统的功能进行分析:系统项目难度较高, 按照系统规模的大小, 我们设定系统开发成本系数为
复杂加权因子表(Complexity weights Factor)
系数范围
用户输入数EI 用户输出数EO 用户查询表EQ 内部逻辑文件数ILF 外部接口文件数EIF
3-6 4-7 3-6 7-15 5-10
采用系数 4 5 5 12 6
系统功能表
数据
接口文
逻辑
外部查询
表
件
表 功能 22
5 24
0 复杂系
4
6
5
12
数
功能点
88
30
120
数
合计UFC
1393
系统开发费用计算表
计算公式 UFC*开发成本系数/1.5/22*B 开发成本系数 4.0 系统人员平均工资B 3000元
系统开发估算价格
1393*4.0/1.5/22*3000=506545
根据以上三种模型,建立如下方阵
报表数
231
5
1155
其中加权系数为原费用的标准差的倒数,表示三种模型的离散程度 可得开发费用预估为(4.725+6.3+12.65)/3=7.89万元
三、总结
应公司需求,设计开发平台1.0版本,以上算法仅代表1.0版本,如需实现更多功能或用户体验以及网站安全,所需成本将更高。
结合服务器等硬件成本与开发成本,平台建设总预算为0.98+7.89=8.87万元,减去1.5个月工资(作为开发人员)3750元,最终预算为8.495万元。