估算工作量是任何项目,软件或其他方面的重要组成部分。尽管工作量估算是每个行业定期参与的事情,但它是软件工程研究中的一个小众课题。问题在于研究人员的态度(例如,他们不愿冒险进入工业领域),这已阻止他们获取建立现实模型所需的估计数据。一些勇敢的人冒着对自己的自我攻击的风险,并与业界人士进行了交谈,直到最近,结果还是一小部分微小的估计数据集。
在研究的背景下,工作量估算一词实际上是1970年代的遗留物。自1990年代以来,努力校正更准确地描述了大多数模型的行为。在1970年代,模型采用了各种数量(例如,估算的代码行)并计算了工作量估算值。后来的模型将估计值作为模型的输入,将校正后的估计值作为输出。为了外观起见,我将使用现有术语。
2012年对1991-2010年间使用机器学习进行工作量估计的数据集进行的审查发现,排名前三的是:Desharnias(24篇论文(29%)),COCOMO(19篇论文(23%))和ISBSG(17篇).2019年1991年至2017年之间使用机器学习进行工作量估算的数据集发现,排名前三位的是NASA,共有17篇论文(占23%),COCOMO数据和ISBSG排名第二,有16篇论文(占21%),而Desharnais则排名第三,有14篇论文。2012年审阅的搜索源比2019年审阅的源更多,并且您的作者主观地注意到过去五年左右对NASA数据集的更多使用。
NASA数据集包含93行(这不是拼写错误,没有十进制功效),COCOMO 63行,Desharnais 81行,并且ISBSG已获得国际软件基准标准组的许可(学术界可以申请有限时间用于研究目的,即不支付3,000美元的年度费用)。 China数据集包含499行,有时会被使用(没有提到超级计算机需要此数量的数据;-)。
为什么研究人员会参与软件工作量估算,从而将1980年代至1990年代的微小数据集输入到机器学习算法中?
拨款。如果研究项目使用流行技术,则更有可能获得资助。在过去的十年中,机器学习一直是软件工程研究中最流行的技术。可从中学习什么数据?这些估计数据集在1990年代使用非机器学习技术(例如回归法)迷失了生命。
使用机器学习还具有不需要了解有关估计软件工作量细节的任何优势。一切都可以简化为机器学习算法的讨论,并且可以通过选择的错误度量来判断性能。实际上,没有人看过预测的估计值以发现模型本质上会产生相同的答案,例如,一个学习者预测43个月,2周,4天,6小时,47分钟和11秒,而“更好”的拟合则预测43个月,2周,2天,6小时,27分钟和51秒。
对少于100行的数据集有多少种机器学习方法?
2012年的一篇论文使用9个学习者乘以10个数据处理选项(例如,对数变换或离散化)乘以7个误差估计量度来评估了630种最终模型的可能性;他们选出了前十名的演员。
2012年的这项研究并未阻止研究人员继续争论他们可以使用的选项的优势。保持造纸厂运转的任何方法。
如今,敏捷技术已被广泛使用,并且1990年代的数据集不适用。研究人员使用哪些数据集来构建敏捷工作量估计模型?
2020年对敏捷开发工作量估算的审查发现了73篇论文。九篇论文使用了包含21行的最受欢迎的数据集。三篇论文使用了模拟数据!至少有一些作者正在寻找数据,即使它包含的行少于NASA数据集也是如此。
正如商学院的研究人员所表明的那样,可以从行业中获取大量数据。 ISBSG积极地从行业中收集数据,现在拥有有关9,500多个项目的数据(据我所知,每个项目的数量很少,但仍然是很多项目)。
关于Github有任何估计吗?一些开源项目使用JIRA,其中包括对估算的支持。可以在Github上找到一些故事点估计,但实际情况是缺失的。
少数研究人员已经获得并发布了包含数千行的估计数据集,例如,SiP数据集包含10,100行,而CESAW数据集包含40,000多个行。 这些数据集通常被忽略,可能是因为当提供大量真实数据时,研究人员不知道该如何处理。