软件开发工作量如何评估

如题所述

用于软件项目工作量估算的方法有以“估”为主的专家法和类推法,以“算”为主的类比法和方程法。在软件估算的实践中,类比法和类推法也是普遍使用的估算方法。
1、类比法
类比法是指将本项目的部分属性与类似的一组基准数据进行比对,进而获得待估算项目工作量、工期或成本估算值的方法。类比法是基于大量历史项目样本数据来确定目标项目的预测值,通常是以50百分位数为参考而非平均值。选择类比法进行估算,应根据项目的主要属性,在基准数据库中选择主要属性相同的项目进行比对。
类比法适合评估那些与历史项目在应用领域、系统规模、环境和复杂度方面相似的项目,通过新项目与历史项目的比较得到估计数据。类比法估算结果的精确度取决于历史项目数据的完整性和准确度。因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的相关属性建立基线数据。
适用范围:
当需求极其模糊或不确定时,如果此时有与本项目类似属性(如规模、应用类型、复杂度、开发团队经验等)的一组基准数据,则可直接采用类比法,充分利用基准数据来估算工作量。类比法可以在整个项目级上做基准比对,也可以在子系统级上进行。
估算过程:
1) 确定待估算项目所具有的属性特点,如系统的规模、复杂度、应用类型、业务领域、开发人员的经验和能力等。
2) 查询历史数据库并筛选“最相似”的项目属性数据。
3) 如果待估算项目属性与历史项目的主要属性类似,则可依据历史项目的基线数据直接得出待估算项目的工作量合理范围。
4) 如果同时满足待估算项目主要属性的历史项目太少,则可针对待估算项目的每个属性与历史项目相应属性的基准数据分别比对,再分别计算得出P25/P50/P75的平均值作为估算值。
5) 一般情况下,取P50的工作量数据作为待估算项目工作量最可能的值。
2、类推法
类推法是指将本项目的部分属性与高度类似的一个或几个已完成项目的数据进行比对,适当调整后获得待估算项目工作量、工期或成本估算值的方法。选择类推法进行估算,通常只参照1~2个高度类似的项目,同时根据待估算项目与参照项目的差异,进行适当调整。
适用范围:
1) 当需求极其模糊或不确定时,较难估算工作量,如果此时具有高度类似的历史项目,则可直接采用类推法,充分利用历史项目数据进行估算。
2) 适用评估一些与历史项目在业务领域、应用类型、环境和复杂度等方面的相似项目,通过新项目与历史项目的比较进行估计。
3) 该方法估算结果的精确度取决于已完成项目数据的完整性、准确度,以及两个项目之间的相似度。如果没有类似的项目,该方法就不能应用。
估算过程:
1) 识别出待估算项目的主要属性。
2) 查找本组织曾经做过的类似的历史项目。
3) 对比历史项目,标记差异点,经过调整后计算出待估算项目的工作量。
3、方程法

采用方程法进行工作量估算时,应考虑根据开发组织实际情况进行回归分析,建立回归方程。可将所有影响因子都考虑在内建立多元方程,也可以先根据部分影响因子算出初步的结果,再对结果进行调整。
行业级模型示例如下:
行业级模型: AE=(S*PDR)*SWF*RDF
公式中:
AE:调整后工作量,单位为人时
S:规模,单位为功能点数
PDR:生产率,单位为人时每功能点
SWF:软件因素调整因子
RDF:开发因素调整因子
能上回答望采纳!如有疑问可私信!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-29
1。需求确定的情况很少,因为客户的需求总是在变,即使确定下来,验收的时候也会提出新的问题,这个要靠项目经理沟通,用户当前的问题在这个版本中解决还是下期合同来做。因此来说,需求大体确定以后,拆分子系统组成---子系统的组成模块--细分模块组成,这个是相对粗粒度的,然后就要考虑你手头队伍对细分模块的开发实现能力,大体就知道工作量了,如果不赶工期,时间要放长,软件开发,没有一帆风顺的,肯定会有很多问题,简单来说就是常见的需求变更。
2。评估成员工作量,首先要了解队伍组成,哪些人规划流程清晰,哪些人对技术攻关能力更好,哪些人适合测试,哪些人编码快速,哪些人对数据库精通,哪些人对界面布局更擅长,哪些人有技术的同时更善于沟通。所以通常都是更善于沟通的做组长,及时把流程清晰的告诉组员,反馈每个组员的工作进度,协同组员进度并决定何时由何人做技术攻坚,何时组织测试。
3。项目完成以后就好统计了,每个小组的代码行数,实现的功能模块数量,供其他小组调用的模块,用时多少天,涉及多少领域等,其实这个统计不能说a组完成项目的40%,b组60%这样,比较合理的应该是在某个方面,各个小组的组成比例的表格,然后有个小组工作的总结比较合适。如代码统计,a组2w行,占40%,b组3w,占60%。 模块数量:a组6个,占60%,b组4个占40%,并附模块结构的说明。当然,各个公司的管理不一样,统计方式不一样,反正一个原则就是尽量兄弟们多说点好话,因为一个软件做成,每个环节都不能差的,再好的汽车,如果没有一个很普通的小小铁板当刹车踏板,你敢开吗。本回答被网友采纳
第2个回答  2019-03-27
首先我们要知道软件开发的工作量都包含哪些内容。一个软件项目的工作量所表达的含义是完成这个项目或系统开发所需的全部工作量,包括从项目立项开始到项目完成验收之间开发方的需求、设计、构建(包括编码、集成)、测试、实施及相关的项目管理、支持活动的工作量。
对于工作量的评估,我觉得首先要进行项目的风险评估,比如:需求变更、外部协作、时间或成本约束、人力资源、系统架构等方面。接下来是对软件要实现功能的复用度评估,分别列出可复用的功能和可复用的程度。然后根据我们的经验来确定影响工作量的主要因素,并进行评估。比如:软件的规模、应用的领域、对质量的要求、采用什么技术、开发团队能力等。
最后要选择合适的方法进行工作量评估。常用的方法有类比法、类推法和方程法。如果对这些方法不是很了解,我建议你找相关的书籍学习一下就可以。比如行业标准《软件研发成本度量规范》新推出的国家标准和它的内容区别不是很大。如果觉得这个看着太系统,也可以直接看《软件研发成本度量规范释义》第2版。希望以上内容可以帮到你。
相似回答