软件项目的预估是一个复杂的过程,涉及多种方法和策略。以下是一些常用的软件项目估算方法:
主观估算方法
召集项目团队成员或邀请专家共同评估项目的属性,每个人单独进行估算,然后通过讨论取得共识。
对特殊属性进行主观估算时,需要有直接干系人的参与,例如文档工作量的估算应由文档负责人参与。
客观估算方法
利用公司提供的度量数据进行估算,如组织级的生产率或其他项目的度量数据。
通过分析软件系统的功能点来量化项目的规模和工作量,进而进行估算。
规模估算
根据软件的需求估算软件的规模,通常以功能点(FP)或代码行(LOC)的形式。
工作量估算
根据项目的规模估算完成工作所需的工作量,通常以人月、人年或人日的形式。
使用生产率数据,根据规模估算工作量,例如10000行代码/(100行/人天)=100人天。
项目进度估算
根据软件的规模和工作量估算项目的进度,通常以自然月或日历月的形式。
项目成本估算
根据项目的工作量和进度估算项目的成本,包括功能性成本和非功能性成本。
历史数据比较
将当前项目与类似的历史项目进行比较,参考历史数据对项目进行估算。
风险分析
在项目估算中进行风险分析,标识、分析和管理风险,以提高估算的准确度。
估算共识
估算无法100%准确,但可以通过多种估算方法的综合,给出一个相对合理的区间。
估算的基本原则
采用多种估算方法,综合出估算结果。
保留估算的历史数据,以便在以后的估算中越来越一致。
常用估算方法
分解技术:将软件功能分解,估算实现每个功能所需的程序规模或人月数。
经验建模:根据经验导出的公式来预测工作量和时间。
自顶向下估算:参照以前完成的项目总成本,推算将要开发的软件的总成本,然后按阶段、步骤和工作单元进行分配。
自底向上估算:将待开发的软件细分,分别估算每一个子任务所需的开发工作量,然后加起来得到总开发量。
差别估算:将开发项目与已完成的类似项目进行比较,找到不同之处并估算每个不同之处对成本的影响。
结合以上方法,项目团队可以选择最适合项目特点和资源情况的估算方法,以提高估算的准确性和可靠性。