软件开发成本的计算是一个复杂的过程,涉及多个方面的考量。以下是一些主要的计算方法和步骤:
功能点计数法
依据软件项目的功能需求来评估开发工作量。
通过分析系统需求计算项目规模(功能点数)。
乘以各阶段完成每个功能点所需的人工时(开发成本系数),得出完成项目所需的人月数。
任务估算法
将软件项目功能分解为若干个相对独立的任务。
分别估计完成每个任务需要的人员搭配比例及投入时间。
累加各个任务的工作量得出软件项目的总工作量。
自顶向下估算
对整个项目的总开发时间和总工作量做出估算。
按阶段、步骤和工作单元进行分配。
自底向上估算
分别估算个工作单元所需的开发时间。
汇总得出总的工作量和开发时间。
差别估算
将开发项目与一个或多个已完成的类似项目进行比较。
找出与某个类似项目的若干不同之处。
估算每个不同之处对成本的影响,导出开发项目的总成本。
费用估算方法
开发费用 = 工作量 × 复用系数 × 风险系数 × 人工成本。
复用系数考虑软件企业是否采用“基于构件的开发方法”及构件库的建立。
成本构成
人力成本:包括开发人员(程序员、测试人员、设计师等)的工资、奖金和福利。
硬件和软件成本:开发过程中使用的计算机、服务器等硬件设备,以及开发工具、操作系统、数据库等软件的费用。
办公场地和设备成本:办公场地租赁、水电费、办公桌椅等设备费用。
培训成本:开发团队为掌握新技术或工具进行培训的费用。
维护和更新成本:软件发布后需要维护和更新的费用。
其他估算方法
专家判断:聘请领域专家和软件开发技术人员进行成本估计。
类比估算:根据以前类似项目的实际成本进行估算。
参数估算:使用数学模型和参数来预测项目成本。
三点估算:结合最乐观、最可能和最悲观的估算结果,得出一个综合成本估算。
在实际应用中,通常需要结合多种方法来进行成本估算,以确保估算结果的准确性和可靠性。此外,成本估算应进行交叉验证,避免因信息不足导致估算偏差过大。