平台建设预算一、服务器成本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万选定服务器带宽为10Mbps2.硬件平台设计功能点较多(下附),需消耗较多系统资源,选用硬件配置清单为CPU:2核,内存2G,硬盘100G考虑到后期平台发展,为实现数据热迁移、CDN加速和负载均衡,保证平台不崩溃,选用弹性云服务器。以上各项资源累计所需成本为9800元/年二、程序设计参照《软件开发和服务项目价格构成及评估方法》,以及,目前国际上通行的也比较科学的估算方法,建立一下估算模型。1.Putnam模型1978年Putnam提出的,一种动态多变量模型。L=Ck*K1/3*td4/3其中:L-----------源代码行数(以LOC计)K-----------整个开发过程所花费的工作量(以人月计)td-----------开发持续时间(以月计)Ck----------技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表可以得到估算工作量:K=L3/(Ck3*td4)页面平均代码行数为1500行,预计50个页面(不包含CSS、JS等资源),估算代码总行数为7.5万取Ck=11000,开发时间为6周,即td=1.5代入得K=750003/(110003*1.54)=63即需要63人工作一个月的工作量,以每人每月3000元计,则需要18.9万元即7.5万行代码需要18.9万元,反代入得每行代码需要2.52元,开发人员每月编写1200行代码,契合算法。2.COCOMO模型(constructivecostmodel)这是由TRW公司开发,Boehm提出的结构化成本估算模型。是一种精确的、易于使用的成本估算方法。COCOMO模型中用到以下变量:DSI-------源指令条数。不包括注释。1KDSI=1000DSI。Ck的典型值开发环境开发环境举例2000差没有系统的开发方法,缺乏文档和复审8000好有合适的系统的开发方法,有充分的文档和复审11000优有自动的开发工具和技术MM-------开发工作量(以人月计)TDEV-----开发进度。(以月计)COCOMO模型中,考虑开发环境,软件开发项目的类型可以分为3种:1.组织型(organic):相对较小、较简单的软件项目。开发人员对开发目标理解比较充分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束较小,程序的规模不是很大(50000行)2.嵌入型(embedded):要求在紧密联系的硬件、软件和操作的限制条件下运行,通常与某种复杂的硬件设备紧密结合在一起。对接口,数据结构,算法的要求高。软件规模任意。如大而复杂的事务处理系统,大型/超大型操作系统,航天用控制系统,大型指挥系统等。3.半独立型(semidetached):介于上述两种软件之间。规模和复杂度都属于中等或更高。最大可达30万行。估算公式:基本COCOMO模型估算工作量和进度的公式如下工作量:MM=r*(KDSI)c进度:TDKV=a(MM)b其中经验常数r,c,a,b取决于项目的总体类型。COCOMO模型按其详细程度可以分为三级:基本COCOMO模型,中间COCOMO模型,详细COCOMO模型。其中基本COCOMO模型是是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。中级COCOMO模型在基本COCOMO模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。详细COCOMO模型包括中间COCOMO模型的所有特性,但更进一步考虑了软件工程中每一步骤(如分析、设计)的影响。基本COCOMO模型通过统计63个历史项目的历史数据,得到如下计算公式。总体类型工作量进度组织型MM=10.4*(KDSI)1.05TDKV=10.5(MM)0.38半独立型MM=3.0*(KDSI)1.12TDKV=10.5(MM)0.35嵌入型MM=3.0*(KDSI)1.20TDKV=10.5(MM)0.32对应我方项目工程,属于半独立型,则MM=3.0*(KDSI)1.12源指令条数DSI=75000即KDSI=75代入得MM=377,TDKV=10.5(377)0.35=84即需要84人工作一个月的工作量,以每人每月3000元计,需要25.2万元即7.5万行代码需要25.2万元,反代入得每行代码需要3.36元,开发人员每月编写900行代码,契合算法。3.功能点模型系统开发费D=工作量(人月)*系统人员月人工费用=(项目功能点*开发成本系数/1.5/22)*B开发成本系数:3000个功能以下3.5人工时/FP-4.0人工时/FP3000-8000个功能以下4.0人工时/FP-4.5人工时/FP系统开发费用指对项目进行详细需求分析,系统设计,编码,测试等方面的工作而需支出的费用,取费主要依据项目规模(功能点),开发成本系数和系统人员月人工费,根据对系统的功能进行分析:系统项目难度较高,按照系统规模的大小,我们设定系统开发成本系数为复杂加权因子表(ComplexityweightsFactor)系数范围采用系数用户输入数EI3-64用户输出数EO4-75用户查询表EQ3-65内部逻辑文件数ILF7-1512外部接口文件数EIF5-106系统功能表数据表接口文件外部查询逻辑表报表数功能225240231复杂系数465125功能点数883012001155合计UFC1393系统开发费用计算表计算公式UFC*开发成本系数/1.5/22*B开发成本系数4.0系统人员平均工资B3000元系统开发估算价格1393*4.0/1.5/22*3000=506545根据以上三种模型,建立如下方阵PutnamCOCOMO功能点原费用(万元)18.925.250.6加权系数0.250.250.25费用(万元)4.7256.312.65其中加权系数为原费用的标准差的倒数,表示三种模型的离散程度可得开发费用预估为(4.725+6.3+12.65)/3=7.89万元三、总结应公司需求,设计开发平台1.0版本,以上算法仅代表1.0版本,如需实现更多功能或用户体验以及网站安全,所需成本将更高。结合服务器等硬件成本与开发成本,平台建设总预算为0.98+7.89=8.87万元,减去1.5个月工资(作为开发人员)3750元,最终预算为8.495万元。